Hola:
Vamos por partes.
El problema del recorrido de todo el listbox, viene dado por los elementos en blanco que se cargan al principio. Por otro lado la línea de código que controla si el textbox está vacío en el evento change, no funciona correctamente.
Esto queda solucionado de la siguiente manera, sustituye:
- Código: Seleccionar todo
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "70 pt;20 pt"
ListBox1.RowSource = "A4:B183"
End Sub
por:
- Código: Seleccionar todo
Private Sub UserForm_Initialize()
Dim x As Integer '<========
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "70 pt;20 pt"
x = 4 '<========
While ActiveSheet.Cells(x, 1) <> "": x = x + 1: Wend '<=======
ListBox1.RowSource = "A4:B" & x - 1 '<=========
End Sub
con esto conseguimos que solo se incluyan en el listbox las marcas ionformadas (A1-A61).
Por otro lado debemos controlar si el textbox está vacio, cambia:
- Código: Seleccionar todo
For i = Me.ListBox1.ListCount - 1 To 0 Step -1
If Not IsEmpty(Trim(Me.TextBox1)) Then
por:
- Código: Seleccionar todo
For i = Me.ListBox1.ListCount - 1 To 0 Step -1
If NotTextBox1 = "" Then <================
Siguiente tema, las marcas de las líneas 21 y 22 no se muestran porqué el nombre de la marca no es exactamente igual al nombre de la hoja, en la línea 21 hay problemas con la comilla(') y en la línea 22 hay espacios entre los dos nombres en el nombre de la hoja y en la celda no.
Y por último:
La propiedad
Me.ShowModal=False, puede ponerse por código, en la 1ª línea de
UserForm_Initialize o en el formulario en
tiempo de diseño dentro del editor de VB, selecciona el formulario con un click, y pulsa la t
ecla de función F4, a mano izquierda, te aparecerán las propiedades, una de ellas es la propiedad ShowModal. En cualquier caso, tu formulario ya tiene esa propiedad en false.
Saludos cordiales
Antoni