Póliza necesito guardar datos de una hoja a otra en excel 2007 mediante un botón

TENGO UN PÓLIZA CON LOS SIG. DATOS: PÓLIZA
FECHA, PROVEEDOR, CUENTA, CONCEPTO, JOB CENTER,COST CENTER, FACTURA, PEDIMENTO, DEBE, HABER Y TOTAL CADA UNO CON SU INFORMACIÓN.

QUIERO QUE AL MOMENTO QUE LE DE CLICK AL BOTÓN GUARDAR ME COPIE TODA LA INFORMACIÓN DE LA HOJA1 A LA HOJA(REPORTE) EN FROMA DE REPORTE COMO SE MUESTRA A CONTINUACION:

A B C D E F G H J L

PÓLIZA FECHA PROVEEDOR CUENTA CONCEPTO JOB CENTER

1 PRUEBA 04/07/2012 Bres&Sáenz Agents 1410011 Prevalidacion R50250
2 PRUEBA 04/07/2012 Bres&Sáenz Agents 1410009 Maniobras R50035

3 PRUEBA 04/07/2012 Bres&Sáenz Agents 1410010 DTA R50250
4 PRUEBA 04/07/2012 Bres&Sáenz Agents 1222094 IVA 11% R50250
5 PRUEBA 04/07/2012 Bres&Sáenz Agents 2111001 Proveedores R50250

TENGO YA UN CÓDIGO PERO SOLO ME COPIA LA PRIMERA LINEA Y ESTA PÓLIZA TIENE 5 LINEAS APARTE DE LOS DATOS REPETITIVOS COMO LO SON: PÓLIZA, FECHA, PROVEEDOR, FACTURA,PEDIMENTO Y TOTAL

ME PODRÍAN AYUDAR CON ESTO POR FAVOR

1 Respuesta

Respuesta
1

Usa un For Next o un Do Loop

algo asi:

Dim Celda As String
For r=1 To 5

Celda = Hoja1.Range("A" & r).Value

Hoja2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value

Next

el código que tengo es este

Sub copia()
Sheets("Sheet1").Select
PÓLIZA = Range("H6")
FECHA = Range("H5")
PROVEEDOR = Range("B13")
CUENTA = Range("B22:B48")
CONCEPTO = Range("C22:C48")
COST_CENTER = Range("E22:E48")
JOB_CENTER = Range("D22:D48")
FACTURA = Range("F22")
PEDIMENTO = Range("G22")
DEBE = Range("H22:H48")
HABER = Range("I22:I48")
NTOTAL = Range("I50")
Sheets("Sheet2").Select
Range("A65000").End(xlUp).Select
ActiveCell.Offset(1, 0).Select
ActiveCell = PÓLIZA
ActiveCell.Offset(0, 1) = FECHA
ActiveCell.Offset(0, 2) = PROVEEDOR
ActiveCell.Offset(0, 3) = CUENTA
ActiveCell.Offset(0, 4) = CONCEPTO
ActiveCell.Offset(0, 5) = JOB_CENTER
ActiveCell.Offset(0, 6) = COST_CENTER
ActiveCell.Offset(0, 7) = FACTURA
ActiveCell.Offset(0, 8) = PEDIMENTO
ActiveCell.Offset(0, 9) = DEBE
ActiveCell.Offset(0, 10) = HABER
ActiveCell.Offset(0, 11) = NTOTAL
End Sub

como le hago para adaptarle el código que me enviaste o me podrías ayudar a encontrar otra manera mas corta que el código que yo tengo

Gracias.

Mejor te explico el Código que te puse y trata de adaptarlo, es mejor que trates de comprenderlo xq asi podrás resolver algún otro problema que se te presente:

'Se declara una Variable tipo String
'donde se guardará el Valor de la Celda indicada
Dim Celda As String, r As Long

'Comienza el "Bucle" For Next que se repetirá hasta llegar a 5 (en este caso)
For r=1 To 5
'Hoja1 es el equivalente a Sheets("Hoja"), solo que así si tienes "intelissence"
'La r es la Variable que "guarda" el indice actual del bucle For Next
'En este caso guarda el Número de Fila
'Así, Range("A" & r).Value indica la primera vez Range("A1").Value
'La Segunda sería Range("A2").Value y así sucesivamente
'Siempre haz la referencia completa, con la propiedad adecuada, en este caso Value
Celda = Hoja1.Range("A" & r).Value 'Aquí se guarda el Valor en la variable
'Se guarda el Valor de la Variable Celda en la Hoja 2
'Rows. Count hace referencia a la última Fila de la Hoja
'.End(xlUp) indica que en memoria irá a la siguiente fila que no esté vacía hacia arriba
'. Offset(1, 0) en memoria "brinca" las Filas y Columnas indicadas...
'En este caso, 1 fila y 0 columnas
'Quiere decir que irá poniendo el valor de la variable Celda hacia abajo en la hoja 2
Hoja2.Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Value
Next 'Se repite el Bucle

Analiza como va funcionando "paso a paso" ejecutando el programa con F8

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas