Inserer une plage de cellules dans une macro existante [Résolu]

Messages postés
91
Date d'inscription
vendredi 2 avril 2004
Statut
Membre
Dernière intervention
19 mai 2011
- - Dernière réponse : CGSI3
Messages postés
417
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Derniè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
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
8
3
Merci
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

A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de bigfish_le vrai
Messages postés
91
Date d'inscription
vendredi 2 avril 2004
Statut
Membre
Dernière intervention
19 mai 2011
0
Merci
Superbe, avec tous mes remerciements m'sieur bigfish_le vrai
Commenter la réponse de charette63
Messages postés
417
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
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
Commenter la réponse de CGSI3
Messages postés
417
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
Aarf désolé mal compris l'énoncé!
Bonne Soirée a tous les deux CGSI3
Commenter la réponse de CGSI3