¿Cómo puedo evitar que ocurra un problema en el userform de excel?
Tengo un userform que se ejecuta con un botón, pero al momento de hacerlo ocurre lo siguiente.
Pero si este formulario lo ejecuto desde el programador no ocurre este problema.
2 respuestas
Tengo todo el código asociado,
Private Sub CommandButton1_Click()
Sheets("Consolidado").Activate
If ComboBox15 = "" Or ComboBox4 = "" Or ComboBox33 = "" Or ComboBox2 = "" Then
MsgBox "Está dejando sin tipo o estado de iniciativa, por favor complete.", vbInformation, "Consalud"
Else
If CheckBox1.Value = True Then
On Error Resume Next
ActiveCell.Offset(0, 26) = TextBox14.Value
ActiveCell.Offset(0, 31) = ComboBox17.Value
ActiveCell.Offset(0, 32) = ComboBox18.Value
ActiveCell.Offset(0, 33) = ComboBox19.Value
ActiveCell.Offset(0, 18) = CDate(TextBox12.Value)
ActiveCell.Offset(0, 34) = ComboBox20.Value
ActiveCell.Offset(0, 35) = ComboBox21.Value
ActiveCell.Offset(0, 8) = ComboBox26.Value
ActiveCell.Offset(0, 11) = ComboBox27.Value
ActiveCell.Offset(0, 10) = ComboBox28.Value
ActiveCell.Offset(0, 39) = ComboBox15.Value
ActiveCell.Offset(0, 9) = ComboBox29.Value
ActiveCell.Offset(0, 7) = ComboBox4.Value
ActiveCell.Offset(0, 42) = ComboBox33.Value
ActiveCell.Offset(0, 40) = TextBox16.Value
ActiveCell.Offset(0, 43) = ComboBox34.Value
If ComboBox33 = "BACKLOG" Then
On Error Resume Next
ActiveCell.Offset(0, 44) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 45) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 46) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "DEFINICIÓN USR" Then
On Error Resume Next
ActiveCell.Offset(0, 47) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 48) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 49) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "APN" Then
On Error Resume Next
ActiveCell.Offset(0, 50) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 51) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 52) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "Ar" Then
On Error Resume Next
ActiveCell.Offset(0, 53) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 54) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 55) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "DESARROLLO" Then
On Error Resume Next
ActiveCell.Offset(0, 56) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 57) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 58) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "QA" Then
On Error Resume Next
ActiveCell.Offset(0, 59) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 60) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 61) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "PRUEBA USR" Then
On Error Resume Next
ActiveCell.Offset(0, 62) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 63) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 64) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "PRE-PRODUCCIÓN" Then
On Error Resume Next
ActiveCell.Offset(0, 65) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 66) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 67) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
Else
If ComboBox33 = "PRODUCCIÓN" Then
On Error Resume Next
ActiveCell.Offset(0, 68) = CDate(TextBox19.Value)
ActiveCell.Offset(0, 69) = CDate(TextBox20.Value)
ActiveCell.Offset(0, 70) = CDate(TextBox21.Value)
MsgBox "Datos actualizados correctamente", vbInformation, "Consalud"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox6 = ""
TextBox7 = ""
TextBox30 = ""
TextBox14 = ""
ComboBox26 = ""
ComboBox27 = ""
ComboBox28 = ""
ComboBox29 = ""
TextBox19 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox25 = ""
TextBox24 = ""
TextBox11 = ""
TextBox12 = ""
TextBox13 = ""
ComboBox15 = ""
TextBox16 = ""
ComboBox17 = ""
ComboBox18 = ""
ComboBox19 = ""
ComboBox20 = ""
ComboBox21 = ""
ComboBox33 = ""
TextBox18 = ""
TextBox19 = ""
ComboBox2 = ""
ComboBox4 = ""
ComboBox34 = ""
TextBox26 = ""
TextBox27 = ""
TextBox28 = ""
TextBox3.Locked = False
TextBox4.Locked = False
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
Sheets("Portada").Select
Range("A1").Select
End Sub
- Compartir respuesta
Más que colocar el código de un botón de, aparentemente, el "UserForm", quizá lo conveniente es que lo hagas con el botón que "llama" ese "UserForm" y que, también aparentemente, lo abre.
Ojo con algo, el efecto del que mandas captura de pantalla a veces ocurre por la baja frecuencia de actualización de la pantalla. Cuando ocurre el efecto en cuestión al dar clicl al "UserForm" ¿desaparece y se vuelve a ver como un solo "UserForm"? De ser sí la respuesta, bastaría, quizá, colocar al inicio un:
Application.ScreenUpdating =False
y al final un:
Application.ScreenUpdating =True
Comentas
Abraham Valencia
Lo que pasa Abraham, es que al momento de ejecutar el botón desde la ventana programador( Al darle click al botón play), se ejecuta el user de manera correcta, el error comienza cuando cierro la ventana programador y ejecuto con el botón asignado, desde un inicio utilizo Application.ScreenUpdating =False, cambie el boton, y el problema continua.
- Compartir respuesta