Macro Liée au changement de la valeur d une cellule
Résolu
CHARLYJACK
Messages postés
345
Date d'inscription
Statut
Membre
Dernière intervention
-
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
CHARLYJACK Messages postés 345 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un problème je n'arrive pas à déclencher ma procédure quand la valeur de la cellule B2 change.
La cellule B2 contient un nombre de 1 à 12.
Et je veux afficher en D4 le mois correspondant.
J'ai enregistre cette procédure dans un module
et j'ai appelé la procédure dans un événement de la feuille activate
Quand j'essaie en pas a pas ça fonctionne,
en revanche ça ne fonctionne pas quand j'active la feuille
Par avance merci de votre aide
sub mois
Dim Mois As String
Dim cell As Integer
cell = Range("$B$2").Value
If cell = 1 Then
Mois = "janvier"
ElseIf cell = 2 Then
Mois = "février"
ElseIf cell = 3 Then
Mois = "mars"
ElseIf cell = 4 Then
Mois = "avril"
ElseIf cell = 5 Then
Mois = "mai"
ElseIf cell = 6 Then
Mois = "juin"
ElseIf cell = 7 Then
Mois = "juillet"
ElseIf cell = 8 Then
Mois = "aout"
ElseIf cell = 9 Then
Mois = "septembre"
ElseIf cell = 10 Then
Mois = "octobre"
ElseIf cell = 11 Then
Mois = "novembre"
ElseIf cell = 12 Then
Mois = "décembre"
Else
Mois = "Mois"
End If
Range("D4").Value = Mois
end sub
j'ai un problème je n'arrive pas à déclencher ma procédure quand la valeur de la cellule B2 change.
La cellule B2 contient un nombre de 1 à 12.
Et je veux afficher en D4 le mois correspondant.
J'ai enregistre cette procédure dans un module
et j'ai appelé la procédure dans un événement de la feuille activate
Quand j'essaie en pas a pas ça fonctionne,
en revanche ça ne fonctionne pas quand j'active la feuille
Par avance merci de votre aide
sub mois
Dim Mois As String
Dim cell As Integer
cell = Range("$B$2").Value
If cell = 1 Then
Mois = "janvier"
ElseIf cell = 2 Then
Mois = "février"
ElseIf cell = 3 Then
Mois = "mars"
ElseIf cell = 4 Then
Mois = "avril"
ElseIf cell = 5 Then
Mois = "mai"
ElseIf cell = 6 Then
Mois = "juin"
ElseIf cell = 7 Then
Mois = "juillet"
ElseIf cell = 8 Then
Mois = "aout"
ElseIf cell = 9 Then
Mois = "septembre"
ElseIf cell = 10 Then
Mois = "octobre"
ElseIf cell = 11 Then
Mois = "novembre"
ElseIf cell = 12 Then
Mois = "décembre"
Else
Mois = "Mois"
End If
Range("D4").Value = Mois
end sub
2 réponses
-
Bonjour,
Il faut déclencher par l'événement Worksheet_Change de la feuille si l'adresse de la plage (Target) est B2Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$2" Then Exit Sub 'Suite du code - la valeur de B2 a changé End Sub
Pour le reste du code, on pourrait un peu simplifier tous ces IF ELSEIF.... avec un Select Case, ce qui donnerait :
Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Integer, Mois As String If Target.Address <> "$B$2" Then Exit Sub cell = Target.Value Select Case cell Case Is = 1: Mois = "Janvier" Case Is = 2: Mois = "Février" Case Is = 3: Mois = "Mars" Case Is = 4: Mois = "Avril" Case Is = 5: Mois = "Mai" Case Is = 6: Mois = "Juin" Case Is = 7: Mois = "Juillet" Case Is = 8: Mois = "Août" Case Is = 9: Mois = "Septembre" Case Is = 10: Mois = "Octobre" Case Is = 11: Mois = "Novembre" Case Is = 12: Mois = "Décembre" End Select If Mois <> "" Then Range("D4").Value = Mois End Sub