VBA Macro
Résolu/Fermé
Ghinoa1
Messages postés
1
Date d'inscription
vendredi 25 juillet 2014
Statut
Membre
Dernière intervention
25 juillet 2014
-
25 juil. 2014 à 17:09
Ghinoa1 - 27 juil. 2014 à 12:37
Ghinoa1 - 27 juil. 2014 à 12:37
A voir également:
- VBA Macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Macro logiciel - Télécharger - Organisation
- Vba attendre 1 seconde ✓ - Forum VB / VBA
3 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
25 juil. 2014 à 17:32
25 juil. 2014 à 17:32
Bonjour Ghinoa1 et bienvenue sur le Forum,
Tu peux écrire :
Tu peux écrire :
Sub Mention() Dim Note As Integer Dim Mention As String Dim n°L As Long For n°L = 5 To 50 ' ou 1 to 50 Note = Cells(n°L, "B") If Note = 0 Then Mention = "Nul" ElseIf Note >= 1 And Note < 6 Then Mention = "Moyen" ElseIf Note >= 6 And Note < 11 Then Mention = "Passable" ElseIf Note >= 11 And Note < 16 Then Mention = "Bien" ElseIf Note >= 16 And Note < 20 Then Mention = "Très Bien" Else Mention = "Excellent" End If Cells(n°L, "C") = Mention Next n°L End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 25/07/2014 à 19:18
Modifié par michel_m le 25/07/2014 à 19:18
Bonjour
Pourquoi du VBA ?
par formule à tirer vers le bas
on pourra également le faire en réalisant un tableau de concordance note/mention et utiliser RECHERCHEV
Si on tient au VBA, utiliser SELECT CASE plutôt que IF....ELSIF où d'ailleurs linterval >=...< est inutile car on progresse dans les notes et l'opérateur "inférieur à" suffit
autre procédure VBA histoire de traduire ma formule par du VBA pour collaborer quand même
Pourquoi du VBA ?
par formule à tirer vers le bas
=SI(B5="";"";INDEX({"nul";"moyen";"passable";"bien";"très bien";"excellent"};EQUIV(B5;{0;1;6;11;16;20};1)))
on pourra également le faire en réalisant un tableau de concordance note/mention et utiliser RECHERCHEV
Si on tient au VBA, utiliser SELECT CASE plutôt que IF....ELSIF où d'ailleurs linterval >=...< est inutile car on progresse dans les notes et l'opérateur "inférieur à" suffit
autre procédure VBA histoire de traduire ma formule par du VBA pour collaborer quand même
Option ExplicitMichel
'------
Sub mentionner()
Dim Lig As Byte, Note As Variant, Echelon As Byte
Application.ScreenUpdating = False
For Lig = 5 To 50
Note = Cells(Lig, "B")
If Note <> "" Then
Echelon = Evaluate("Match(" & Note & ", {0,1,6,11,16,20}, 1)")
Cells(Lig, "C") = Choose(Echelon, "nul", "moyen", "passable", "bien", "très bien", "excellent")
End If
Next
End Sub