Buenas tardes agradeceria mucho me puedieran ayudar pues tengo el siguiente problema y creo que debe ser bastante facil solucionarlo, pero por que soy muy neofito en esto de de Vba no se como hacerlo.
Tengo un libro , del cual la hoja1 toma unos datos y los quiero llevar a hoja2 en "D5", Lo que me gustaria que hiciera la macro es que cuando copie esos de la hoja 1 me los lleve a la hoja2 pero pero esta vez a "E5" y asi sucesivamente. creo que existe alguna formula que localiza la celda a la derecha de la celda "D5". y asi sucesivamente.
Gracias de antemano y espero haber sido lo bastante claro
Os dejo la macro que "he creado", por decir algo
Sub TECHO1()
' selecciona el rango
Sheets("DATOS_INTERMEDIOS").Select
Range("B16:B27").Select
' CAMBIAR_VALOR_CELDAS()
Selection.Value = Selection.Value
Selection.Font.ColorIndex = 5
' Selecciona y copia el rango y lo envia a recogidas en la celda limpia siguiente
Selection.Copy
Sheets("recogidas").Select
Range("D5").Select
ActiveSheet.Paste
' vuelve a pagina y da valores de nuevo
Sheets("DATOS_INTERMEDIOS").Select
Range("B16").Select
ActiveCell.FormulaR1C1 = "=R[-14]C"
Range("B16").Select
Selection.AutoFill Destination:=Range("B16:B27"), Type:=xlFillDefault
Range("B16:B27").Select
End Sub
Piensa cómo lo harías a mano utiliznado el teclado
Como casi todo en VBA (y en la vida), no hay una única manera de hacer esto
Por ejemplo, yo me colocaría en la celda A5 (o en la primera qeu tuviese datos) y luego pulsaría [Ctrl][flecha derecha] para moverme a la última celda con datos hacia la derecha. una vez ahí, la celda que esté a su derecha es la celda vacía siguiente.
esto funciona siempre que no haya interrupciones, celdas vacías, entre la A5 y la última celda (suponiendo que la A5 sea la primera celda con datos
bueno, y siempre que haya algo más aparte de la celda A5, para qeu no se me vaya al final de la hoja
¿cómo se haría en VBA?
pues por ejemplo así:
en vez de Range("D5").Select puedes poner lo siguiente
Range("A5").Select 'seleccionamos A5
Selection.End(xlToRight).Select 'nos movemos a la última celda hacia la derecha y la seleccionamos
ActiveCell.Offset(0, 1).Select ' ahora seleccionamos la que está a su derecha
Si te animas podrías ponerlo todo en una única instrucción:
Range("A5").End(xlToRight).Offset(0, 1).Select
------
Ya sé Excel, pero necesito más.