Si no existe hoja "nombre", crearla, en VBA

21/07/2004 - 19:58 por Tito | Informe spam
Saludos al entrar en el grupo. He mirado los mensajes y no veo este asunto,
por eso lo abro: quiero saber cómo detectar por programa VBA si en un libro
xls existe una hoja con un "nombre" determinado.
En caso contrario, crearla.

Preguntas similare

Leer las respuestas

#1 Leandro
21/07/2004 - 21:24 | Informe spam
Prueba colocando este codigo en un nuevo modulo.

Sub BuscaHoja()

Dim NombreHoja As String
Dim Hoja As Worksheet

NombreHoja = InputBox("Ingrese el Nombre de la Hoja a
Buscar", "Busqueda de Hoja")


For Each Hoja In Worksheets
If NombreHoja = Hoja.Name Then
MsgBox "La hoja ya existe"
Sheets(NombreHoja).Activate
Exit Sub
End If
Next

Sheets.Add
ActiveSheet.Name = NombreHoja

End Sub

Saludos al entrar en el grupo. He mirado los mensajes y


no veo este asunto,
por eso lo abro: quiero saber cómo detectar por programa


VBA si en un libro
xls existe una hoja con un "nombre" determinado.
En caso contrario, crearla.





.

Respuesta Responder a este mensaje
#2 Fernando Arroyo
21/07/2004 - 21:32 | Informe spam
"Tito" escribió en el mensaje news:
Saludos al entrar en el grupo. He mirado los mensajes y no veo este asunto,
por eso lo abro: quiero saber cómo detectar por programa VBA si en un libro
xls existe una hoja con un "nombre" determinado.
En caso contrario, crearla.





Hay varias formas de hacerlo. Una de ellas, que tiene la ventaja de no tener que trabajar con For Each podría ser:

If IsError([NombreHoja!IV65536]) Then
Worksheets.Add
ActiveSheet.Name = "NombreHoja"
End If

El código fallaría si existiera una hoja llamada NombreHoja y su celda IV65536 tuviera un valor de error, pero ¡ya sería casualidad! :-))
Un saludo.


Fernando Arroyo
MS MVP - Excel
Respuesta Responder a este mensaje
#3 Tito
21/07/2004 - 21:42 | Informe spam
Gracias, Leandro. Tu solución es más elegante que otra que me estaban
explicando mientras contestabas.
Intentábamos hacerlo con bucle While Do Loop con Sheets(i) hasta que
Sheets(i).Name coincide con el nombre buscado.
Ahora, una vez vista la solución, lo veo facil, pero a mí no se me ocurre...
¿falta de práctica?
Respuesta Responder a este mensaje
#4 Leandro
21/07/2004 - 22:08 | Informe spam
Tambien se podría hacer de esa manera.
Igualmente se podría perfeccionar un poco más, debido a
que no distingue mayusculas y minusculas. Si ingresas
hoja1 te va a decir que no existe, pero en realidad existe
Hoja1, por lo que te va a generar un error al intentar
crear la hoja porque la hoja1 ya existe.
Sinceramente la idea de Fernando Arroyo no puedo
entenderla...
Como vos decis creo que todo es práctica pero tambien es
muy importante "saber donde encontrar la informacion"

saludos desde Buenos Aires, Argentina

Gracias, Leandro. Tu solución es más elegante que otra


que me estaban
explicando mientras contestabas.
Intentábamos hacerlo con bucle While Do Loop con Sheets


(i) hasta que
Sheets(i).Name coincide con el nombre buscado.
Ahora, una vez vista la solución, lo veo facil, pero a mí


no se me ocurre...
¿falta de práctica?





.

Respuesta Responder a este mensaje
#5 desi
22/07/2004 - 10:21 | Informe spam
Tambien se podría hacer de esa manera.
Igualmente se podría perfeccionar un poco más, debido a
que no distingue mayusculas y minusculas. Si ingresas
hoja1 te va a decir que no existe, pero en realidad


existe
Hoja1, por lo que te va a generar un error al intentar
crear la hoja porque la hoja1 ya existe.
Sinceramente la idea de Fernando Arroyo no puedo
entenderla...




la verdad es que yo tampoco la entiendo :D
pero funciona!!
fernando, podrias explicarnos tu codigo?? gracias!!


desi

Como vos decis creo que todo es práctica pero tambien es
muy importante "saber donde encontrar la informacion"

saludos desde Buenos Aires, Argentina

Gracias, Leandro. Tu solución es más elegante que otra


que me estaban
explicando mientras contestabas.
Intentábamos hacerlo con bucle While Do Loop con Sheets


(i) hasta que
Sheets(i).Name coincide con el nombre buscado.
Ahora, una vez vista la solución, lo veo facil, pero a





no se me ocurre...
¿falta de práctica?





.



.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida