Como asignar dos userform a un userform activo?

Tengo tres userform, abro el userform 1 y del userform 1 abro el userform 2 y el userform 3 y me gustaría que cuando abra la hoja de excel me muestre el userform 1 y no la hoja el userform 1 lo utilizo para ingresar datos, solo q al presionar el botón guardar tngo un msgbox q m pregunta si estoy a seguro de los datos ingresados, solo q cuando se muestra el msgbox el userform 1 se desaparece y si le doy si o no se me vuelve a mostrar, son tres preguntas en una espero m puedan ayudar

1 respuesta

Respuesta
1

[Hola

En workbook_open pon esto

Application.Visible = False

Userform.show 'cambias el nombre de tu formulario por el tuyo

Muestra el código del botón guardar para ver porque se oculta tu formulario

hola este es el codigo de mi boton

Application.ScreenUpdating = False
Load frmIngresoDatos
DatosDependientes.Activate
frmIngresoDatos.Show
Application.ScreenUpdating = True

el codigo q te envie fue el del boton abrir mi formulario este seria el de guardar

aclaro el credito del codigo no es mio, lo encontre no se en que parte del internet lo modifique y estes.

Sub ArticulosCuota()
Dim fila As Long
Dim respuesta As Integer
Dim duplicados As Boolean

Application.ScreenUpdating = False
DatosDependientes.Unprotect "BVELIS"

'Obtener la fila disponible
fila = Application.WorksheetFunction.CountA(Range("B:B")) + 1

duplicados = False

'Validar si se han ingresado datos duplicados
For i = 1 To fila
If Cells(i, 1).Value = rfm_prodenCuota.txt_CodigoUsuario.Value Then
If Cells(i, 2).Value = rfm_prodenCuota.txt_nomDependiente.Value Then
If Cells(i, 3).Value = rfm_prodenCuota.txt_Codarticulo.Value Then
If Cells(i, 4).Value = rfm_prodenCuota.txt_unidadesVenta.Value Then
If Cells(i, 5).Value = rfm_prodenCuota.txt_articulo.Value Then
If Cells(i, 6).Value = rfm_prodenCuota.txt_precios.Value Then
If Cells(i, 7).Value = rfm_prodenCuota.txt_Laboratorio.Value Then
'Se encontraron datos duplicados
'MsgBox "El Cliente se encuentra en la Fila No." & i - 1, vbInformation, "Error"
duplicados = True
End If
End If
End If
End If
End If
End If
End If
Next i

'-------------------------------------------------

If Not duplicados Then
'Insertar datos capturados
If CodigoUsuario = "" Or nomDependiente = 0 Or codArticulo = "" Or unidadesVenta = "" Or Articulo = "" Or precios = "" Or Laboratorio = 0 Then
MsgBox "Debe llenar todos los datos, Por Favor Vuelva A Intentar", vbCritical, "Farmacia Batres II, Chiquimula"
Exit Sub
End If
respuesta = MsgBox("Verifique sin son unidades o cajas las que vendio", vbYesNo + vbQuestion, "Error")
If respuesta = vbYes Then

Cells(fila, 3).Value = rfm_prodenCuota.txt_CodigoUsuario.Value
Cells(fila, 2).Value = rfm_prodenCuota.txt_nomDependiente.Value
Cells(fila, 4).Value = rfm_prodenCuota.txt_Codarticulo.Value
Cells(fila, 7).Value = rfm_prodenCuota.txt_unidadesVenta.Value
Cells(fila, 5).Value = rfm_prodenCuota.txt_articulo.Value
Cells(fila, 8).Value = rfm_prodenCuota.txt_precios.Value
Cells(fila, 6).Value = rfm_prodenCuota.txt_Laboratorio.Value
'Limpiar cajas de texto
rfm_prodenCuota.txt_CodigoUsuario.Value = ""
rfm_prodenCuota.txt_nomDependiente.Value = ""
rfm_prodenCuota.txt_Codarticulo.Value = ""
rfm_prodenCuota.txt_unidadesVenta.Value = ""
rfm_prodenCuota.txt_articulo.Value = ""
rfm_prodenCuota.txt_precios.Value = ""
rfm_prodenCuota.txt_Laboratorio.Value = ""

DatosDependientes.Protect "BVELIS"

Application.ScreenUpdating = True

'Notificar al usuario
MsgBox "El Cliente se guardo con el No. de ID. 0" & fila + 1, vbInformation, "Error"

End If
End If
End Sub

Y ahi en de respuesta se me oculta el user form  me gustaria que si en el formulario tengo texbox vacios no me deje seguir hasta que se llenen todos los textbox.... gracias de antemano

[Hola, esto valida los textbox pon este código al principio del botón guardar 

For Each Control In Controls
    If TypeName(Control) = "TextBox" Then
        If Control.Value = "" Then
        MsgBox "captura todos los datos"
        Exit Sub
        End If
    End If
Next

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas