¿Como repetir filas según valor de una celda?

Tengo dos hojas una con el nombre de Resultado y la otra con el nombre de Tabla, en la hoja Tabla tengo lo siguiente;

A1                     B2

Nombre      Cantidad

Pedro                3

Juan                  2

Luis                   1

En la hoja de Resultado es donde se va a repetir las filas en la columna A, la función que utilice fue la siguiente.

=+SI(FILA()-2<Tabla!$B2;Tabla!$A2;"")

Funciona bien para el primer Nombre es decir Pedro, se repite 3 veces.

Mi duda es como hago para que se repitan los otros dos Nombres (Juan, Luis) sin afectar al Primer nombre, el resultado final debería ser el siguiente:

Hoja Resultado

A

Nombre

Pedro

Pedro

Pedro

Juan

Juan

Luis

1 respuesta

Respuesta
1

Con esta macro obtendrás el resultado

Sub nombres()
Sheets("Tabla").Range("A2").Select
m = 2
Do
j = ActiveCell.Offset(0, 1).Value
For i = 1 To j
Sheets("Resultado").Range("A" & m) = ActiveCell.Value
m = m + 1
Next
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = 0
End Sub

Gracias por tu respuesta Victor Rodriguez

Existe la posibilidad que sea en una fórmula, ya  que cuando comparto el libro  las macros no funcionan

Prueba este

Sub nombres()
Application.DisplayAlerts = False
If ActiveWorkbook.MultiUserEditing Then
ActiveWorkbook.ExclusiveAccess
Sheets("Tabla").Range("A2").Select
m = 2
Do
j = ActiveCell.Offset(0, 1).Value
For i = 1 To j
Sheets("Resultado").Range("A" & m) = ActiveCell.Value
m = m + 1
Next
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = 0
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
Else
Sheets("Tabla").Range("A2").Select
m = 2
Do
j = ActiveCell.Offset(0, 1).Value
For i = 1 To j
Sheets("Resultado").Range("A" & m) = ActiveCell.Value
m = m + 1
Next
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = 0
End If
Application. DisplayAlerts = True
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas