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
A voir également:
- Déclencher une macro en fonction de la valeur d'une cellule
- Fonction si et - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule ✓ - Forum Excel
- Excel : Remplir une cellule en fonction d'une autre ✓ - Forum Excel
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 B2
Pour le reste du code, on pourrait un peu simplifier tous ces IF ELSEIF.... avec un Select Case, ce qui donnerait :
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