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
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 de mauricio_g
1