Crear Ciclo For o While para recorrer celdas y copiar datos a otra hoja en una sola fila.

Deseo que me den una ayuda a realizar un bucle en la cual pueda recorrer una columna y que al encontrar los ítem como 1... 16 o mas ítems y que me copie las celdas que están en color haca una nueva hoja de Excel que es por filas.

Les comparto unas imágenes de como es el detalle de los datos.

Datos de donde se irán a la hoja 2

base de datos donde será ordenado en filas por el ciclo.

1 Respuesta

Respuesta
2

Te dejo la macro iniciada para tu guía. El uso de las letras de columnas te ayudarán a ubicarte mejor que si ingresaras el nro de columna.

No se ven los encabezados de filas en tus imágenes. Estoy asumiendo que la primer imagen se inicia en fila 1. Irás acumulando a la variable i la filas de cada campo de la tabla1, hasta llegar a la última de cada grupo. Luego el bucle incrementa en 12 el valor de la fila inicial.

Sub pase_a_Base()
'x Elsamatilde
'se declaran las hojas
Set hot = Sheets("Hoja1")    'es la hoja con las tablas
Set hob = Sheets("Hoja2")    'es la hoja Base
'se establece cuál es la última fila ocupada según col A, en las 2 hojas
x = hot.Range("A" & Rows.Count).End(xlUp).Row
y = hob.Range("A" & Rows.Count).End(xlUp).Row + 1   'se incrementa en 1 para continuar con el listado
'se asume que la primer hoja inicia sus datos en fila 1
If x < 3 Then Exit Sub    'significa que no hay datos y cancela el proceso.
'comienza el pase a cada columna   'ajustar y completar
For i = 3 To x Step 12
    hot.Cells(i, "B").Copy Destination:=hob.Cells(y, "C") 'Papty Panamá
    hot.Cells(i, "D").Copy Destination:=hob.Cells(y, "D") 'fecha de embarque
    'se incrementa i para pasar datos de otras filas
    hot.Cells(i + 1, "D").Copy Destination:=hob.Cells(y, "H") 'unidades
    hot.Cells(i + 1, "E").Copy Destination:=hob.Cells(y, "O") 'peso neto
    hot.Cells(i + 2, "B").Copy Destination:=hob.Cells(y, "M") 'dolar
    hot.Cells(i + 2, "C").Copy Destination:=hob.Cells(y, "N") 'seg dolar
    'al finalizar con todos los campos incrementar la fila destino
    y = y + 1
Next i
MsgBox "Fin del pase.", , "Información"
End Sub

Ajusta el nombre de cada hoja en las instrucciones SET. 

Te recuerdo que esta consulta sigue abierta... no olvides comentarla y/o valorarla para dar por cerrado el tema.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas