Notifications
Clear all

msgbox repete ao final do FOR com IF

3 Posts
2 Usuários
0 Reactions
840 Visualizações
(@juliowd)
Posts: 149
Estimable Member
Topic starter
 

Oi. Não sei o que está havendo de errado.
Eu rodo um for para identificar se na coluna G, da linha 1 a 50 tem "o".
Se tem, ele faz uns procedimentos. Se não tem, eu quero que apareça 1 vez a msgbox. Só que da forma como está, aparece todas as 50 vezes.
Onde estou errando?

Sub recibo_semanal()

For i = 1 To 50

If Range("g" & i) = "o" Then

Plan3.Range("A6") = Range("F11")
Plan3.Range("B19") = Range("A" & i)
Plan3.Range("C19") = Range("C" & i)
Plan3.Range("D19") = Range("D" & i)
Plan3.Range("E19") = Range("E" & i)
Plan3.Range("F19") = Range("F" & i)

Else
MsgBox "gentileza definição da semana para impressão."
Range("f7").Select
End If
Next

Plan3.Select
Range("a1").Select
End Sub

Obrigado!

 
Postado : 04/09/2014 4:31 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Seria algo assim (dê ma olhada no final, não entendi o que vc quer selecionar):

Ah, e eu indentei o código (é uma das boas práticas de programaçao)

Sub recibo_semanal()

Application.ScreenUpdating = False 'Não atualiza a tela enquanto executa a macro, reduzindo o tempo de execução

Dim i As Long 'sempre declare variáveis, o código fica melhor e mais rápido
Dim j As Long 'se o j para contar casos onde não tem o "o", assim a msgbox vai para após o for next

j = 0
For i = 1 To 50
    If Range("g" & i) = "o" Then
        Plan3.Range("A6") = Range("F11")
        Plan3.Range("B19") = Range("A" & i)
        Plan3.Range("C19") = Range("C" & i)
        Plan3.Range("D19") = Range("D" & i)
        Plan3.Range("E19") = Range("E" & i)
        Plan3.Range("F19") = Range("F" & i)
    Else
        j = j + 1
    End If
Next

If j = 50 Then 'como são 50 repetições no laço for next, se j for 50 significa que não há nenhum "o" no intervalo
    MsgBox "gentileza definição da semana para impressão."
    Range("f7").Select
Else
    Plan3.Select
    Range("a1").Select
End If

Application.ScreenUpdating = True

End Sub

Abs

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 04/09/2014 5:23 pm
(@juliowd)
Posts: 149
Estimable Member
Topic starter
 

perfeito!!!
Era isso mesmo que eu queria!!
Obrigadasso gtsalikis!!!!

 
Postado : 05/09/2014 1:16 pm