¿Crear procedimiento para vaciar los items de un listbox de cualquier formulario?

A [email protected]!

Tengo este procedimiento en un formulario llamado RegistroReuniones y que sirve para vaciar el listbox llamado ListAsistentesReunionElegida .

Sub borrado ListAsistentesReunionElegida

'Borramos los datos de ListAsistentesReunionElegida
Dim k As Long, l As Long
With ListAsistentesReunionElegida
For k = 0 To .ListCount - 1
For l = .ListCount - 1 To (k + 1) Step -1
.RemoveItem k
Next l
Next k
On Error GoTo Jump
.RemoveItem l
End With

Jump:

End Sub

Quiero crear código en un modulo aparte del modulo del formulario, de tal manera que cuando le llame y le pase el nombre del formulario y el del listbox deseo que ejecute ese código y me lo vacíe.

Es decir un procedimiento común para vaciar cualquier listbox de cualquier formulario.

2 respuestas

Respuesta
1

En principio no parece necesario vaciar un listbox quitando uno a uno sus elementos.
Si el listbox fue rellenado con AddItem, prueba con

NombreListbox. Clear

Y si fue rellenado con RowSource:

NombreListbox.RowSource=""

Saludos_

Respuesta

Dentro de tu userform, por ejemplo en un botón, haces la llamada al código para limpiar el listbox y le pasas como parámetro el nombre del listbox

Private Sub CommandButton1_Click()
  Call LimpiarListBox(ListBox1)
End Sub

En un módulo, pon este código:

Sub LimpiarListBox(ControlListbox As MSForms.ListBox)
  ControlListbox.Clear
End Sub

Nota: El nombre del listbox deberá existir en el userform donde estás ejecutando el código.

Hola...gracias por responder!

En ese nuevo modulo hace referencia al Listbox , no hace referencia al formulario donde se encuentra...como ser refiere a el?.

Ese procedimiento quiero colocarlo en el modulo "Apoyo" y el ListBox pertenece al formulario RegistroReuniones...ver imagen. 

Puedes concretar un poco mas?

Gracias de nuevo

En un botón en el formulario:

Private Sub CommandButton1_Click()
  Call LimpiarListBox(RegistroReuniones.ListBox1)
End Sub

En tu módulo Apoyo:

Sub LimpiarListBox(ControlListbox As MSForms.ListBox)
  ControlListbox.Clear
End Sub

[No olvides valorar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas