¿Cómo utilizar el ciclo Do Loop?

Estoy construyendo un reporte y estoy usando una macro en vba para que me extraiga los registros de una hoja de excel y me las pegue en otra hoja. El problema que tengo es que no sé como hacer el salto de renglón para seguir con el "loop" ya que me vuelve a hacer la validación en el mismo renglón en el que inició. También lo que pasa es que cuando termina de validar el primer renglón, borra los registros originales y lo deja en blanco. No sé si es correcto usar este ciclo para este ejercicio o sería mejor sustituirlo con un "For"

Espero puedan ayudarme, adjunto el código que estoy usando.

Dim clave As String
Dim celda As Range
Dim inicio As Range
Dim filarepor As Range

Set inicio = Worksheets("BD").Rows(7)
Set celda = inicio.Columns(5)
Set filarepor = Worksheets("Reporte").Rows(12)

If ComboBox1.value = celda Then
Do While celda = ComboBox1.value
filarepor.Offset(-4, 0).Columns(2) = celda.Offset(0, 1)
filarepor.Columns(2) = celda.Offset(0, 2)
filarepor.Columns(4) = celda.Offset(0, -3)
filarepor.Columns(12) = celda.Offset(0, 25)
If celda.Offset(0, 25) = "10%" Or celda.Offset(0, 25) = "25%" Or celda.Offset(0, 25) = "35%" _
Or celda.Offset(0, 25) = "50%" Then
filarepor.Columns(11) = "PENDIENTE INFORMACIÓN USUARIO"
ElseIf celda.Offset(0, 25) = "20%" Or celda.Offset(0, 25) = "40%" Then
filarepor.Columns(11) = "EN ANÁLISIS ORGANIZACIÓN"
ElseIf celda.Offset(0, 25) = "85%" Or celda.Offset(0, 25) = "90%" Then
filarepor.Columns(11) = "PENDIENTE COMITÉS"
ElseIf celda.Offset(0, 25) = "100%" Then
filarepor.Columns(11) = "CONCLUIDO"
filarepor.Columns(8) = Application.WorksheetFunction.CountIfs(Range("Recomendación!A:A"), ComboBox1.value, Range("Recomendación!J:J"), "interno")
filarepor.Columns(9) = Application.WorksheetFunction.CountIfs(Range("Recomendación!A:A"), ComboBox1.value, Range("Recomendación!J:J"), "externo")
filarepor.Columns(10) = Application.WorksheetFunction.Sum(filarepor.Columns(9), filarepor.Columns(8))
End If
filarepor.Columns(3) = celda.Offset(0, -4)
clave = filarepor.Columns(3).value
filarepor.Columns(5) = Application.WorksheetFunction.CountIfs(Range("BD!A:A"), clave, Range("BD!J:J"), "interno")
filarepor.Columns(6) = Application.WorksheetFunction.CountIfs(Range("BD!A:A"), clave, Range("BD!J:J"), "externo")
filarepor.Columns(7) = Application.WorksheetFunction.Sum(filarepor.Columns(6), filarepor.Columns(5))
MsgBox "listo"
inicio = inicio.Offset(1, 0)
'celda = celda.Offset(1, 0) ------- he probado habilitando o desabilitando el comentario pero lo que pasa es que no se borra el texto de esa celda
filarepor = filarepor.Offset(1, 0)
Loop
Else
MsgBox "error"
End If

End Sub

Añade tu respuesta

Haz clic para o