Copiar dato

Como puedo copiar un dato hasta la ultima fila no vacía sin utilizar rangos fijos como estos ("H1080:H1111")
Ya que la base de datos varia
Range("A1").Select
Selection.End(xlToRight).Select
Selection.End(xlDown).Select
Selection.AutoFill Destination:=Range("H1080:H1111")
Range("H1080:H1111").Select
Range("A1").Select

3 Respuestas

Respuesta
1
No entiendo bien tu pregunta:¿? ¿Hasta la última fila no vacía? ¿Te refieres hasta la última celda de la columna H que no esté escrita? ¿Vas a sobreescribir sobre ellos?. Por otro lado tu macro no la entiendo bien: primero se sitúa en la celda A1, luego en la última celda ala derecha (que intuyo debe ser H1, pues sino tu macro no funciona). Luego va a la última celda de abajo(la última celda de la columna H que tiene datos, y si tu macro te ha funcionado es que debía ser la celda H1080 como mínimo).
Luego coloca el valor de esta celda en el rango H1080:H1111.
Luego selecciona este rango(esta selección no tiene sentido, y por tanto esta sentencia se puede borrar). Y luego selecciona la celda A1.
El método autofill requiere que le digas obligatoriamente hasta qué celda quieres llegar. ¿Supongo qué es a eso a lo que te refieres cuando dices? ¿Última fila no vacía?. Pero no especificas de qué columna. Voy a suponer que es de la columna A. La siguiente macro mira cual es la última celda no vacía de la columna A, y retiene en una variable el n´º de fila de esta celda. Y luego rellena la columna H desde la última celda no vacía con el valor de ésta. Como crítica constructiva, te diré que cuando tienes el libro delante es muy fácil saber dónde está el problema, pero yo, desde aquí, te aseguro que me ha costado un buen rato, y además hay bastantes posibilidades de no haberte entendido bien, y de que me tengas que volver a repreguntar. No me importa que me preguntes las veces que necesites, de verdad, pero tienes que entender que no soy adivina. Bueno, esta es la macro que espero te ayude:
Sub UltimaCelda()
Dim UltimaFila
UltimaFila = Range("A1").End(xlDown).Row
Dim UltimaCelda As String
UltimaCelda = "H" & UltimaFila
Range("H1").End(xlDown).Select
Selection.AutoFill Destination:=Range(ActiveCell, UltimaCelda)
End Sub
Como siempre, si te ayudó, no olvides finalizar la pregunta.
Respuesta
1
Maxo te explicas fatal, además el código que me escribes no tiene ningún sentido (tiene ordenes contradictorias y solo selecciona celdas, no "copias" nada cuando se supone que eso jusamente eso es lo que quieres hacer) ¿Quieres copiar o sólo seleccionar? ¿Copiar algo y pegar en el resto? ¿Rellenar un rango entero según una muestra?
Pero bueno a ver si lo adivino:
Para referenciar un rango completo de celdas lo más sencillo es:
Selection. CurrentRegion
Esta instrucción puede reemplazar a rangos concretos (pej range("H108...)
Una vez seleccionado algo y copiado puedes rellenar, o pegar en esa región.
PD si te explicaras podría darte una solución concreta
Respuesta
Lamento informarte que no trabajo con VBA. Siento no poder ayudarte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas