6 febrero, 2025

REPETIR CONTENIDO DE UNA CELDA TANTAS VECES COMO HAYAMOS INDICADO

Hola a todos!

Hoy voy a publicar un post en VBA (con tanto TypeScript ya era hora!!). El trabajo de hoy será muy simple, os dejará en la imagen un resumen de lo que voy a hacer:

Efectivamente, lo que necesitamos es repetir el contenido de la celda «A2» tantas veces como se indique en la celda «B2» y con el resultado de la columna «E».

Para realizar esta tarea he programado el siguiente código:

Option Explicit
Sub REPETIR_()
    'Definimos variables
    Dim i           As Long, n As Long, j As Long
    Dim Fin         As Long, Cont As Long
    Dim MiString    As String, sCadena As String
    Dim miArray     As Variant
    'Con la hoja1 contamos registros
    With Sheets("Hoja1")
        Fin = Application.CountA(.Range("A:A"))
        'Añadimos título a la hoja 2
        Sheets("Hoja2").Cells(1, 1) = "RESULTADO"
        'Iniciamos bucle y recorremos hoja1
        For i = 2 To Fin
            'Borramos cadenas de texto creadas
            MiString = vbNullString
            'Iniciamos bucle por tantas veces como
            'número indiquemos en la columna B
            For n = 1 To .Cells(i, 2)
                'Componemos string
                MiString = MiString & "*" & .Cells(i, 1)
            Next n
            'eliminamos primer caracter
            sCadena = Mid(MiString, 2, Len(MiString))
            'dividimos la cadena según delimitador
            miArray = Split(Trim(sCadena), "*")
            Sheets("Hoja2").Select
            'Pasamos la información desde el array a la hoja2
            For j = 0 To UBound(miArray)
                Cont = Application.CountA(Sheets("Hoja2").Range("A:A")) + 1
                Sheets(2).Cells(Cont, 1) = miArray(j)
            Next j
        Next i
    End With
End Sub

Y para nuestro ejemplo utilizaremos unas cuantas celdas:

Y una vez ejecutada la macro, este es el resultado:

Se trata de un código sencillo, en el que generamos una string con las repeticiones que pasaremos a un array y luego a la hoja a través de un loop.

Este tipo de trabajos se pueden realizar de formas diversas y con herramientas diversas. Este es el método que yo suelo usar y que espero que sea de mucha utilidad.

Descarga el archivo 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 «REPETIR CONTENIDO DE UNA CELDA TANTAS VECES COMO HAYAMOS INDICADO»

  1. Hola,
    Esta muy buena tu macro, pero queria consultarte que modificacion debo realizarle a esta macro para que repita la informacion contenida no en una columna sino en tres columna a la vez.
    Es el mismo ejemplo solo que antes de la columna que indica las repeticiones de cada fila, se deben colocar dos columnas mas con informacion.

    Si me puedes ayudar te lo agradeceria mucho. Saludos,

    1. Una solución provisional es que en la primer columna concatenes el contenido de las otras columnas con un delimitados, ejemplo una | y luego generas la macro y el resultado lo pasas de nuevo a columnas.

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