Erreur de compilation

  • Initiateur de la discussion Initiateur de la discussion Keny
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

Keny

Guest
Bonsoir à tous,

Je suis débutante en VBA, j'ai un petit projet à rendre, et j'ai une erreur de compilation pour mon userform, c'est Else sans If :

With ThisWorkbook.Worksheets("Equipes")
.Activate


If OptAB2 = True Then
Set Rng = .Range("A2:A9")
Rng.Sort Key1:=Range("A2:A9")
LstEquipeAB.Clear
For Each cell In Rng

ElseIf OptCD2 = True Then
Set Rng = .Range("A10:A17")
Rng.Sort Key1:=Range("A10:A17")
LstEquipeAB.Clear
Else
Set Rng = .Range("A18:A26")
Rng.Sort Key1:=Range("A18:A26")
LstEquipeAB.Clear
End If

End With


J'ai essayé d'ajouter un End if, de mettre un Else tout seul et d'enlever le then... bref, j'ai fais ça dans tous les sens, mais je ne trouve pas la solution.

Pouvez vous m'aider s'il vous plait ?

Merci beaucoup !

Bonne soirée !
 
Re : Erreur de compilation

Bonjour,
A priori, côté if.... End if c'est OK. Ce qui ne l'est pas, c'est l'instruction For Each cell In Rng qui est un début de boucle or nulle part ne figure la fin de boucle (qui devrait se situer avant l'instruction ElseIf OptCD2 = True Then). C'est cette fin de boucle manquante qui provoque l'erreur de compilation.
 
Re : Erreur de compilation

Bonjour Keny


La structure est incomplète : For each ... doit être suivi de Next. Peut-être comme ceci :
VB:
    With ThisWorkbook.Worksheets("Equipes")
        .Activate

        If OptAB2 = True Then
            Set Rng = .Range("A2:A9")
            Rng.Sort Key1:=Range("A2:A9")
            LstEquipeAB.Clear
            For Each cell In Rng
                'Ici traitement de chacune des cellules de Rng
            Next
        ElseIf OptCD2 = True Then
            Set Rng = .Range("A10:A17")
            Rng.Sort Key1:=Range("A10:A17")
            LstEquipeAB.Clear
        Else
            Set Rng = .Range("A18:A26")
            Rng.Sort Key1:=Range("A18:A26")
            LstEquipeAB.Clear
        End If

    End With


ROGER2327
#5684


Mercredi 4 Clinamen 139 (Saint Pagne, confident - fête Suprême Quarte)
6 Germinal An CCXX, 0,2290h - blette
2012-W13-1T00:32:58Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
390
Retour