Jump to content
xboxfile

Doble clic en celda para copiar y pegar

Recommended Posts

Hola que tal, un saludo a todos.

Lo que intento es que al dar doble clic en cualquier celda de la columna E, a partir de E5, se copien y peguen los datos del rango de su misma fila desde las columnas A hasta F en la primera fila libre de la hoja 2.

Yo lo he intentado pero no consigo que coja los datos de las celdas adyacentes de su misma fila. He seguido ejemplos de varias webs que lo explican pero normalmente solo se limitan a que salga el típico MsgBox de prueba correcta.

En todo caso, dejo ejemplo por si alguien me puede ayudar. Gracias de antemano y un saludo.

Ejemplo.xlsm

Share this post


Link to post
Share on other sites

Hola. Muchas gracias por responder tan rápido. Funciona perfecto.

Para que yo aprenda, y de paso cualquiera que entre, lo que a mi no me salía era la línea [Range(ActiveCell.Offset(0, -4), ActiveCell.Offset(0, 1)).Select] que es la que se encar de seleccionar las celdas adyacentes que necesitaba. Luego desde el código de la hoja has hecho una llamada a un módulo que es el que verifica la última fila en blanco de la hoja 2. Supongo que es otra forma de hacerlo aparte de Row.

Por mi el tema cerrado y felicidades por la nueva Web, es más vistosa y menos cargada que la anterior.

Share this post


Link to post
Share on other sites

Hola xboxfile

Correcto lo has definido bien, Te lo he hecho de esta manera porque pedias que desde la celda activa seleccionara desde la columna A hasta la F solamente, por eso he aplicado la seleccion de esa forma, de la otra te seleccionaría  toda una fila entera.

Me alegro que te guste.

Saludos.

Share this post


Link to post
Share on other sites
Hace 2 minutos , Gerson Pineda dijo:

Hola @xboxfile (y @eja-n1 )

Veo que el tema fue resuelto, pero aquí otro método, la diferencia es que este, va copiar siempre y cuando

  1. - La celda no este vacía
  2. - A partir de la fila 6
  3. - Podrá dar doble click dentro de las columnas A y F
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.ScreenUpdating = False
With Target
    If .Column > 6 Or .Value = "" Or .Row < 6 Then Exit Sub
    vuf = Hoja2.Range("A" & Rows.Count).End(xlUp).Row + 1
    Range(Cells(.Row, "A"), Cells(.Row, "F")).Copy Hoja2.Cells(vuf, "A")
    Cancel = True
End With
Application.ScreenUpdating = True
End Sub
                                             
Rem PARA PEGAR COMO VALORES
Rem Range(Cells(.Row, "A"), Cells(.Row, "F")).Copy
Rem Hoja2.Cells(vuf, "A").PasteSpecial xlPasteValues
Rem Application.CutCopyMode = False

Prueba y comentas si funciona

 

Saludos a ambos

 

Share this post


Link to post
Share on other sites

Hola Gerson Pineda, muchas gracias. Tu método es más completo, por lo que veo, porque permite dar el doble clic desde cualquier celda desde A hasta F. Cuando lo pruebe comento, de todas formas el proyecto global es más extenso, por lo que me servirá más adelante.

 

Gracias, digo algo

Share this post


Link to post
Share on other sites

Hola Gerson Pineda.

He probado tu opción y funciona a la perfección, mucho más simplificada que la mia. Aunque todos los caminos llegan a Roma siempre gusta ir por el camino más corto. Tu opción me gusta más y con estos retoques siempre se va aprendiendo más.

Saludos

 

Share this post


Link to post
Share on other sites

Hola de nuevo.

Gerson, he probado tu código, hasta el End Sub pero si incluyo la parte de "pegar como valores", quitándoles los Rem, me salta un error. Supongo que no lo estoy poniendo en el sitio correcto.

¿Me puedes ayudar?

Gracias

Share this post


Link to post
Share on other sites
En ‎02‎/‎04‎/‎2016 at 12:12 , eja-n1 dijo:

Hola Gerson Pineda.

He probado tu opción y funciona a la perfección, mucho más simplificada que la mia. Aunque todos los caminos llegan a Roma siempre gusta ir por el camino más corto. Tu opción me gusta más y con estos retoques siempre se va aprendiendo más.

Saludos

 

Que bueno que te guste, recuerda que Target se puede controlar desde el mismo evento, no hay porque utilizar "activecell" porque en el evento ya esta definido como Range, si te fijas bien, controlo bajo que fila, columna y valor de la celda para que el evento se dispare, de lo contrario sale del mismo

 

Hace 18 horas, xboxfile dijo:

Supongo que no lo estoy poniendo en el sitio correcto.

¿Me puedes ayudar?

Era solo como muestra para que supieras que se pueden copiar solo como valores, revisa el archivo que adapto Eja y nos comentas

 

Saludos

Share this post


Link to post
Share on other sites

Hola. Gracias a los dos, de verdad. No he podido probar el enlace está roto.

Probaré más tarde, no sea que la web tenga algún problemilla con lo de la modificación.

Saludos

Share this post


Link to post
Share on other sites

Hola, perdonar pero he estado fuera por motivos laborales.

Ya he probado el nuevo archivo, este lo he bajado sin problemas.

He incluido este código porque es más "elegante" el poderle dar doble clic a cualquier celda de la fila.

Además, hay otro detalle de que he aprendido, que es a buscar la última fila en blanco sin seleccionar la hoja afectada, y encima, con una variable.

Sin más, muchísimas gracias a los dos por la ayuda prestada.

TEMA SOLUCIONADO

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png