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

Preguntas similare

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.
Respuesta Responder a este mensaje
#2 José A. Castrejón
07/07/2005 - 23:22 | Informe spam
Gracias de Nuevo

"Héctor Miguel" escribió:

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.



Respuesta Responder a este mensaje
#3 Luis Garcia
08/07/2005 - 09:07 | Informe spam
Yo, particularmente utilizo un 'truco' que me permite buscar en un
'array' pero que no devuelve el elemento donde esta:

If Instr(1,"|" & Join(array,"|") & "|", "|" & Hoja.Name & "|") > 0 Then
''' Está en el array
Else
''' No está en el array
Endif

Saludos

"José A. Castrejón" escribió en...
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

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida