Visual Basic para Aplicaciones - Subindice fuera del intervalo

Life is soft - evento anual de software empresarial
   
Vista:

Subindice fuera del intervalo

Publicado por Esther (18 intervenciones) el 30/08/2012 17:30:50
Saludos, porque me da el error de subindice fuera del intervalo:

If Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL") Is Nothing Then
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO").Activate
Else
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Activate
End If


A ver si me podeis dar alguna pista. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Subindice fuera del intervalo

Publicado por deneg_nhj (3 intervenciones) el 30/08/2012 17:36:22
Prueba con esto.

1
2
3
4
5
6
If Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL") Is Nothing Then
	Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Activate
Else
	Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO").Activate
 
End If


Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subindice fuera del intervalo

Publicado por Esther (18 intervenciones) el 30/08/2012 17:54:56
deneg_nhj Gracias por tu respuesta, pero no entiendo la solucion... me has cambiado simplemente los nombres de las hojas... y evidentemente me sigue saliendo el mismo error ya que el depurador se para en la primera línea.

Alguna idea mas?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subindice fuera del intervalo

Publicado por cmgcharli (51 intervenciones) el 30/08/2012 18:08:04
Yo he probado el codigo y no da error salvo que no hubiera creado el archivo o el nombre de la hojas esten mal escrito repasalo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subindice fuera del intervalo

Publicado por Esther (18 intervenciones) el 31/08/2012 08:31:38
Hola cmgcharli, lo raro es que antes si que me funcionaba el código, es para comprobar si existe la hoja "ESCANDALLO PROVISIONAL" en el libro "Base de Costes.xlsm", no tiene porque existir la hoja, el libro si. He mirado y está bien escrito, así q no se q puede ser, tambien he probado de otras formas y lo mismo, como podría arreglarlo?


If Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL") Is Nothing Then
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO").Activate
Else
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Activate
End If
----------------

If Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Exists Then
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO").Activate
Else
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Activate
End If

-------------------------
If activeworbook.Worksheets("ESCANDALLO PROVISIONAL") Is Nothing Then
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO").Activate
Else
Workbooks("Base de Costes.xlsm").Worksheets("ESCANDALLO PROVISIONAL").Activate
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subindice fuera del intervalo

Publicado por deneg_nhj (3 intervenciones) el 30/08/2012 18:45:52
Cierto, una disculpa!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Subindice fuera del intervalo

Publicado por cmgcharli (51 intervenciones) el 03/09/2012 11:18:58
Lo que se me ocurre es recorre mediante un For each todas la hojas del libro y comprobar si existe la hoja a buscar en cuyo caso la variable PVarExiste que era false se convierte en true y cuando terminamos el For each segun el valor de esta activamos una hoja u otra

Sub Prueba

Dim Objeto As Object
Dim PVarExiste As Boolean

PVarExiste = False

For Each Objeto In Workbooks("Base de Costes.xls").Worksheets

If Objeto.Name = "ESCANDALLO PROVISIONAL" Then

PVarExiste = True

Exit For

End If

Next

If PVarExiste = False Then

Workbooks("Base de Costes.xls").Worksheet("ESCANDALLO").Activate

Else

Workbooks("Base de Costes.xls").Worksheets("ESCANDALLO PROVISIONAL").Activate

End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar