AJUDA IF - THEN - ELSE

ROBSONSLZ 27/06/2010 16:23:07
#345914
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

CLAUDIOLUCROCHA 27/06/2010 16:31:52
#345915
Resposta escolhida
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 .....

MICROSCHEME 27/06/2010 18:20:08
#345921

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

. . .
ROBSONSLZ 27/06/2010 19:37:19
#345923
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
[ô]==================================================
CLAUDIOLUCROCHA 27/06/2010 19:42:10
#345924
voce tem que colocar um para cada IF.

Se usou 6 voce tem que colocar 6 end if

EDERMIR 27/06/2010 20:09:29
#345930
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.


ROBSONSLZ 27/06/2010 21:00:04
#345934
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...

Tópico encerrado , respostas não são mais permitidas