¿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

Respuesta
1

¿Qué código tienes en el botón?

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

Envíame esa versión de tu archivo y me dices qué pasos debo seguir para llegar al problema.

Tengo que revisar las propiedades del form y de la hoja

En el asunto pon tu nombre de usuario

Respuesta
1

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.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas