Macro para copiar datos de una hoja a otra y que ordene los nuevos datos

Ojala alguien me pueda ayudar con una macro para copiar datos de una hoja a otra y que los datos que se van registrando los empuje hacia abajo.

Tengo datos en la hoja COMPRAS y requiero que los copie en la hoja BD (a partir dela fila 9)

Copiando en COMPRAS las celda D4 a BD en la celda A9

  • COMPRAS D6 a BD B9
  • COMPRAS I6 a BD C9
  • COMPRAS D8 a BD D9
  • COMPRAS I8 a BD E9
  • COMPRAS D12 a BD F9
  • COMPRAS D14 a BD G9
  • COMPRAS I12 a BD H9
  • COMPRAS I14 a BD J9
  • COMPRAS D16 a BD I9
  • COMPRAS I10 a BD L9
  • COMPRAS D18 a BD K9
  • COMPRAS D20 a BD M9

y cuando ingrese nuevos datos, necesito que se registren en la fila 9 y los anteriores se vayan a la fila 10 o en la fila que corresponda, pero los ultimos datos que ingrese necesito que aparezcan primero (en la fila 9)

1 respuesta

Respuesta
1

Te anexo la macro

Sub Copiar_De_Compras_A_BD()
'   Por Dante Amor
    '
    Set h1 = Sheets("COMPRAS")  'Origen
    Set h2 = Sheets("BD")       'Destino
    h2.Rows("9:9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    h2.Range("B9").Value = h1.Range("D6")
    h2.Range("C9").Value = h1.Range("I6")
    h2.Range("D9").Value = h1.Range("D8")
    h2.Range("E9").Value = h1.Range("I8")
    h2.Range("F9").Value = h1.Range("D12")
    h2.Range("G9").Value = h1.Range("D14")
    h2.Range("H9").Value = h1.Range("I12")
    h2.Range("J9").Value = h1.Range("I14")
    h2.Range("I9").Value = h1.Range("D16")
    h2.Range("L9").Value = h1.Range("I10")
    h2.Range("K9").Value = h1.Range("D18")
    h2.Range("M9").Value = h1.Range("D20")
    MsgBox "Datos copiados"
End Sub

'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda

¡Gracias! Muchas Gracias por tu ayuda!

Dante, un nuevo favor, espero me puedas ayudar.

La macro anterior es correcta, sin embargo, ahora que he añadido formato a la fila 8 de la hoja BD, al copiar los datos de la hoja COMPRAS, le da el mismo formato de la fila 8 , y no quiero que esto suceda ya que partir de donde se van añadiendo (fila 9) los datos necesito que me respete el formato que he establecido. 

Cambia esta línea:

    h2.Rows("9:9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

Por esta:

    h2.Rows("9:9").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas