Excel - PASAR DATOS DE UNA HOJA DE EXCEL A OTRA

 
Vista:

PASAR DATOS DE UNA HOJA DE EXCEL A OTRA

Publicado por Omar Salvador Palomino (4 intervenciones) el 13/08/2007 06:30:21
HOLA !

QUISIERA SABER SI ME PUDIERAN ORIENTAR COMO PASAR DATOS DE UNA HOJA A OTRA POR MEDIO DE UN COMMANDBUTON.

O SI HAY OTRO METODO , QUE MEJOR:

---------ESTO ES EN LA HOJA 1-----------------------------------------

TENGO EN UNA CELDA REGISTRADO EL NOMBRE
EN OTRA LA VENTA
EN OTRA LA FECHA
----------------- 1------------------------------------------------------------------

QUIERO QUE ESOS DATOS SE VALLAN A OTRA HOJA (X) DEL LIBRO Y QUE SE GUARDEN ALLI PERO QUE SE BORREN EN LA HOJA 1.

Y QUE EL SIGUIENTE REGISTRO QUE LLENE SE GUARDE EN LA SIGUEINTE FILA

ESPERO Y ME HAYA EXPLICADO

GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:PASAR DATOS DE UNA HOJA DE EXCEL A OTRA

Publicado por Abraham Valencia (2415 intervenciones) el 13/08/2007 16:40:04
Prueba con la grabadora de macros para obtener el codigo.

Abraham
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:PASAR DATOS DE UNA HOJA DE EXCEL A OTRA

Publicado por Edgardo Mejía (35 intervenciones) el 15/08/2007 16:52:12
Hola que tal, pasando al tema de interés primero necesitas saber la cantidad de filas o registros que tiene la hoja destino esto para poder copiar el rango total para saber cual es el último registro con datos puedes usar el siguiente codigo:

Workbooks("SALES ORDERS DOORS.xls").Worksheets("Registro").Activate
Dim ren As Integer
ren = 3
Dim col As Integer
col = 1
Dim val As String
Dim rentot As Integer
rentot = 3
Do
If ren > 3 Then
rentot = rentot + 1
End If
val = Cells(ren, col).Value
ren = ren + 1
Loop While val <> Empty
Obtener_urenRegistro = rentot

Claro que necesitas adecuarlo a tus necesidades, mira la variable ren contine el numero de renglon inicial en mi caso inicia en la fila 3,
la variable col es para saber en que columna va a hacer la busqueda, la variable val sirve para almacenar los datos contenidos en la celda especificada por ren y col, este ciclo terminara hasta que val sea Empty, es decir que no contenga información, rentot es para saver en que fila se encuentra la primer celda sin información, cabe señalar que para copiar un rango debemos poner rentot - 1 de esa forma copiaremos solo las celdas que contengan informacion por ejemplo:

Workbooks("SALES ORDERS DOORS.xls").Worksheets("Hoja1").Activate
"La instruccion anterior activa la hoja y el libro de donde vamos a copiar los registros"

Set rango1 = Workbooks("SALES ORDERS DOORS.xls").Sheets _("Hoja1").Range(Cells(inicio, 1), Cells(rentot -1, 50))
"Las anteriores lineas especifican el rango a copiar, donde inicio es el renglon donde esta el primer registro, así como tenemos que especificar en cual libro y en que hoja está el rango especificado"

Workbooks("SALES ORDERS DOORS.xls").Worksheets("31 JUL").Activate
"La instruccion anterior activa la hoja y el libro a donde vamos a copiar los registros"

Set rango2 = Workbooks("SALES ORDERS DOORS.xls").Sheets _
("31 JUL").Range(Cells(urenSOD, 1), Cells(urenSOD, 50))
"Lo anterior es para especificar el rango así como el libro y la hoja donde vamos a pegar los registros, donde urenSOD contiene el valor de la primera fila que no contenga información."

rango2.Insert shift:=xlShiftDown, copyOrigin:=rango1.Copy
"La ultima instrucción es para insertar la informacion del rango 1 en el rango 2, el Shift:=xlShiftDown establece acia donde se insertaran los registros en este caso nos interesa que sea hacia abajo, y el copyOrigin:=rango1.Copy especifica el origen de la copia que en este caso es el rango 1"

la nomenclatura de Cells es la siguiente

Cells(num_ren , num_col)
en tu caso num_col será igual a tres puesto que tus registros solo tienen 3 columnas

Despues de hacer las copiar el rango, puedes borar el rango al agregar la palabra delete, por ejem

rango1.delete

o si te quieres evitar lo anterior en ves de poner:

rango2.Insert shift:=xlShiftDown, copyOrigin:=rango1.Copy

tendrás que poner

rango2.Insert shift:=xlShiftDown, copyOrigin:=rango1.Cut

en este caso cortaras el rango, no lo copiaras, pero tiene el mismo efecto, pues podras pegarlo donde quieras, estos codigos los puedes poner en una sola macro o en funciones a las cuales llames dentro de la macro principal.

Atte: Edgardo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar