Hola a todos:
Parece que este fin de semana estoy bastante activo con las publicaciones 🙂
Como hoy es domingo el post va a ser bastante breve y además dentro de un rato me voy a comer unas castañas que estoy haciendo al horno, qué ricas van a estar con el frío que hace!.
El post de hoy va a tratar sobre un tema muy sencillo y que ya he utilizado en algunos de mis post a la hora de consolidar información y pegar o agrupar rangos. Se trata de copiar varias veces un rango que previamente hemos seleccionado,
El post de hoy únicamente busca mostrar de forma clara su funcionamiento, no voy a descubrir nada nuevo internet está lleno de ejemplos, pero para el post de hoy os dejaré el mío:
Vamos a trabajar con este ejemplo, un rango determinado: «A4:D6», generado por números aleatorios del 1 al 10.
La idea es generar n veces este rango en la columna I, copiando y pegando la información del rango inicial y como tiene la función Aleatorio.entre() cada vez que copiemos y peguemos se generarán nuevos números.
Pues bien, el código a utilizar es el siguiente:
Option Explicit
Sub CopiarRango()
'Declaramos variables
Dim rng As Range, i As Long, fin As Long
With Sheets("Hoja1")
'Seleccionamos rango a repetir
Set rng = Selection
'Ejecutamos bucle y copiamos rango n veces
Do Until i = .Cells(2, 14)
fin = .Range("I" & .Rows.Count).End(xlUp).Row + 2
rng.Copy
'indicamos tipo de pegado, valores, fórmulas, todo, etc
.Range("I" & fin).PasteSpecial xlPasteAll 'xlPasteValues
fin = fin + 1
i = i + 1
Loop
End With
End Sub
Aunque ya lo tengo bien comentado, lo importante es declarar la variable y crear el rango que vamos a utilizar, en nuestro caso la selección que hagamos, pero puede ser un rango tipo:
Set rng = range("A4:D6")
Definiremos la variable que nos indique la última fila con datos y mediante un loop copiaremos y pegaremos tantas veces como indiquemos en la celda N2, por ejemplo 5 veces:
Y es así de sencillo. Lo podéis programar con otro tipo de Loop, o incluso podéis indicar el tipo de pegar, en este ejemplo os he dejado comentado el pegado de valores.
Y esto es todo, espero que os sea de utilidad. Disfrutad de lo que queda de domingo!.
Descarga el archivo de ejemplo pulsando en:
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies
Genial profesor, siempre es de mucho agradecer sus Post
GenialExcelente; para el caso siguiente:
para evitar una tarea repetitiva cada semana; en el caso de resumir información de la nomina, cuyo formato del reporte es asi:
depto: Mecanica
empleado:
jose n
jose n
jose n
depto: Mecanica
empleado:
jose n
jose n
jose n
jose n
jose n
jose n
jose n
etc.; bueno con la funcion encontar se separa el nombre del departamento y lo que se requiere es que el nombre se copie y peque o autorellene a la izquierda del nombre de los empleados, dado que son aproximadamente 10 departamentos y varía la cantidad de empleados cada semana, por ello el uso del bucle es lo que busco, pero no puedo elaborar el codigo. agradeceré de antemano su ayuda.