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