Copiar datos de una hoja a otra con macro

Estoy trabajando en un archivo muy interesante, este archivo tiene un macro que quisiera ajustar a mi necesidad.
Los datos se encuentran (por ejemplo) en una hoja 1 en la fila 7, a través del macro se pasan a la hoja 2 a la fila 9, puedo borrar la información de la hoja 1 pero al ingresar nueva información y pasarla a la fila 2 esta se escribe sobre la anterior, quisiera que cada vez que ingresara nueva información en la hoja 1 en la fila 7 esta se pasa a la hoja 2 en forma descendente, es decir, los primero datos en la fila 9, luego en la fila 10, 11, 12 y sucesivamente. ¿Sería posible?
El macro que tengo es el siguiente:
Sub DatosPago()
Sheets("Pagos").Select
 id = Range("A" + fila).Text
 nombres = Range("D" + fila).Text
 fpago = Range("E" + fila).Text
 ncuenta = Range("H" + fila).Text
 tcuenta = Range("G" + fila).Text
 Banco = Range("F" + fila).Text
 Importe = Range("L" + fila).Text
 año = Range("I" + fila).Text
 mes = Range("J" + fila).Text
 dia = Range("K" + fila).Text
 Concepto1 = Range("M" + fila).Text
 Concepto3 = Range("N" + fila).Text
 Concepto4 = Range("O" + fila).Text
 Concepto5 = Range("P" + fila).Text
 Cuentaemisora = Range("B2").Text
 If Importe <> "" Then
  Valor = Importe
 Else
  Valor = 0
 End If
End Sub
Sub Reporte()
Dim Ordenes As Integer
Dim Total As Variant
Total = 0
Valor = 0
fila = "7"
c = 0 'Numero de ordenes
'Limpiar celdas
    Sheets("ReportePago").Select
    Rows("9:65536").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
'fin limpiar celdas
DatosPago
While id <> ""
 c = c + 1
 fila = fila + 2
 Sheets("ReportePago").Select
 Range("A" + fila).Value = id
 Range("B" + fila).Value = nombres
 Range("C" + fila).Value = Valor
 Total = Total + Valor
 Range("D" + fila).Value = fpago
 Range("E" + fila).Value = Banco
 Range("F" + fila).Value = tcuenta
 Range("G" + fila).Value = ncuenta
 Range("H" + fila).Value = año
 Range("I" + fila).Value = mes
 Range("J" + fila).Value = dia
 Range("K" + fila).Value = Concepto1
 Range("L" + fila).Value = Concepto3
 Range("M" + fila).Value = Concepto4
 Range("N" + fila).Value = Concepto5
 fila = fila + 1 - 2 'para leer en la hoja de pagos
 DatosPago
Wend
 Sheets("ReportePago").Select
 Range("B2").Value = Date
 Range("B3").Value = Cuentaemisora
 Range("B4").Value = Total
 Range("B5").Value = c
 ActiveWindow.SelectedSheets.PrintPreview
End Sub

1 respuesta

Respuesta
1
Cuando una macro involucra pegar datos en otra celda (u hoja) y que estos se vayan pegando uno debajo de otro, el código que permite esto es:
'Activar "hojax"
  WorkSheets("Hojax"). Activate

' Activar casilla A2
  ActiveSheet. Range("A1"). Activate
  ' Mientras la celda activa no esté vacía
  Do While Not IsEmpty(ActiveCell)  
   

' Hacer activa la celda situada una fila por debajo de la actual
    ActiveCell.Offset(1,0). Activate
 

Loop
Con ese código la macro ira bajando filas de acuerdo a si están están vacías o no.Sin embargo, las 2 macros que copiaste más arriba me resultan un poco confusas para mi, por lo que no puedo introducirlas entremedio fácilmente.
Si quieres puedes enviarme el archivo excel con esos datos a "el.kilo(arroba)gmail.com" para analizarlo de mejor manera y darte una solución más concreta. (A no ser que puedas tu introducir el código en la macro y voila.
Hola Mauricio!
Un millón de Gracias!
Voy a probar y cualquier duda t envío el archivo al correo que me enviaste.
Nuevamente,
Muchísimas gracias, por tu pronta respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas