Problème sur séquence If..Elseif...Elseif

silvin38

XLDnaute Nouveau
Bonjour,

J'ai une erreur dans le bout de code qui suit que je n'arrive pas à reperer.
Si quelqu'un pouvait y jeter un oeil et me dire ce qui ne va pas je l'en remercie d'avance :

Pour les données, mon TextQuantité est un nombre et ComboGeo est une combobox où je peux sélectionner les valeurs suivantes : plan / John / Joan.
Le but est que selon la quantité entrée et la valeur de ComboGeo, la cellule de la colonne 15 de ma derniere ligne (DernL étant défini plus haut) prenne une valeur spécifique.
Avec le code suivant, lorsque j'execute ma macro, Excel me dit que j'ai un "Else sans If", et je n'arrive pas à identifier mon erreur...

Code:
With Worksheets("Cotation").Activate
            
          qt = TextQuantite.Value
          ge = ComboGeo.Value
                   
           If ge = "plan" Then .Cells(DernL, 15).Value = 100
                 
          ElseIf ge = "John" Then
                If qt = 1 Then .Cells(DernL, 15).Value = 400
                ElseIf qt = 2 And qt < 5 Then .Cells(DernL, 15).Value = 335
                ElseIf qt >= 5 Then .Cells(DernL, 15).Value = 230
                End If
                
           ElseIf ge = "Joan" Then
                If qt = 1 Then .Cells(DernL, 15).Value = 1000
                ElseIf qt = 2 And qt < 5 Then .Cells(DernL, 15).Value = 915
                ElseIf qt >= 5 Then .Cells(DernL, 15).Value = 800
                End If
            
            End If

End With

Merci
 

pierrejean

XLDnaute Barbatruc
Re : Problème sur séquence If..Elseif...Elseif

Bonjour silvin38

A tester:

Code:
[FONT=monospace]With Worksheets("Cotation").Activate     
    

          qt = TextQuantite.Value
          ge = ComboGeo.Value
                   
           If ge = "plan" Then
             .Cells(DernL, 15).Value = 100
                 
          ElseIf ge = "John" Then
                If qt = 1 Then .Cells(DernL, 15).Value = 400
                ElseIf qt = 2 And qt < 5 Then .Cells(DernL, 15).Value = 335
                ElseIf qt >= 5 Then .Cells(DernL, 15).Value = 230
                End If
                
           ElseIf ge = "Joan" Then
                If qt = 1 Then .Cells(DernL, 15).Value = 1000
                ElseIf qt = 2 And qt < 5 Then .Cells(DernL, 15).Value = 915
                ElseIf qt >= 5 Then .Cells(DernL, 15).Value = 800
                End If
            
            End If

End With
[/FONT]
 

Paf

XLDnaute Barbatruc
Re : Problème sur séquence If..Elseif...Elseif

Bonjour,

toutes les actions suivant then doivent être sur la ligne qui suit.

l'écriture : If ge = "plan" Then .Cells(DernL, 15).Value = 100 est réservée s'il n'y a qu'une action après le then , auquel cas le end if n'est pas nécessaire

bonne suite
 

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 456
dernier inscrit
mango53200