30 septiembre, 2023

VACIAR TODOS LOS COMBOBOX DE UNA HOJA

Hola a todos:

Hoy escribiré sobre cómo podemos automatizar la tarea de vaciar todos los combobox de nuestra hoja.

Dado que es un ejemplo sencillo no dejaré archivo, con el código es suficiente. Tan solo tenéis que copiarlo y pegarlo en un módulo estándar y realizar la prueba:

Sub VACIAR_COMBOS()
With ActiveSheet
'Por cada objeto que sea un combobox limpiamos contenido
For Each objeto In .OLEObjects
If objeto.OLEType = xlOLEControl Then
If TypeName(objeto.Object) = "ComboBox" Then
objeto.Object.Clear
End If
End If
Next
End With
End Sub

Como podéis ver, lo único que hacemos es pasar un «for – each» por todos los objetos de la hoja y cuando se trata del tipo especificado, limpia o vacía el contenido.

Es una macro sencilla y si tenéis aplicaciones que requieren  vaciar todos los combos, podéis hacerlo muy rápido con este código.

Si tuviésemos listbox en lugar de combobox, solo tendréis que sustituir listbox por combobox en la macro:

Sub VACIAR_LISTBOX()
With ActiveSheet
'Por cada objeto que sea un listbox limpiamos contenido
For Each objeto In .OLEObjects
If objeto.OLEType = xlOLEControl Then
If TypeName(objeto.Object) = "ListBox" Then
objeto.Object.Clear
End If
End If
Next
End With
End Sub

Y ya para finalizar, si se tratase de TextBox, solo hemos de modificar el método de limpiar los datos:

Sub VACIAR_TEXTBOX()
With ActiveSheet
'Por cada objeto que sea un textbox limpiamos contenido
For Each objeto In .OLEObjects
If objeto.OLEType = xlOLEControl Then
If TypeName(objeto.Object) = "TextBox" Then
objeto.Object = ""
End If
End If
Next
End With
End Sub

Son pequeñas «pinceladas» que os pueden ser de mucha utilidad para hacer que vuestro código sea más corto y más eficiente.

Y eso es todo por hoy.

Saludos! 🙂

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies