Macro para autorrellenar datos Autofill





Algo que hace útil a las hojas de cálculo de Excel es poder autorellenar datos y no tener que estar ingresando datos uno por uno, por ejemplo si se quiere copiar una celda 100 veces se puedo copiar directamente y no escribir 100 veces el valor de la celda deseada; si se requieren escribir en la filas los días de un mes en particular, se escribe el primer día y se autorellenan los siguientes; si no estuvieran estás funciones sería muy engorroso el ingreso de datos, Excel entre otras formas de relleno o AutoFill permite copiar, rellenar días, meses, años, una serie de datos, etc.

Primero voy realizar una pequeña introducción teórica sobre los parámetros necesarios que deben ser ingresados en la macro para autorellenar o Autofill y luego realizar la explicación del ejemplo que se incorpora en esta presentación.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  

La sintaxis es la siguiente para usar la función de autorrelleno es:

expresión.AutoFill.(Destination,Type)

donde:

Expresión: es la variable que representa un objeto Range
Destination: es la celda o celdas que se deben rellenar, se debe incluir el rango de origen, siendo un dato obligatorio
Type: su ingreso es opcional y determina el tipo de relleno.

En el cuadro que sigue se exponen los distintos tipos de relleno que se pueden usar, pero antes te recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


Nombre Valor Descripción
xlFillCopy       1 Copiar los valores y formatos desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillDays 5 Extender los nombres de los días de la semana del rango de origen en el rango de destino. Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillDefault 0 Excel determina los valores y formatos utilizados para rellenar el rango de destino.
xlFillFormats 3 Copiar sólo los formatos desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillMonths 7 Extender los nombres de los meses del rango de origen en el rango de destino. Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillSeries 2 Extender los valores del rango de origen en el rango de destino como una serie (por ejemplo, '1, 2' se extiende como '3, 4, 5'). Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillValues 4 Copiar sólo los valores desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillWeekdays 6 Extender los nombres de los días laborables de la semana del rango de origen en el rango de destino. Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlFillYears 8 Extender los años del rango de origen en el rango de destino. Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlGrowthTrend 10 Extender los valores numéricos desde el rango de origen en el rango de destino, presuponiendo que las relaciones entre los números del rango de origen son multiplicativas (por ejemplo, '1, 2,' se extiende como '4, 8, 16', suponiendo que cada número es el resultado de multiplicar el número anterior por un valor determinado). Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.
xlLinearTrend 9 Extender los valores numéricos desde el rango de origen en el rango de destino, presuponiendo que las relaciones entre los números del rango de origen son aditivas (por ejemplo, '1, 2,' se extiende como '3, 4, 5', suponiendo que cada número es el resultado de sumar un valor determinado al número anterior). Los formatos se copian desde el rango de origen en el rango de destino, repitiéndolos si es necesario.

Al final existe un link del cual podrás descargar el ejemplo y adaptarlo a lo que requieras, el código se encuentra abierto y sin ningún tipo de restricción, seguidamente se explica que realiza cada código de autorrelleno de celdas o AutoFill y se muestra la codificación respectiva.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Código que se inserta en un módulo




Este código arma una fórmula que la copia desde la celda A3 a la celda A100. 

Sub autorellenocopy()
Range("A3").FormulaR1C1 = "=RC[2]&""""&RC[3]&""""&RC[4]&""""&RC[5]"
Range("A3").AutoFill Destination:=Range("A3:A100"), Type:=xlFill
End Sub


Este código rellena en el rango C3:C100 una serie de números.

Sub autorellenoserie()
Range("C3").AutoFill Destination:=Range("C3:C100"), Type:=xlFillSeries
End Sub


Este código rellena en el rango E3:E100 los días correlativos y siguientes de la fecha escrita en E3.

Sub autorellenodias()
Range("E3").AutoFill Destination:=Range("E3:E100"), Type:=xlFillDays
End Sub


Este código rellena en el rango G3:G100 los días hábiles de la semana partiendo de la fecha que está en G3.

Sub autorellenosemanas()
Range("G3").AutoFill Destination:=Range("G3:G100"), Type:=xlFillWeekdays
End Sub


Este código rellena en el rango I3:I100 los meses del año partiendo de la fecha que está en I3.

Sub autorellenomes()
Range("I3").AutoFill Destination:=Range("I3:I100"), Type:=xlFillMonths
End Sub


Este código rellena en el rango K3:K100 los años partiendo de la fecha que está en K3.

Sub autorellenoyears()
Range("K3").AutoFill Destination:=Range("K3:K100"), Type:=xlFillYears
End Sub


Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends