6 febrero, 2025

COPIAR VARIAS VECES UN RANGO SELECCIONADO CON VBA

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.

Donate Button with Credit Cards

¡¡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

Comparte este post

2 comentarios en «COPIAR VARIAS VECES UN RANGO SELECCIONADO CON VBA»

  1. 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.

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies