Inicio > Microsoft Excel > elsamatilde > copiar y pegar con un solo click????

copiar y pegar con un solo click????

Experto:
Usuario:
Fecha: 05/06/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
03/06/2008
telopongo, usuario preguntando en Microsoft Excel
Usuario
buenos dias gente , espero q me ayuden con mi pequeño problema y es el siguiente:
Tengo un factura en la "hoja 1" y una lista de producto en la "hoja 2" (mas o menos alrededor de 200 productos), lo que quiero hacer es buscar el producto (manualmente) y una vez encontrado clickear sobre el mismo y que se pege en la factura , asi  con cada producto.
Espero haberme expresado bien y muchas gracias,salu2=)
03/06/2008
telopongo, experto respondiendo en Microsoft Excel
Experto
Hola:
Entrá al Editor de macros (con Alt y F11 juntas), seleccioná con doble clic el objeto HOJA que corresponda a tu hoja de productos, y en la ventana escribí esta rutina:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Hoja1").Range("B5") = Target.Value
End Sub

Ajustá el nombre de la hoja y la celda donde debe mostrarse el producto. A esto podrías agregarle una línea, antes del End Sub,  que te lleve nuevamente a la hoja1:
Sheets("Hoja1").select

Saludos
Elsa

Tus mejores opciones en manuales Excel desde:
http://es.geocities.com/lacibelesdepunilla/manuales
04/06/2008
telopongo, usuario preguntando en Microsoft Excel
Usuario
Muchas gracias, Elsa por responder rapidamente mi pregunta pero el problema que tengo ahora es que no logro copiar el producto que elijo porque????( no entiendo mucho del lenguaje de Visual Basic).
espero tu respuesta,Maxi=)
P.D: si logro sacarlo te aviso.salu2
04/06/2008
telopongo, experto respondiendo en Microsoft Excel
Experto
Seguramente la rutina no está copiada en el lugar adecuado.
Desde el editor, verás a tu izquierda un panel con los objetos del proyecto: Hoja1, Hoja2 (con los nombres que tienen tus hojas), ThisWorkbook (o EsteLibro), etc.
Seleccioná con doble clic la hoja donde tenés tus productos y allí copiá la rutina.
Lo ideal sería que controle un rango para que no se ejecute al seleccionar cualquier celda de esta hoja. Entonces te debiera quedar así, supondré que los productos están en col B
Private Sub.....
if target.column = 2 then
Sheets(.....
end if
End sub

PD) también verificá que estén las macros habilitadas

Saludos. Si no lo resolvés podés pedirme el ejemplo a mi correo
Elsa

http://es.geocities.com/lacibelesdepunilla
04/06/2008
telopongo, usuario preguntando en Microsoft Excel
Usuario
ya lo pude hacer ,sos una experta en esto, pero me falta una cosa y es la siguiente: q si elijo otro producto este se copie en otra celda y q no me borre la q estaba antes  la otra asi sucesivamente hasta q se termine la factura.
Ej: clickeo un producto y me aparece en una celda (esto ya lo pude hacer),(lo que no se hacer es esto)cliqueo otro producto y me aparece debajo de la celda del otro asi hasta el final de la factura
Se agradece mucho tu ayuda y espero tu respuesta.=)
04/06/2008
telopongo, experto respondiendo en Microsoft Excel
Experto
Ahhhh...., qué forma tan particular de llenar una factura....
Podemos incluir una instrucción que evalúe cuál es la última fila con datos (en la col de productos de la hoja1) para ir colocando a continuación.
Pero seguramente tendrás 1 posición inicial, por ej. que la lista de productos se coloquen a partir de la fila 9. Entonces tu rutina queda así:
Private Sub.....
if target.column = 2 then
fila = sheets("Hoja1").Range("A65536").End(xlup).Row + 1
if fila < 9 then fila = 9
Sheets("Hoja1").cells(fila,1) = Target.value
end if
End sub

La macro evalúa tu selección en la col B y copia ese valor en la col A de la hoja 1 a partir de la fila 9 . Esa fila no debe tener otros datos más abajo del rango donde se ubicarán los productos (ni totales, ni textos, ....)

Creo que esto resuelve tu problema, pero si tus hojas tienen un diseño que no se ajusta a esto, deberás enviarmela a mi correo

Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla
05/06/2008
telopongo, usuario preguntando en Microsoft Excel
Usuario
bueno elsa ,hice lo q dijiste  pero no funciona nada (lo intente varias veces) y no me salto ningun error ni nada.
Asi quedo la macro q hice: (dentro de la hoja de producto)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) 
if target.column = 2 then 
fila = sheets("factura").Range("A65536").End(xlup).Row + 1
if fila < 19 then fila = 19
Sheets("factura").cells(fila,1) = Target.value 
Sheets("Hoja1").select
end if
End sub
P.D: Lo unico que anda es hasta if target.column = 2 then q me anda al pelo y el Sheets("Hoja1").select
Y gracias por tu ayuda.
05/06/2008
telopongo, experto respondiendo en Microsoft Excel
Experto
Bueno, estos son tus 2 problemas:
1- En mi 2da respuesta te indiqué que suponía para el ejemplo que la lista de productos está en col B, dejando esta instrucción:
if target.column = 2
Como tus datos están en A solo necesitas cambiar el valor a 1.
2-En mi última respuesta te indiqué que en Hoja 1 la col A no debiera tener otros datos más abajo (veo que aparece un texto de Industria.....).
Ya ajusté la rutina sobre tu libro y esto quedó:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'como tus datos en hoja productos están en col A se controla la col 1
If Target.Column = 1 Then    
'como la lista de prod solo puede ir hasta fila 50 (y debajo hay otros datos) busca la fila libre desde la 50 hacia arriba con tope en 19
fila = Sheets("factura").Range("A50").End(xlUp).Row + 1
If fila < 19 Then fila = 19
Sheets("factura").Cells(fila, 1) = Target.Value
'si no querés volver a la hoja Factura borrá la línea siguiente
Sheets("factura").Select
End If
End Sub

Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla/manuales
05/06/2008
telopongo, usuario preguntando en Microsoft Excel
Usuario
te agradesco la ayuda que me diste ,me sirvio mucho. Sos una genia en el excel, te felicito y segui asi (10 puntos lo tuyo)
P.D: Nos vemos hasta las proxima pregunta =)
Maxi=)
Enlaces patrocinados