Limpieza de combobox para volver a usar

Tengo un formulario el cual quiero limpiar para volverlo a usar, tengo el siguiente código, a la hora de cambiar, el mensaje se traba. ¿Algún consejo para que aplique el procedimiento con o sin el mensaje?

dim ctrl As Object

For Each ctrl In UserForm1.Controls
If TypeOf ctrl Is MSForms.TextBox Then ctrl = Empty
If TypeOf ctrl Is MSForms.ComboBox Then ctrl = Empty
Next ctrl
MsgBox ("Se ha cambiado de medida"), vbInformation, "Limpieza"

2

2 Respuestas

765.550 pts. No valoras las respuestas, no respondo la siguiente. No...

For Each Control In Form.Controls
If Control.ControlType = acTextBox or control.controltype=acCombobox Then
Control.Value = ""
End If
Next

4.666.550 pts. Sancho, si los perros ladran ...

Prueba lo siguiente:

Private Sub CommandButton1_Click()
    For Each ctrl In UserForm1.Controls
        If TypeOf ctrl Is MSForms.TextBox Then ctrl.Value = Empty
        If TypeOf ctrl Is MSForms.ComboBox Then ctrl.Value = Empty
    Next ctrl
    MsgBox "Se ha cambiado de medida", vbInformation, "Limpieza"
End Sub

Si te funciona, no olvides valorar la respuesta.

Si tienes dudas avísame.

.

y sin el mensaje, disculpa ?

No entiendo lo del mensaje. Te refieres al mensaje del Msgbox, simplemente quita esta línea de la macro:

MsgBox "Se ha cambiado de medida", vbInformation, "Limpieza"

O cuando está limpiando los controles te aparece un mensaje?

¿Qué dice ese mensaje?

¿Tienes más código en tu userform? Tal vez tienes otro evento que al modificar el textbox o el combobox aparece un error.

En tal caso envíame tu archivo para revisar el código del userform

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Lidia Velázquez

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas