Copiar en grupos de 2 celdas de Hoja1 a la Hoja 2

Necesito una macro para copiar en grupos de 2 celdas los números del Rango BJ2:PQ1892 de la hoja1 a la hoja 2 de acuerdo al siguiente ejemplo

1 Respuesta

Respuesta
1

¿Los números de la fila 3 en dónde van, bajo de los de la fila 2?

Y los signos que se ven en las otras celdas: "- ", ">". ¿Esos no se copian?

¿Tienes algunas otras especificaciones que no mencionaste?

Hola Dante las flechas las puse para indicar el sentido la macro tendría que recorrer las filas del rango que mencioné y copiar en la hoja 2 de a 2 celdas hasta finalizar en el ejemplo la macro tendría que seguir recorriendo la fila y si encuentra datos los tendría que copiar en la hoja 2 luego de la dupla 55-59 y así sucesivamente con la fila 3 en el rango especificado podes hacerlo por fila o por columnas en tanto sean copiados de 2 en 2 gracias

Tal vez no hice la pregunta adecuada.

Tu ejemplo no está completo.

Solamente pusiste el ejemplo de la fila 2.

¿Los números de la fila 3 en dónde van?

¿Los números de la fila 4 en dónde van?

Los números de la fila 3 van debajo de los números que se copiaron  de la fila 2  y  así sucesivamente hasta que no haya más datos en el ejemplo sería debajo de los números  55 y 59  en mí ejemplo si no hubiera más números en esa fila irían el 59 y el 67 cuando sea el turno de la fila 6 irían el 16 y el 48 primero y luego los que aparezcan y siempre de a 2

Utiliza la siguiente macro:

Sub CopiarGrupos()
  'Por Dante Amor
  Dim i As Long, j As Long, k As Long, lr As Long, lc As Long
  Dim a As Variant, b As Variant
  '
  With Sheets("Hoja1")
    lr = .Cells.Find("*", , , xlPart, xlByRows, xlPrevious).Row
    lc = .Cells(1, Columns.Count).End(1).Column
    a = .Range("BJ2", .Cells(lr, lc)).Value
    ReDim b(1 To Int((lr * lc) / 2) + 2, 1 To 2)
  End With
  '
  For i = 1 To UBound(a, 1)
    For j = 1 To UBound(a, 2) - 1 Step 2
      If a(i, j) <> "" Then
        k = k + 1
        b(k, 1) = a(i, j)
        b(k, 2) = a(i, j + 1)
      End If
    Next
  Next
  '
  Sheets("Hoja2").Range("A2").Resize(k, 2).Value = b
End Sub

Nota:

Te recuerdo que excel tiene hasta un millón de filas. Tu cuenta de filas con 372 columnas y 1892 filas va en 700 mil filas, solamente para que lo consideres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas