Saltar al contenido

Msgbox Recurrente


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

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

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.

Enlace a comentario
Compartir con otras webs

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.