Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Voy a comenzar con los controles insertados en una hoja (controles ActiveX), por ejemplo una
en la que tengamos varios: Textbox, ComboBox, ListBox y CheckBox. Para que podamos
automatizar el proceso de forma óptima debemos utilizar la instrucción Select Case:
Sub LIMPIAR_CONTROLES()
With ActiveSheet
'Por cada objeto que indiquemos en el select case, borramos contenido
For Each Control In .OLEObjects
Select Case TypeName(Control.Object)
Case "TextBox"
Control.Object.Text = vbNullString
Case "ComboBox"
Control.Object.Clear
Case "ListBox"
Control.Object.Clear
Case "CheckBox"
Control.Object.Value = False
End Select
Next Control
End With
End Sub
Dado que estamos trabajando con controles ActiveX debemos tratar en nuestro código con
los objetos OLEObject, que son los que nos van a permitir interactuar con nuestra hoja. A
continuación solo tendremos que especificar el tipo de objeto y la forma en la que debemos
limpiarlo o vaciarlo en el Select - Case.
Con los Formularios o Userforms resulta más sencillo, dado que haremos referencia a la
colección Controls. El resultado del código es similar al anterior:
Como podéis ver, ambas estructuras son idénticas (salvo por la forma de hacer referencia a los
controles de formulario).
Dado que se trata de fragmentos de código bastante específicos y sencillos, considero que no
requieren un archivo de ejemplo. Os invito a que los probéis en vuestros proyectos : )