Inicio > Microsoft Excel > elsamatilde > Guardar data a otra hoja mediante Command Button

Guardar data a otra hoja mediante Command Button

Experto:
Usuario:
Fecha: 16/05/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
14/05/2008
lessner666, usuario preguntando en Microsoft Excel
Usuario
Hola Elsa.
Puse en practica tu codigo para trasladar valores de una celda de una hoja a otra mediante un Command Button, ahora mi pregunta es la siguiente: Tengo una Orden de Compra hecha en excel, que contiene No de Orden, Fecha de Compra, terminos de compra, etc como parte del encabezado, ahora en el cuerpo de la oden tengo Item, Descripcion, Cantidad, Precio Unitario y Total, pues en esas filas voy ingresando datos, ahora la pregunta es la siguiente: Como hacer para que las filas siguientes me graben a la otra hoja en excel o una forma de incrementar automaticamente las celdas mediante la variable filalibre
Private Sub salvar_Click()
filalibre = Sheets("DATA").Range("A65536").End(xlUp).Row + 1


Linea1
Range("A16").Select
Do While ActiveCell <> Empty

ActiveCell.Offset(1, 0).Select

Sheets("DATA").Cells(filalibre, 1) = ActiveSheet.Range("H4")
Sheets("DATA").Cells(filalibre, 2) = ActiveSheet.Range("H5")
Sheets("DATA").Cells(filalibre, 3) = ActiveSheet.Range("H7")
Sheets("DATA").Cells(filalibre, 4) = ActiveSheet.Range("H8")
Sheets("DATA").Cells(filalibre, 5) = ActiveSheet.Range("A11")
Sheets("DATA").Cells(filalibre, 6) = ActiveSheet.Range("A16")
Sheets("DATA").Cells(filalibre, 7) = ActiveSheet.Range("B16") --> que pase a B17,B18...
Sheets("DATA").Cells(filalibre, 8) = ActiveSheet.Range("D16")
Sheets("DATA").Cells(filalibre, 9) = ActiveSheet.Range("E16")
Sheets("DATA").Cells(filalibre, 10) = ActiveSheet.Range("F16")
Sheets("DATA").Cells(filalibre, 11) = ActiveSheet.Range("H16")

filalibre = filalibre + 1
Loop
End Sub
Saludos desde Honduras y gracias por compartir tu conocimiento
Atte. Lessner
14/05/2008
lessner666, experto respondiendo en Microsoft Excel
Experto
Hola:
La idea es que primero pases todos los datos fijos (encabezados) y luego coloques los dtos de cada registro o item a partir de la celda activa (col A) y moviéndote con Offset hasta la col H.
Entonces sería algo así:
Private Sub salvar_Click()
filalibre = Sheets("DATA").Range("A65536").End(xlUp).Row + 1
Range("A16").Select
Do While ActiveCell <> Empty
'encabezados
Sheets("DATA").Cells(filalibre, 1) = ActiveSheet.Range("H4")
Sheets("DATA").Cells(filalibre, 2) = ActiveSheet.Range("H5")
Sheets("DATA").Cells(filalibre, 3) = ActiveSheet.Range("H7")
Sheets("DATA").Cells(filalibre, 4) = ActiveSheet.Range("H8")
Sheets("DATA").Cells(filalibre, 5) = ActiveSheet.Range("A11")
'recorrer lista de items
Sheets("DATA").Cells(filalibre, 6) = ActiveSheet.Activecell   'col A
Sheets("DATA").Cells(filalibre, 7) = ActiveSheet.activecell.offset(0,1)  'col B
Sheets("DATA").Cells(filalibre, 8) = ActiveSheet.activecell.offset(0,3)  'col D
Sheets("DATA").Cells(filalibre, 9) = ActiveSheet.activecell.offset(0,4)  'col E
Sheets("DATA").Cells(filalibre, 10) = ActiveSheet.activecell.offset(0,5)  'col F
Sheets("DATA").Cells(filalibre, 11) = ActiveSheet.activecell.offset(0,7)  'col H
activecell.offset(1,0).select  'pasa al item siguiente
filalibre = filalibre + 1
Loop
End Sub

Saludos
Elsa

http://galeon.com/aplicaexcel
15/05/2008
lessner666, usuario preguntando en Microsoft Excel
Usuario
Elsa muchas gracias por tomarte tu tiempo en responder, fiajate q hice tu sugerencia en cuanto al codigo se refiere, pero al ejecutar me da un error al aplicar (activesheet.activecell) el mensaje q sale es: "el objeto no soporta esta propiedad o metodo" 'runtime error 438', no se si es problema en las propiedades del Boton o sintaxis.
Gracias x todo
Atte. Lessner...
15/05/2008
lessner666, experto respondiendo en Microsoft Excel
Experto
Lo dejé porque así estaba, pero sacale el activesheet y probalo nuevamente. Asegurate de estar en la hoja Orden de compra cuando lo ejecutes.

Saludos
Elsa
16/05/2008
lessner666, usuario preguntando en Microsoft Excel
Usuario
Muchas gracias Elsa, lo deje de la siguiente forma:
' Graba Detalles
Sheets("DATA").Cells(filalibre, 6) = ActiveCell.Offset
Sheets("DATA").Cells(filalibre, 7) = ActiveCell.Offset(0, 1)
Sheets("DATA").Cells(filalibre, 8) = ActiveCell.Offset(0, 3)
Sheets("DATA").Cells(filalibre, 9) = ActiveCell.Offset(0, 4)
Sheets("DATA").Cells(filalibre, 10) = ActiveCell.Offset(0, 5)
Sheets("DATA").Cells(filalibre, 11) = ActiveCell.Offset(0, 7)
Te agradezco por tu ayuda, me orientastes en gran manera.
Saludos.
Enlaces patrocinados