¿Como cargar datos de diferentes hojas a un Array?

Tengo varias hojas en un libro con esta estructura.

Quiero que me cargue en un Array todos los registros que comienzan en la celda B6 hasta el ultimo de la celda H... De todas las hojas que en la celda E5 ="Marca".

1 Respuesta

Respuesta
1

Ya te había preparado la macro para eso. Solamente faltaba la condición de no cargar las hojas que estuvieran vacías.

En esta condición:

If LCase(sh.Range("E5").Value) = LCase("Marca") Then

Hay que agregar la condición si la celda está vacía:

      If LCase(sh.Range("E5").Value) = LCase("Marca") And _
          Sh. Range("E6").Value <> "" Then

Los valores a mostrar en el Listbox azul serian en este orden:

1º columna en que hoja se encuentra ... nombre

2º columna submaquina... en las sheets columna B

3º columna nombre en Excel Mto... en las sheets columna C

4º columna ·Referencia Almacen Mto... en las sheets columna D

5º columna Marca... en las sheets columna E

6º columna Cantidad... en las sheets columna F

Eso hace esta parte:

        For i = 1 To UBound(a, 1)
          k = k + 1
          'Acumula en la matriz b, todas las marcas de todas las hojas
          'Orden: 1-hoja, 2-colB, 3-colC, 4-colD, 5-colE, 6-colF
          b(k, 1) = sh.Name
          For j = 1 To UBound(a, 2)
            b(k, j + 1) = a(i, j)
          Next
        Next

En la matriz 'b' tendrás todos los datos de las hojas con las columnas que solicitaste.


Si tienes duda con el código, con gusto lo revisamos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas