Não consigo encontrar o erro de compilação "Loop sem Do", no penúltimo Loop, isto é, no meu segundo Do While. Alguém pode me ajudar?
Meu nível é básico/mediano no vba, não estou conseguindo ver o que está errado.
Sub Separador()
Application.ScreenUpdating = False
Dim Ws1 As Worksheet
Dim Ws2 As Worksheet
Dim EndX As String
Dim Status As String
Dim Mat As String
Dim Vol As Integer
Dim DesC As String
Dim Niv As String
EndX = ""
Status = ""
Mat = ""
Vol = 0
DesC = ""
Niv = ""
Set Ws1 = Sheets("Reposição")
Set Ws2 = Sheets("Base")
Ws1.Select
'---As referencia de linhas e colunas deve ser alterada após o teste
Ws1.Range("S6").Select
EndX = ActiveCell.Value
Mat = ActiveCell.Offset(0, 1).Value
Vol = ActiveCell.Offset(-0, -1).Value
DesC = Left(ActiveCell.Offset(0, 2), 8)
Niv = Mid(ActiveCell.Value, 8, 1)
Do While ActiveCell.Value <> ""
Ws2.Select
Ws2.Range("A2").Select
Do While ActiveCell.Value <> ""
If ActiveCell.Value = EndX Then
Status = ActiveCell.Offset(0, 1).Value
Do While Status = "Alto"
Ws1.Select
Ws1.Range("D200").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = EndX
ActiveCell.Offset(0, -1).Value = DesC
ActiveCell.Offset(0, -2).Value = Mat
ActiveCell.Offset(0, 1).Value = Vol
Loop
Do While Status = "Baixo"
Ws1.Select
Ws1.Range("I200").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = EndX
ActiveCell.Offset(0, -1).Value = DesC
ActiveCell.Offset(0, -2).Value = Mat
ActiveCell.Offset(0, 1).Value = Vol
Loop
Else
If Niv = "A" Or Niv = "B" Then
Ws1.Select
Ws1.Range("I200").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = EndX
ActiveCell.Offset(0, -1).Value = DesC
ActiveCell.Offset(0, -2).Value = Mat
ActiveCell.Offset(0, 1).Value = Vol
Else
Ws1.Select
Ws1.Range("D200").End(xlUp).Offset(1, 0).Select
ActiveCell.Value = EndX
ActiveCell.Offset(0, -1).Value = DesC
ActiveCell.Offset(0, -2).Value = Mat
ActiveCell.Offset(0, 1).Value = Vol
End If
Loop
Ws1.Select
'--As referencia de linhas e colunas deve ser alterada após o teste
Ws1.Range("S6").Select
ActiveCell.Offset(1, 0).Select
EndX = ActiveCell.Value
Mat = ActiveCell.Offset(0, 1).Value
Vol = ActiveCell.Offset(-0, -1).Value
DesC = ActiveCell.Offset(0, 2).Value
Loop
Application.ScreenUpdating = True
End Sub
Postado : 22/10/2022 6:58 pm