Macro sur changement de valeur
Bonjour à tous,
Merci d'avance à ceux qui me liront.
La question a déjà été traitée mais je n'arrive pas à trouver la solution dans mon cas.
Contexte :
J'ai un fichier de suivi de performances d'agent dont les résultats issue de formule m'affiche des résultats chiffrés en pourcentage ou en standard.
J'ai trouvé la formule qui me permet de forcer le format de cellule pour une cellule ou pour une série.
Je souhaite maintenant que cette formule se déclenche au changement de la valeur en B8 et en fonction d'un résultats affichés en B6 pour appliquer la modification souhaitée : pourcentage ou standard (résultat lui même issue d'une formule)
Si c'est pourcentage : lancer la macro pour forcer l'affichage en pourcentage
Si c'est standard : lancement de la macro pour forcer l'affichage en standard.
Mon code est collé dans la feuille ciblée.
Mais cela ne fonctionne pas au changement de valeur.
Mon code :
Sub Worksheet_Changement(ByVal Target As Range)
If Target.Address = "$B$8" Then 'Si la cellule B8 change de valeur
If Range("B6").Value = "Pourcentage" Then ' Et si la valeur de B6 est égale à "Pourcentage".....
Range("G6:G10").NumberFormat = "00.00%"
Range("I6:I10").NumberFormat = "00.00%"
Range("G13:G115").NumberFormat = "00.00%"
Range("I13:I115").NumberFormat = "00.00%"
Range("B19").NumberFormat = "00.00%"
Range("C19").NumberFormat = "00.00%"
Range("D19").NumberFormat = "00.00%"
ElseIf Range("B6").Value = "Standard" Then 'Sinon si la valeur de B6 est égale à "Standard"...
Range("G6:G10").NumberFormat = "00.00"
Range("I6:I10").NumberFormat = "00.00"
Range("G13:G115").NumberFormat = "00.00"
Range("I13:I115").NumberFormat = "00.00"
Range("B19").NumberFormat = "00.00"
Range("C19").NumberFormat = "00.00"
Range("D19").NumberFormat = "00.00"
End If
End If
End If
End Sub
Voila, merci d'avance.
Mouchi
Bonjour Mouchi, bonjour le forum,
C'est c'est une formule qui déclenche le changement il te faut utiliser l'événement Calculate au lieu de Change :
Private Sub Worksheet_Calculate()
Dim PL As Range
Set PL = Application.Union(Range("G6:G10"), Range("I6:I10"), Range("G13:G115"), Range("I13:I115"), Range("B19:D19"))
Select Case Range("B6").Value
Case "Pourcentage"
PL.NumberFormat = "00.00%"
Case "Standard"
PL.NumberFormat = "00.00"
End Select
End SubBonjour ThauThème,
Merci beaucoup, tout fonctionne parfaitement.
Merci également d'avoir adapté la formule avec mes références de cellule.
Très bonne journée à toi et au forum.