Depurando mi codigo

07/07/2005 - 22:26 por José A. Castrejón | Informe spam
Hola a todos, actualmente en el macro Auto_Open() tengo:
dim hoja As Worksheet

For Each hoja In ThisWorkbook.Worksheets
If hoja.Name <> "CAPTURA" And hoja.Name <> "CONTROL" _
And hoja.Name <> "CHEQUES" And hoja.Name <> _
"DEPOSITOS" And hoja.Name <> "CARGOS" And _
hoja.Name <> "SALDOS_GLOBALES" And _
hoja.Name <> "CONTROL" And hoja.Name <> _
"TRASPASOS" And hoja.Name <> "TRANSFERENCIAS" And _
hoja.Name <> "SDO_DIARIO" Then
Application.DisplayAlerts = False
hoja.Delete
End If
Next hoja

estoy tratando de utilizar array para simplificar pero no se como decir que
mis hojas deben estar dentro de array he escrito :

hojas as variant

Hojas = Array("CAPTURA", "CHEQUES", "DEPOSITOS", "CONTROL", _
"TRASPASOS", "CARGOS", "TRANSFERENCIAS", "SALDOS_GLOBALES", _
"SDO_DIARIO")

creo que debe ser algo como
"por cada hoja en este libro
si la hoja no es parte de HOjas then
application.displayalerts=false
sheets.delete
next

Gracias
 

Leer las respuestas

#1 Héctor Miguel
07/07/2005 - 22:46 | Informe spam
hola, José !

... en el macro Auto_Open() tengo:
dim hoja As Worksheet
For Each hoja In ThisWorkbook.Worksheets
If hoja.Name <> "CAPTURA" And hoja.Name <> "CONTROL" _
And hoja.Name <> "CHEQUES" And hoja.Name <> _
"DEPOSITOS" And hoja.Name <> "CARGOS" And _
hoja.Name <> "SALDOS_GLOBALES" And _
hoja.Name <> "CONTROL" And hoja.Name <> _
"TRASPASOS" And hoja.Name <> "TRANSFERENCIAS" And _
hoja.Name <> "SDO_DIARIO" Then
Application.DisplayAlerts = False
hoja.Delete
End If
Next hoja
estoy tratando de utilizar array para simplificar pero no se como decir que mis hojas deben estar dentro de array
hojas as variant
Hojas = Array("CAPTURA", "CHEQUES", "DEPOSITOS", "CONTROL", _
"TRASPASOS", "CARGOS", "TRANSFERENCIAS", "SALDOS_GLOBALES", _
"SDO_DIARIO")
creo que debe ser algo como
"por cada hoja en este libro
si la hoja no es parte de HOjas then
application.displayalerts=false
sheets.delete
next



una 'alternativa inicial' pudiera ser un Select Case donde el primer case no haga nada :) [p.e.]...
dim hoja As Worksheet
For Each hoja In ThisWorkbook.Worksheets
Select Case LCase(hoja.Name)
Case "captura", "cheques", "depositos", "control", "traspasos", "cargos", "tranferencias", "saldos_globales", "sdo_diario"
Case Else
Application.DisplayAlerts = False
hoja.Delete
Application.DisplayAlerts = True
End Select
Next

saludos,
hector.

Preguntas similares