Programmer en vba
liha20
Messages postés
3
Statut
Membre
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,
depuis hier suis bloqué sur un boulot, en fait je dois écrire un programme qui me permettra de classer des pays selon les points qu'ils ont accumulé. Et je le fais sur exel en particulier j'utilise les macros exel. g écris mon algorithme en VBA mais quand j'excute ca me dit "else sans if" alors que je vois l'erreur.
voici mon algorithme:
Sub cahieruemoa()
Dim Ci As Single
Dim classe As String
Range(c65) = Ci
Range(d65) = classe
If 1 <= Ci < 5 Then classe = "C"
ElseIf 5 <= Ci < 10 Then classe = "C+"
ElseIf 10 <= Ci < 15 Then classe = "C++"
ElseIf 15 <= Ci < 20 Then classe = "B"
ElseIf 20 <= Ci < 25 Then classe = "B+"
ElseIf 25 <= Ci < 30 Then classe = "B++"
ElseIf 30 <= Ci < 35 Then classe = "A"
ElseIf 35 <= Ci < 40 Then classe = "A+"
Else: classe = "A++"
End If
End Sub
aider moi svp.
depuis hier suis bloqué sur un boulot, en fait je dois écrire un programme qui me permettra de classer des pays selon les points qu'ils ont accumulé. Et je le fais sur exel en particulier j'utilise les macros exel. g écris mon algorithme en VBA mais quand j'excute ca me dit "else sans if" alors que je vois l'erreur.
voici mon algorithme:
Sub cahieruemoa()
Dim Ci As Single
Dim classe As String
Range(c65) = Ci
Range(d65) = classe
If 1 <= Ci < 5 Then classe = "C"
ElseIf 5 <= Ci < 10 Then classe = "C+"
ElseIf 10 <= Ci < 15 Then classe = "C++"
ElseIf 15 <= Ci < 20 Then classe = "B"
ElseIf 20 <= Ci < 25 Then classe = "B+"
ElseIf 25 <= Ci < 30 Then classe = "B++"
ElseIf 30 <= Ci < 35 Then classe = "A"
ElseIf 35 <= Ci < 40 Then classe = "A+"
Else: classe = "A++"
End If
End Sub
aider moi svp.
A voir également:
- Programmer en vba
- Programmer sms - Guide
- Programmer mail gmail - Guide
- Excel compter cellule couleur sans vba - Guide
- Mettre en veille un programme - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
6 réponses
bonjour,
essaies plutôt une autre structuration de tes conditions
par exemple
nota dans ton "algo" si CI est ibnférieur à 1 tu as classe=A++... donc j'ai opté pour "rien" ("")
essaies plutôt une autre structuration de tes conditions
par exemple
CI = Range("C65")
Select Case CI
Case Is < 1
classe = ""
Case Is < 10
classe = "C"
'.....etc
Case Is < 40
classe = "A+"
Case Else
classe = "A++"
End Select
Range("D65") = classe
End Sub
nota dans ton "algo" si CI est ibnférieur à 1 tu as classe=A++... donc j'ai opté pour "rien" ("")
Bonjour, ce serait effectivement mieux avec le select, mais pour répondre à ta question...
Tu ferme directement ton 1er If
A+
If 1 <= Ci < 5 Then
classe = "C"
ElseIf 5 <= Ci < 10 Then classe = "C+"
ElseIf 10 <= Ci < 15 Then classe = "C++"
ElseIf 15 <= Ci < 20 Then classe = "B"
ElseIf 20 <= Ci < 25 Then classe = "B+"
ElseIf 25 <= Ci < 30 Then classe = "B++"
ElseIf 30 <= Ci < 35 Then classe = "A"
ElseIf 35 <= Ci < 40 Then classe = "A+"
Else: classe = "A++"
End If
Tu ferme directement ton 1er If
A+
excuse moi michel ,g fais ce que tu ma dit mais quand j'exécute le programme ca marche mais sur ma feuille d'exel je vois rien qui s'affiche.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ci joint une maquette de ton projet à adapter: j'ai ajouté un déclenchement lors du changement de valeur de Ci
https://www.cjoint.com/?ivtt5S6HcP
https://www.cjoint.com/?ivtt5S6HcP