Cargar listbox descartando las filas con valores "0"

Tengo registros en un rango de celdas ("A2:F") y necesito cargar el listbox con todo el rango, pero descartando las filas si en la columna "E" encuentra el valor "0". El rango le he dado formato tabla(Tabla1).

He intentado ajustar un código que he encontrado, pero no consigo que funcione. ¿Alguien me puede ayudar?

Private Sub UserForm_Initialize()
 With Hoja2
    r = .Range("Tabla1")
    For i = 2 To .Range("E" & Rows.Count).End(3).Row
    If .Cells(i, 5) <> "0" Then
       With ListBox1
         .List = r
       End With
    End If
    Next
 End With
End Sub

1 Respuesta

Respuesta
1

Visita:

Cursos de Excel y Macros - YouTube

---

Te paso el código:

Private Sub UserForm_Initialize()
'Por Dante Amor
  Dim a As Variant    'matriz inicial con los datos
  Dim b As Variant    'matriz con los datos filtrados
  Dim i As Long, j As Long, k As Long, n As Long
  '
  a = Hoja2.Range("Tabla1").Value
  'contar el número de celdas diferentes de 0
  n = WorksheetFunction.CountIf(Hoja2.Range("Tabla1").Columns(5), "<>0")
  'redimensionar la matriz para almacenar los datos filtrados
  ReDim b(1 To n, 1 To UBound(a, 2))
  '
  For i = 1 To UBound(a, 1)       'desde la fila 1 hasta la última fila de la matriz 'a'
    If a(i, 5) <> 0 Then
      k = k + 1
      For j = 1 To UBound(a, 2)   'desde la columna 1 y hasta la última columna de la matriz 'a'
        b(k, j) = a(i, j)
      Next
    End If
  Next
  'carga el listbox
  ListBox1.List = b
End Sub

---

Recomendaciones para utilizar matrices:

Curso de Macros y Matrices en Excel. Ejercicio 1 - YouTube

Curso de Macros y Matrices en Excel. Ejercicio 2 - YouTube

Curso de Macros y Matrices en Excel. Ejercicio 3 - YouTube

Curso de Macros y Matrices en Excel. #excel #macro - YouTube

---

Sal u dos Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas