[VBA] changement couleur cellule
Résolu/Fermé
Anuca
Messages postés
10
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
24 novembre 2012
-
29 juil. 2012 à 18:58
pompom09 Messages postés 55 Date d'inscription lundi 30 juillet 2012 Statut Membre Dernière intervention 13 août 2012 - 30 juil. 2012 à 09:22
pompom09 Messages postés 55 Date d'inscription lundi 30 juillet 2012 Statut Membre Dernière intervention 13 août 2012 - 30 juil. 2012 à 09:22
A voir également:
- Vba changer couleur cellule
- Changer dns - Guide
- Excel cellule couleur si condition texte - Guide
- Excel compter cellule couleur sans vba - Guide
- Changer couleur whatsapp - Accueil - Messagerie instantanée
- Changer clavier qwerty en azerty - Guide
9 réponses
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
29 juil. 2012 à 20:59
29 juil. 2012 à 20:59
Salut,
essaye comme cela
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Selection, Range("B3:B30")) Is Nothing Then
With Target
If Selection.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 4
Else
Selection.Interior.ColorIndex = xlNone
End If
End With
End If
End Sub
essaye comme cela
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Intersect(Selection, Range("B3:B30")) Is Nothing Then
With Target
If Selection.Interior.ColorIndex = xlNone Then
Selection.Interior.ColorIndex = 4
Else
Selection.Interior.ColorIndex = xlNone
End If
End With
End If
End Sub
Anuca
Messages postés
10
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
24 novembre 2012
29 juil. 2012 à 21:46
29 juil. 2012 à 21:46
Bonsoir Mike-31 et ccm81,
d'abord merci pour votre réponse et j'ai une deuxième question un peu bête pour quelqu'un qui connaît: quand j'exécute le code j'ai cette erreur qui s'affiche: erreur d'exécution 91: variable d'objet ou variable de bloc With non définie et .Interior.ColorIndex = 4 + xlNone - .Interior.ColorIndex est en jaune. Pourtant je pensais avoir défini Target mais sans doute mal: Dim Target As Range. Comment dois-je la déclarer svp?
d'abord merci pour votre réponse et j'ai une deuxième question un peu bête pour quelqu'un qui connaît: quand j'exécute le code j'ai cette erreur qui s'affiche: erreur d'exécution 91: variable d'objet ou variable de bloc With non définie et .Interior.ColorIndex = 4 + xlNone - .Interior.ColorIndex est en jaune. Pourtant je pensais avoir défini Target mais sans doute mal: Dim Target As Range. Comment dois-je la déclarer svp?
Anuca
Messages postés
10
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
24 novembre 2012
29 juil. 2012 à 22:03
29 juil. 2012 à 22:03
et au passage, vous avez écris B3:B30 mais je le veux sur toute la page sauf la première ligne et les deux première colonnes je dois faire une boucle?
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
29 juil. 2012 à 22:17
29 juil. 2012 à 22:17
Re,
tu as cette possibilité en définissant la plage à surveiller ou inversement
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Selection, Range("B2:Z200")) Is Nothing Then
With Target
.Interior.ColorIndex = 4 + xlNone - .Interior.ColorIndex
End With
End If
End Sub
tu as cette possibilité en définissant la plage à surveiller ou inversement
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Selection, Range("B2:Z200")) Is Nothing Then
With Target
.Interior.ColorIndex = 4 + xlNone - .Interior.ColorIndex
End With
End If
End Sub
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 429
29 juil. 2012 à 22:18
29 juil. 2012 à 22:18
1. tu n'as pas à redéfinir Target (cette variable est définie dans l'en tête de la procedure)
2. remplacer B2:B30 par la plage qui t'intéresse
2. remplacer B2:B30 par la plage qui t'intéresse
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Anuca
Messages postés
10
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
24 novembre 2012
29 juil. 2012 à 22:34
29 juil. 2012 à 22:34
D'accord, à présent j'ai compris pour la plage, en revanche (excusez moi d'être si cruche..). J'essaie dans un programme annexe à celui que je dois créer votre code, et donc dans mon module je mets votre code, ensuite j'appelle dans le même module Call Worksheet_SelectionChange(ByVal Target) et l'erreur 421 s'affiche: objet requis. Je suis donc aller voir dans outils références et je ne sais pas ce qu'il faut que je coche ou décoche?! je suis totalement perdue :(
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 429
29 juil. 2012 à 22:42
29 juil. 2012 à 22:42
je ne comprends pas bien ce que tu veux faire
vérifies tout de même que ta procédure est bien écrite au bon endroit
https://www.cjoint.com/?0GDwPJXHW3x
vérifies tout de même que ta procédure est bien écrite au bon endroit
https://www.cjoint.com/?0GDwPJXHW3x
Anuca
Messages postés
10
Date d'inscription
dimanche 29 juillet 2012
Statut
Membre
Dernière intervention
24 novembre 2012
29 juil. 2012 à 22:59
29 juil. 2012 à 22:59
ok, je ne savais pas qu'il fallait la mettre dans un autre endroit que général. donc maintenant ça marche :) mille merci. c'était l'erreur!
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 111
30 juil. 2012 à 09:13
30 juil. 2012 à 09:13
Re,
ces codes fonctionnent très bien à partir des versions 2003 voire versions antérieurs
ces codes fonctionnent très bien à partir des versions 2003 voire versions antérieurs
pompom09
Messages postés
55
Date d'inscription
lundi 30 juillet 2012
Statut
Membre
Dernière intervention
13 août 2012
1
30 juil. 2012 à 09:22
30 juil. 2012 à 09:22
je viens de retirer le commentaire, car en fait oui cela fonctionne, excusez moi. merci
ccm81
Messages postés
10907
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
24 janvier 2025
2 429
Modifié par ccm81 le 29/07/2012 à 21:43
Modifié par ccm81 le 29/07/2012 à 21:43
bonjour Anuka, bonjour Mike
ou en plus bref
cordialement
ou en plus bref
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Selection, Range("B3:B30")) Is Nothing Then With Target .Interior.ColorIndex = 4 + xlNone - .Interior.ColorIndex End With End If End Sub
cordialement