charette63
Messages postés88Date d'inscriptionvendredi 2 avril 2004StatutMembreDernière intervention19 mai 2011
-
27 mars 2011 à 20:07
CGSI3
Messages postés416Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention 7 janvier 2018
-
27 mars 2011 à 22:58
Bonjour à toutes et tous,
Je n'y connais pas grand chose en programmation, (voire rien), j'ai trouvé sur le net une macro me permettant de changer
la couleur d'une cellule lorsque sa valeur change. Mon problème est que cette macro s'exécute sur toute la feuille excel
et j'aimerai la limiter à la plage de cellule "D4:AH69". J'ai cherché une solution via un moteur de recherche, j'y ai
trouvé quelques bouts de code, mais aucun ne s'est avéré efficace. Je me résous donc à demander de l'aide.
voici ma macro:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Horaire" Then
Target.Interior.Color = vbYellow
End If
End Sub
merci de votre aide
A voir également:
Inserer une plage de cellules dans une macro existante
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201315 27 mars 2011 à 21:16
Salut,
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh Is Worksheets("Horaire") And Not Intersect(Range("D4:AH69"), Target) Is Nothing Then
Target.Interior.Color = vbYellow
End If
End Sub
Traduction de la condition if :
'si sh est la feuille "Horaire" et l'intersection de target avec "D4:AH69" n'est pas vide alors
CGSI3
Messages postés416Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention 7 janvier 20181 27 mars 2011 à 22:35
Bonsoir a tous,
Presque, Bigfish, j'ajoute juste ceci
L'évenement de charette semble mal choisi.
De plus si tu selectionne une ligne, une colonne ou une zone, la macro colorie toute la selection, pas l'intersection. (je viens de faire l'essai)
Modifiez
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Sh Is Worksheets"Horaire") And Not Intersect(Range("D4:AH69"), Target) Is Nothing Then
Dim Ab As Range
Set Ab = Intersect(Target, Range("D4:AH69"))
Ab.Interior.Color = vbYellow
End If
End Sub
Perso l'evenement
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
marche aussi et éviterait un test.
Mais je suis tatillon ce soir .. lol
Bonne Soirée a tous les deux CGSI3