Jump to content

Recommended Posts

Muy buen día, tarde, noche estimados

Llevo ya rato de no molestar con mis dudas, ni poder aportar nada a la comunidad, y de antemano me disculpo por ello.

En esta ocasión quisiera solicitar de su amable ayuda, pues no logro resolver una secuencia en vba. Tengo el siguiente código:

Dim Nombre As String
Nombre = "Índice WP"

Dim Hoja As String
Hoja = ActiveSheet.Name

For i = 1 To Worksheets.Count
    If Worksheets(i).Name = Nombre Then
        txtCliente = Worksheets("Índice WP").Range("Cliente").Value
        txtAuditoria = Worksheets("Índice WP").Range("Auditoria").Value
        Exit Sub
    Else
        MsgBox "No se ha creado el índice de papeles de trabajo, se creará en estos momentos", vbInformation, Titulo
        Call Crear_Indice
        txtCliente = Worksheets("Índice WP").Range("Cliente").Value
        txtAuditoria = Worksheets("Índice WP").Range("Auditoria").Value
        Worksheets(Hoja).Select
    End If
Next

El cual está inmerso en el Initializise de un userform, y lo que me hace es que verifica si existe una hoja llamada "Índice WP", y si existe pues llama el form y rellena algunos campos, pero si la hoja no existe, entonces lo que hace es que la crea, pero antes de crearla envía un Msgbox indicando que se creará la hoja, y es aquí donde tengo el problema pues al momento de inicializar el form, el msgbox me salta "N" veces, como hojas tenga en mi Excel, y lo que necesito es que únicamente me muestre una vez el mensaje.

Me podrían ayudar con esto.

Desde ya muy agradecido por su valiosa colaboración.

muesetra.xlsm

Share this post


Link to post
Share on other sites

hola, a todos ! (solo por no "dejarlo en el tintero")

no necesitas buclear por todas las hojas de un libro para averiguar si alguna existe, prueba con una UDF +/- así:

Function HojaExiste(ByVal nombre As String) As Boolean
  On Error Resume Next
  HojaExiste = Worksheets(nombre).Type
End Function

después solo adapta la creación de la hoja (si fuera necesario p.ej.

  if HojaExiste("Índice WP") = false then Crear_Indice

saludos,

hector.

Share this post


Link to post
Share on other sites

Muchas gracias @Max2005 por tu colaboración, pero no era lo que necesitaba

Hace 3 horas, Max2005 dijo:

Hola @aaquino,

Espero haberte entendido,

Revisa el adjunto y nos compartes tu respuesta

Mucha Suerte !!!

Saludos 

muesetra_Max.zip

 

@Héctor Miguel me funcionó a las mil maravillas la UDF. No se me había ocurrido antes.

Hace 3 horas, Héctor Miguel dijo:

hola, a todos ! (solo por no "dejarlo en el tintero")

no necesitas buclear por todas las hojas de un libro para averiguar si alguna existe, prueba con una UDF +/- así:


Function HojaExiste(ByVal nombre As String) As Boolean
  On Error Resume Next
  HojaExiste = Worksheets(nombre).Type
End Function

después solo adapta la creación de la hoja (si fuera necesario p.ej.


  if HojaExiste("Índice WP") = false then Crear_Indice

saludos,

hector.

 

Muchas gracias a ambos por sus respuestas.

Tema solucionado.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png