Saltar al contenido

Cerrar un procedimiento


jononaia

Recommended Posts

Hola de nuevo y gracias por su tiempo.

Tengo un problema a la hora de finalizar un procedimiento. Le cuento:

Tengo un formulario, en el que al darle al boton "Aceptar" (es un commandbutton) quiero que llame a un procedimiento en función de si el OPtionButton2 está clicado o no. Hasta aqui, todo bien, el problema viene cuando en el procedimiento llamado (uno u otro)  me salta el UserForm4, y despues me salta el UserForm9. Yo lo que deseo, es que si en cualquiera de los 2 procedimientos, si salta el userform4, al aceptarlo, no me salte el userform9, y es que siempre lo hace. 

A ver si saben decirme como arreglarlo para que finalice el if, al saltar el userform 4. 

 

Private Sub Aceptar_Click()

If OptionButton2.Value = True Then
    Call ComprobarSiExisteConector
Else
    ComprobarSiExistelatiguillo
End If
Exit sub

 UserForm9.Show

Unload Me
End Sub


Private Sub ComprobarSiExisteConector()
    Dim j As Integer
    Dim final As Integer

For i = 1 To 1000
If Hoja5.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next
    
    For j = 1 To final
        If (Hoja5.Cells(j, 1) = UserForm5.TextBox8 Or Hoja5.Cells(j, 9) = UserForm5.TextBox8) And _
        Hoja5.Cells(j, 10) = UserForm5.Fabricante Then
            UserForm4.Show
        Exit Sub
        Exit For
        End If
    Next

End Sub


Private Sub ComprobarSiExistelatiguillo()
    Dim j As Integer
    Dim final As Integer
    
For i = 1 To 1000
If Hoja5.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next
    
    For j = 1 To final
        If (Hoja5.Cells(j, 1) = UserForm5.TextBox8 Or Hoja5.Cells(j, 9) = UserForm5.TextBox8) And _
        Hoja5.Cells(j, 6) = UserForm5.Ubicacion And Hoja5.Cells(j, 7) = CStr(UserForm5.Longitud) Then
            UserForm4.Show
        Exit Sub
        Exit For
        End If
    Next

End Sub

 

Gracias de nuevo, Susana

Enlace a comentario
Compartir con otras webs

No he entendido nada @jononaia :(. ¿Porqué no subes tu fichero de ejemplo? No sé si estás en el form9 o el 4, y demás con tanto Exit Sub, Exit For... me he liado

Hace 1 hora, jononaia dijo:

Private Sub Aceptar_Click()

If OptionButton2.Value = True Then
    Call ComprobarSiExisteConector
Else
    ComprobarSiExistelatiguillo
End If
Exit sub

 UserForm9.Show

Unload Me
End Sub 

De todas maneras, creo que el problema está aquí en ese Exit Sub po el que SIEMPRE PASA. Tras el if pasas al exit sub, pero no entiendo que esa sentencia sea que muestre el 9 ¿No debería ser que lo ocultase, y por supuesto dentro del If?

Ya te digo que me he liado :rolleyes:

Enlace a comentario
Compartir con otras webs

Hola @jononaia, creo que te te has enredado tu solo... Con el IF decides que Procedimiento vas a elegir, pero en los dos procedimientos llamas al Formulario 4, te puse unas anotaciones... revisarlas.

 

Private Sub Aceptar_Click()

    If OptionButton2.Value = True Then
        Call ComprobarSiExisteConector
    Else
        ComprobarSiExistelatiguillo
    End If
    
'    Exit Sub'ESTAS LINEAS SOBRAN YA QUE AQUI SALE DEL PROCEDIMIENTO.
'
'     UserForm9.Show
'
'    Unload Me
End Sub


Private Sub ComprobarSiExisteConector()
    Dim j As Integer
    Dim final As Integer

    For i = 1 To 1000
        If Hoja5.Cells(i, 1) = "" Then
            final = i
            Exit For
        End If
    Next
    
    For j = 1 To final
        If (Hoja5.Cells(j, 1) = UserForm5.TextBox8 Or Hoja5.Cells(j, 9) = UserForm5.TextBox8) And _
            Hoja5.Cells(j, 10) = UserForm5.Fabricante Then
            UserForm4.Show 'LLAMAS EN LOS 2 PROCEDIMIENTOS AL FORMULARIO 4
            Exit Sub
            Exit For
        End If
    Next

End Sub


Private Sub ComprobarSiExistelatiguillo()
    Dim j As Integer
    Dim final As Integer
    
    For i = 1 To 1000
        If Hoja5.Cells(i, 1) = "" Then
            final = i
            Exit For
        End If
    Next
    
    For j = 1 To final
        If (Hoja5.Cells(j, 1) = UserForm5.TextBox8 Or Hoja5.Cells(j, 9) = UserForm5.TextBox8) And _
            Hoja5.Cells(j, 6) = UserForm5.Ubicacion And Hoja5.Cells(j, 7) = CStr(UserForm5.Longitud) Then
            UserForm4.Show 'LLAMAS EN LOS 2 PROCEDIMIENTOS AL FORMULARIO 4
            Exit Sub
            Exit For
        End If
    Next

End Sub

Siempre pon Tabulador para que el código sea mas claro. Y te des cuenta, donde abres y donde cierras los IF o los FOR, etc....

 

Saludos.

Enlace a comentario
Compartir con otras webs

Gracias por las respuestas, y si, me he liado yo sola.

el problema es que lo tengo en mi cabeza, pero no lo sé bien explicar.. y como de vba entiendo poco, y voy haciendo las cosas parcheando... pasa esto.

Voy a ver si consigo enviar un ejemplo para que me entendais mejor. Es que el archivo de donde saco esta info, es muy extenso... lo voy a resumir para enviarlo

Gracias, Susana

Enlace a comentario
Compartir con otras webs

Hace 53 minutos , jononaia dijo:

Es que el archivo de donde saco esta info, es muy extenso...

También lo puedes subir a un servidor externo: Dropbox, Google Drive, Mega, etc.

Si resumes, que sea representativo de lo que necesitas

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.