Error al definir el nombre de una hoja

Solo consultas sobre macros y código VBA Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

Error al definir el nombre de una hoja

Notapor lukatico » 27 Dic 2017 07:47

Hola, estoy empezando con los macros y el VBA y tengo un problema al crear una variable que represente una Hoja. Me aparece el error siguiente: Se ha producido el error '9' en tiempo de ejecucion: subindice fuera del intervalo.

Código: Seleccionar todo
Sub Proves()

Dim Lastrow As Long
Dim x As Long
Dim dades_inicials As Worksheet
Dim taula As Worksheet

Sheets("Sheet1").Select
Sheets("Sheet1").Name = "Dades inicials"
Sheets.Add after:=Sheets(Sheets.Count)
Sheets("Hoja1").Select
Sheets("Hoja1").Name = "Taula"

Set taula = ThisWorkbook.Sheets("Taula") '''''''''''''''''''''''''''''''''''''''''''Aquí me da el error
Set dades_inicials = ThisWorkbook.Sheets("Dades inicials")

' RESTO DEL CÓDIGO

End sub


Estoy seguro de que se trata de un error muy tonto, pero no encuentro cómo solucionarlo.

Muchas Grácias!
lukatico
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 5
Registrado: 30 Nov 2016 07:33

Re: Error al definir el nombre de una hoja

Notapor ikanni » 27 Dic 2017 08:19

Hola

Así a primer golpe de vista tener una variable declarada llamada Taula y llamar a una hoja taula como no es muy recomendable.
Avatar de Usuario
ikanni
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 196
Registrado: 22 Dic 2013 08:51

Re: Error al definir el nombre de una hoja

Notapor Antoni » 27 Dic 2017 08:38

[quote="ikanni"]Hola

Intuyo que tienes un poco de confusión entre el nombre de la hoja y el nombre del objeto, Sheets("Hoja1")., hace referencia a una hoja Excel de nombre Hoja1, por el contrario Hoja1. hace referencia a un objeto VBA que puede tener el nombre que quieras en Excel.

La macro está probada partiendo de la base que existe una hoja con el nombre Sheet1.

Código: Seleccionar todo
Sub Proves()

Dim Lastrow As Long
Dim x As Long
Dim dades_inicials As Worksheet
Dim taula As Worksheet

Sheets("Sheet1").Name = "Dades inicials"
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Taula"

Set taula = Sheets("Taula")
Set dades_inicials = Sheets("Dades inicials")

' RESTO DEL CÓDIGO

End Sub
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 5710
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Error al definir el nombre de una hoja

Notapor lukatico » 27 Dic 2017 09:58

Muchas gracias, ya funciona! No termino de entender por qué quitando el ThisWorkbook de delante de Sheets ("Taula") la macro funciona; ¿ThisWorkbook no es simplemente una redundancia?
lukatico
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 5
Registrado: 30 Nov 2016 07:33

Re: Error al definir el nombre de una hoja

Notapor Antoni » 27 Dic 2017 14:26

Con ThisWorkbook funcionaría igual, el error está en Sheets("Hoja1").Select, ya que das por supuesto que la hoja nueva se llama Hoja1 y eso no tiene porqué ser así. Lo que si es seguro es que la hoja añadida pasa a ser la hoja activa, de ahí lo de ActiveSheet.Name = "Taula".
Avatar de Usuario
Antoni
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 5710
Registrado: 22 Dic 2009 04:58
Ubicación: GALICIA (ESPAÑA)

Re: Error al definir el nombre de una hoja

Notapor lukatico » 28 Dic 2017 08:57

Vaale! ya lo entiendo! Muchas Grácias!
lukatico
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 5
Registrado: 30 Nov 2016 07:33


Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: eavjperu y 9 invitados