AJUDA IF - THEN - ELSE
Olá pessoal,
Alguem poderia me ajudar em uma instrução abaixo,
a qual está ocorrendo erro sobre (If, then e Else)
Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
[ô]Limpa a combo
Worksheets([Ô]Menu[Ô]).combobox1.Clear
Worksheets([Ô]Menu[Ô]).combobox2.Clear
Worksheets([Ô]Menu[Ô]).combobox3.Clear
Worksheets([Ô]Menu[Ô]).combobox4.Clear
Worksheets([Ô]Menu[Ô]).combobox5.Clear
Worksheets([Ô]Menu[Ô]).combobox6.Clear
[ô](O ERRO OCORRE AQUI)
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> ActiveSheet.Name Then
If Plan1.combobox1.ListCount < 3 Then
[ô]QUAL SERIA A INSTRUÇÃO CORRETA PARA AS 6 COMBOBOX
Worksheets([Ô]Menu[Ô]).combobox1.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox2.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox3.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox4.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox5.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox6.AddItem sh.Name
[ô]------> INSTRUÇÃO INCORRETA.
End If
End If
End If
End If
Next sh
Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub
Alguem poderia me ajudar em uma instrução abaixo,
a qual está ocorrendo erro sobre (If, then e Else)
Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
[ô]Limpa a combo
Worksheets([Ô]Menu[Ô]).combobox1.Clear
Worksheets([Ô]Menu[Ô]).combobox2.Clear
Worksheets([Ô]Menu[Ô]).combobox3.Clear
Worksheets([Ô]Menu[Ô]).combobox4.Clear
Worksheets([Ô]Menu[Ô]).combobox5.Clear
Worksheets([Ô]Menu[Ô]).combobox6.Clear
[ô](O ERRO OCORRE AQUI)
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> ActiveSheet.Name Then
If Plan1.combobox1.ListCount < 3 Then
[ô]QUAL SERIA A INSTRUÇÃO CORRETA PARA AS 6 COMBOBOX
Worksheets([Ô]Menu[Ô]).combobox1.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox2.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox3.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox4.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox5.AddItem sh.Name
Else
Worksheets([Ô]Menu[Ô]).combobox6.AddItem sh.Name
[ô]------> INSTRUÇÃO INCORRETA.
End If
End If
End If
End If
Next sh
Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub
Robson voce tem que colocar varios if dentro do outro assim
If Plan1.combobox1.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).combobox1.AddItem sh.Name
Else
If Plan1.combobox1.ListCount = 3 Then
Worksheets([Ô]Menu[Ô]).combobox2.AddItem sh.Name
Else
If Plan1.combobox1.ListCount > 8 Then
Worksheets([Ô]Menu[Ô]).combobox3.AddItem sh.Name
Else [ô] -------------------------- Esse ELSE é o ultimo. Se todos os if nao satifazer ele entra no ultimo ELSE sem IF
Worksheets([Ô]Menu[Ô]).combobox4.AddItem sh.Name
....
end if
end if .....
If Plan1.combobox1.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).combobox1.AddItem sh.Name
Else
If Plan1.combobox1.ListCount = 3 Then
Worksheets([Ô]Menu[Ô]).combobox2.AddItem sh.Name
Else
If Plan1.combobox1.ListCount > 8 Then
Worksheets([Ô]Menu[Ô]).combobox3.AddItem sh.Name
Else [ô] -------------------------- Esse ELSE é o ultimo. Se todos os if nao satifazer ele entra no ultimo ELSE sem IF
Worksheets([Ô]Menu[Ô]).combobox4.AddItem sh.Name
....
end if
end if .....
Na verdade eu acredito que seria assim:
If <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
Else
<comandos>
Endif
Um só If sendo finalizado com um só Endif
. . .
Vou testar o exemplo de CLAUDIOLUCROCHA,
Após testo o segundo exemplo de MICHOSCHEME.
---- Mensagens de erro ---
NEXT sem For
--------------------------------
Ver abaixo:
P/S: Quanto END IF TENHO QUE COLOCAR NO FIM DA LINHA?
[ô]==================================================
Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
[ô]Limpa a combo
Worksheets([Ô]Menu[Ô]).ComboBox1.Clear
Worksheets([Ô]Menu[Ô]).ComboBox2.Clear
Worksheets([Ô]Menu[Ô]).ComboBox3.Clear
Worksheets([Ô]Menu[Ô]).ComboBox4.Clear
Worksheets([Ô]Menu[Ô]).ComboBox5.Clear
Worksheets([Ô]Menu[Ô]).ComboBox6.Clear
[ô]Lista todas as planilhas
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> ActiveSheet.Name Then
If Plan1.ComboBox1.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox1.AddItem sh.Name
Else
If Plan1.ComboBox2.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox2.AddItem sh.Name
Else
If Plan1.ComboBox3.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox3.AddItem sh.Name
Else
If Plan1.ComboBox4.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox4.AddItem sh.Name
Else
If Plan1.ComboBox5.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox5.AddItem sh.Name
Else
If Plan1.ComboBox6.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox6.AddItem sh.Name
Else
End If
End If
Next sh (Erro saiu aqui)
Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub
[ô]==================================================
Após testo o segundo exemplo de MICHOSCHEME.
---- Mensagens de erro ---
NEXT sem For
--------------------------------
Ver abaixo:
P/S: Quanto END IF TENHO QUE COLOCAR NO FIM DA LINHA?
[ô]==================================================
Private Sub Workbook_Open()
On Error GoTo Erro
Dim sh As Worksheet
[ô]Limpa a combo
Worksheets([Ô]Menu[Ô]).ComboBox1.Clear
Worksheets([Ô]Menu[Ô]).ComboBox2.Clear
Worksheets([Ô]Menu[Ô]).ComboBox3.Clear
Worksheets([Ô]Menu[Ô]).ComboBox4.Clear
Worksheets([Ô]Menu[Ô]).ComboBox5.Clear
Worksheets([Ô]Menu[Ô]).ComboBox6.Clear
[ô]Lista todas as planilhas
For Each sh In ThisWorkbook.Worksheets
If sh.Name <> ActiveSheet.Name Then
If Plan1.ComboBox1.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox1.AddItem sh.Name
Else
If Plan1.ComboBox2.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox2.AddItem sh.Name
Else
If Plan1.ComboBox3.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox3.AddItem sh.Name
Else
If Plan1.ComboBox4.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox4.AddItem sh.Name
Else
If Plan1.ComboBox5.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox5.AddItem sh.Name
Else
If Plan1.ComboBox6.ListCount < 3 Then
Worksheets([Ô]Menu[Ô]).ComboBox6.AddItem sh.Name
Else
End If
End If
Next sh (Erro saiu aqui)
Exit Sub
Erro:
MsgBox Err.Description
Exit Sub
End Sub
[ô]==================================================
voce tem que colocar um para cada IF.
Se usou 6 voce tem que colocar 6 end if
Se usou 6 voce tem que colocar 6 end if
Citação::
Na verdade eu acredito que seria assim:
If <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
ElseIf <condição> Then
<comandos>
Else
<comandos>
Endif
Um só If sendo finalizado com um só Endif
. . .
é isso mesmo. Para aninhar IFs se procede desta forma.
Deu certinho nos codigo, MAIS VOU ANALISAR NOVAMENTE um pequeno erro.
NO COMBOBOX de 2 ao 6 Ficou BELEZA! - Agora... O combobox 1 tá com referencia errada (Informações errada vindo desse (IF - end if)
tá mostrando o nome MENU no COMBOBOX.
Vou verificar novamente, postarei o resultado aqui amanhã, sem falta. Creio que o chute de CLAUDIOLUCROCHA, ficou legal.
Hasta la vista...
NO COMBOBOX de 2 ao 6 Ficou BELEZA! - Agora... O combobox 1 tá com referencia errada (Informações errada vindo desse (IF - end if)
tá mostrando o nome MENU no COMBOBOX.
Vou verificar novamente, postarei o resultado aqui amanhã, sem falta. Creio que o chute de CLAUDIOLUCROCHA, ficou legal.
Hasta la vista...
Tópico encerrado , respostas não são mais permitidas