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:
- Lancer macro après validation cellule
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Cette valeur ne correspond pas aux restrictions de validation des données pour cette cellule ✓ - Forum MacOS
- Impossible d'utiliser ce numéro de téléphone pour la validation. - Forum Gmail
- Commande en cours de validation fnac - Forum Consommation & Internet
- Restriction de valeur sur Excel ✓ - 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