EXCEL COPIAR

Sub pase()
'x Elsamatilde
'guardamos en variable la primer fila libre de la hoja2
libre = Sheets("Hoja2").Range("A65536").End(xlUp).Row + 1
'guardamos en variable la última fila ocupada de hoja1
finfila = ActiveSheet.Range("A65536").End(xlUp).Row
'copiamos rango y pegamos 'solo valores'
ActiveSheet.Range("A2:C" & finfila).Copy
Sheets("Hoja2").Range("A" & libre).PasteSpecial Paste:=xlValues
'inhabilita el modo Copiar/Pegar
Application.CutCopyMode = False
'opcional borrar aquí mismo o colocar esta línea en otro botón
'ActiveSheet.Range("A2:C" & finfila) = ""
End Sub
Necesito que en lugar de copiarlo en otra hoja lo copie en otra celda dentro de la misma hoja

1 respuesta

Respuesta
1
Te ajusto 'mi' rutina:
La variable libre es la que indica la fila libre dentro de otra hoja
Para pasarlo a la misma hoja cambiá esta línea:
Sheets("Hoja2").Range("A" & libre).PasteSpecial Paste:=xlValues
Por esta otra donde en lugar de H50 colocarás la celda de destino
ActiveSheet.Range("H50").PasteSpecial Paste:=xlValues
PD) En mi sitio encontrarás otros ejemplos para referenciar celdas, además de descargas de ejemplos y manuales
Primeramente quiero darte las gracias por tomarte el tiempo para ayudarme con este problema.
Hice lo que me indicas y puse lo siguiente:
Sub pase()
'x Elsamatilde
'guardamos en variable la primer fila libre de la hoja2
libre = Sheets("Hoja2").Range("A65536").End(xlUp).Row + 1
'guardamos en variable la última fila ocupada de hoja1
finfila = ActiveSheet.Range("A65536").End(xlUp).Row
'copiamos rango y pegamos 'solo valores'
ActiveSheet.Range("L42").Copy
ActiveSheet.Range("L116").PasteSpecial Paste:=xlValues
'inhabilita el modo Copiar/Pegar
Application.CutCopyMode = False
'opcional borrar aquí mismo o colocar esta línea en otro botón
End Sub
Y si lo guarda en la celda L116 que es la quiero, pero no se como hacer para que guarde en la celda de abajo (la L117 y así sucesivamente) cada vez que le apreté al botón para guardar un nuevo dato.
De antemano muchísimas gracias por tu ayuda
Si la primer fila destino es 116 entonces la rutina debe quedarte así (no necesitas la Hoja2)
Sub pase()
'x Elsamatilde
'guardamos en variable la última fila ocupada de hoja1
finfila = ActiveSheet.Range("L65536").End(xlUp).Row +1
'copiamos rango y pegamos 'solo valores'
ActiveSheet.Range("L42").Copy
ActiveSheet.Range("L" & finfila).PasteSpecial Paste:=xlValues
'inhabilita el modo Copiar/Pegar
Application.CutCopyMode = False
'opcional borrar aquí mismo o colocar esta línea en otro botón
End Sub
PD) En mi página de macros encontrarás otras instrucciones de copiado. También te recomiendo mis manuales de macros
Sdos
Elsa
Podes seguir solicitando aclaraciones si algo no es como lo necesitas.
Pero te recuerdo que tenés 2 consultas abiertas ... no olvides finalizarlas
Sdos
Elsa
Disculpa, la hoja con la que me ayudaste quedo perfecta, muchas gracias, pero al quererlo alicar a otra hoja no resulta de la misma manera. Esto fue lo que hice:
Sub pase()
'x Elsamatilde
'guardamos en variable la última fila ocupada de hoja1
finfila = ActiveSheet.Range("H65536").End(xlUp).Row + 1
'copiamos rango y pegamos 'solo valores'
ActiveSheet.Range("K41").Copy
ActiveSheet.Range("H" & finfila).PasteSpecial Paste:=xlValues
'inhabilita el modo Copiar/Pegar
Application.CutCopyMode = False
'opcional borrar aquí mismo o colocar esta línea en otro botón
End Sub
La celda que se quiere copiar el la K41 que es donde esta la primera tabla, y el destino es la celda H106, el problemas que al darle click al botón la celda se copia en una celda vacía que esta por encima de la primera tabla y no en la H106. Me podrías ayudar con este problema.
Gracias
Para darte más información, la hoja con la que trabajo registra el flujo de caja de un negocio, esto lo hace por días, contiene un pequeño calendario que se actualiza cada vez que cambia el numero de mes, que al cambiar la fecha se actualiza el otro titulo con el mes encima de la tabla con los valores del dinero que esta por encima de la gráfica, en otra tabla se encuentra enumerado los 12 meses, que es donde se guardaría el valor que deseo copiar, estaba pensando si es posible que al darle click aL BOTÓN DE COPIAR este se guarde en la celda respectiva del mes y cambia de celda según el mes que aparece en el titulo.
Gracias por toda tu ayuda
De acuerdo a tu explicación anterior, donde mencionas que en otro libro no funciona porque se copia en otro destino y no en H106, se debe a que debés tener datos en la col H que afectan a la variable 'finfila'.
Esa variable la obtengo recorriendo la col H desde la última fila (65536) hasta encontrar un dato. Se supone que la primera vez será H106...
Ahora si todavía no hay datos en H106 y esa debiera ser la 1er fila destino, agregá la línea de comparación luego de la siguiente instrucción:
finfila = ActiveSheet.Range("H65536").End(xlUp).Row + 1
if finfila < 106 then finfila = 106
De este modo nos aseguramos que empiece en esa fila y a partir de allí hacia abajo.
PD) No me puse a analizar el otro tema. Mejor lo dejas en nueva consulta y si es posible adjuntando una imagen de tu hoja para darme idea de las ubicaciones.
Perfecto, realmente fue excelente, te lo agradezco demasiado me sacaste de un apuro, sobre el otro tema haré lo que me dices.
Gracias por todo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas