Macro Liée au changement de la valeur d une cellule [Résolu/Fermé]

Signaler
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
-
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
-
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
A voir également:

2 réponses

Messages postés
112
Date d'inscription
dimanche 6 juin 2010
Statut
Membre
Dernière intervention
10 juin 2015
31
Bonjour,

Il faut déclencher par l'événement Worksheet_Change de la feuille si l'adresse de la plage (Target) est B2


Private 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
Messages postés
16433
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
15 avril 2021
3 163
Bonjour
sans macro
en D4
=SI(B2<>"";TEXTE(DATE(1900;B2;1);"mmmm");"")
ou
=SI(B2<>"";TEXTE("1/" &B2& "/1900";"mmmm");"")

toujours penser Excel avant de penser VBA :o)

Michel
Messages postés
348
Date d'inscription
mardi 19 octobre 2010
Statut
Membre
Dernière intervention
15 avril 2021
1
J'ai commencé par là mais les codes
que j ai trouvé ne fonctionnaient pas .
En revanche cela fonctionne merci !!!