Sélectionner seulement les cellules d'une certaine couleur

evilwell

XLDnaute Nouveau
Bonsoir,

Existe-t-il une manière de ne sélectionner que les cellules d'une certaine couleur dans une feuille excel ou une plage de cellules de cette feuille ?
Ou faut-il pour cela passer par une macro, et si oui comment procéder ?
et est-il possible de créer un bouton qui se charge de cette tâche ?
par exemple un bouton pour la sélection de toutes les cellules de la feuille de couleur jaune ou la sélection de toutes les cellules d'aucune couleur sur une plage de la feuille ?

Merci de vos réponses !!
 

Staple1600

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonsoir et Bienvenue sur le formum evilwell

Oui tout cela est possible
Et même déjà réalisé et posté dans les archives des discussions du forum.

Pour les retrouver, tu peux utiliser la loupe en haut à droite de ton écran.

Tu peux aussi utiliser l’enregistreur de macros d'Excel pour avoir un début de code VBA.

Par exemple , la macro ci-dessus t'aidera pour ce qui concerne les cellules jaunes
Code:
Sub Macro1()

' Macro enregistrée le 31/12/2011 par l'agrafe
'
'code de l'enregisteur
With Selection.Interior
    .ColorIndex = 6
    .Pattern = xlSolid
End With
'fin code enregisteur
MsgBox ActiveCell.Interior.ColorIndex ' ajout
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

RE

Comme le sommeil ne se décide pas à venir, et comme j'ai fait cela dans mon VBE, je te le poste
VB:
Sub Yellow_SuB_Marine()
Dim MaPlage As Range, c As Range, Jaune$, i&
Randomize
With ActiveSheet
    Application.ScreenUpdating = False
    .Cells.Clear
    For i = 1 To Int((Rnd * 10) + 1)
        .Cells(i + Int((Rnd * 10) + 1), i).Interior.ColorIndex = 6
    Next i
'ci-dessus code pour créer un exemple (donc facultatif)
'ci-dessous le code qui pourrait t'être utile
Set MaPlage = .UsedRange
End With
For Each c In MaPlage
If c.Interior.ColorIndex = 6 Then
Jaune = Jaune & "," & c.Address
End If
Next c
MsgBox Range(Mid(Jaune, 2, Len(Jaune))).Address
Range(Mid(Jaune, 2, Len(Jaune))).Select
End Sub

la dernière partie du code pourrait te servir.
 

DoubleZero

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonjour, le Fil, le Forum,

Une autre suggestion dans le fichier joint : clic dans l'une des cellules colorées puis clic sur le papillon !

A bientôt :):)
 

Pièces jointes

  • 00 - evilwell - Cellules colorées sélectionner.xls
    60 KB · Affichages: 708
  • 00 - evilwell - Cellules colorées sélectionner.xls
    60 KB · Affichages: 544
  • 00 - evilwell - Cellules colorées sélectionner.xls
    60 KB · Affichages: 515

Fo_rum

XLDnaute Accro
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonjour, le Fil, le Forum,
...
Etant donnée que tu m'interpelles ;), je te retourne mes salutations :D !

Bonjour,

une autre recette pour sélectionner une plage puis le teint de fond de référence.
 

Pièces jointes

  • Copie de 00 - evilwell - Cellules colorées sélectionner.xls
    71.5 KB · Affichages: 433

evilwell

XLDnaute Nouveau
Re : Sélectionner seulement les cellules d'une certaine couleur

RE

Comme le sommeil ne se décide pas à venir, et comme j'ai fait cela dans mon VBE, je te le poste
VB:
Sub Yellow_SuB_Marine()
Dim MaPlage As Range, c As Range, Jaune$, i&
Randomize
With ActiveSheet
    Application.ScreenUpdating = False
    .Cells.Clear
    For i = 1 To Int((Rnd * 10) + 1)
        .Cells(i + Int((Rnd * 10) + 1), i).Interior.ColorIndex = 6
    Next i
'ci-dessus code pour créer un exemple (donc facultatif)
'ci-dessous le code qui pourrait t'être utile
Set MaPlage = .UsedRange
End With
For Each c In MaPlage
If c.Interior.ColorIndex = 6 Then
Jaune = Jaune & "," & c.Address
End If
Next c
MsgBox Range(Mid(Jaune, 2, Len(Jaune))).Address
Range(Mid(Jaune, 2, Len(Jaune))).Select
End Sub

la dernière partie du code pourrait te servir.

Merci beaucoup pour le code mais j'y connais pas grand chose en macros VBA donc c'est quelle partie exactement que je dois garder ?
 

evilwell

XLDnaute Nouveau
Re : Sélectionner seulement les cellules d'une certaine couleur

Etant donnée que tu m'interpelles ;), je te retourne mes salutations :D !

Bonjour,

une autre recette pour sélectionner une plage puis le teint de fond de référence.


Oui DoubleZero et Fo_rum c'est pas mal du tout ça !!
Et comment puis-je voir le code qui est derrière ce que vous avez créé ?

Mais en fait je me suis mal exprimé car ce n'est pas un bouton mais une commande de la barre d'outil que je souhaitais créer.
Avec idéalement une petite icône jaune pour sélectionner toutes les cellules de cette couleur, et la possibilité de créer de telles icônes pour plusieurs couleurs.
Serait-ce possible ?

Merci !!
 
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonjour le fil :),
Et comment puis-je voir le code qui est derrière ce que vous avez créé ?

Mais en fait je me suis mal exprimé car ce n'est pas un bouton mais une commande de la barre d'outil que je souhaitais créer.
Avec idéalement une petite icône jaune pour sélectionner toutes les cellules de cette couleur, et la possibilité de créer de telles icônes pour plusieurs couleurs.
Pour voir le code, il suffit de saisir Alt+F11 :p...

Après, une barre d'outil, je ne suis pas trop pour car si tu est pour l'instant en 2003, j'espère pour toi que tu passeras en 2010 quand tu seras grand ;), et à partir de 2007, tu ne peux récupérer les barres d'outils que dans un onglet, ce qui n'est pas très pratique, et surtout, tu n'as plus la possibilité de les modifier sauf par programmation :eek:...

Du coup, en repartant du sympathique fichier d'00, je me suis un peu amusé avec un USF non modal et un petit module de classe :rolleyes:...

L'USF s'ouvre tout seul à l'ouverture du fichier et charge les couleurs utilisées sur la feuille. Tu peux le déplacer où tu veux et continuer de travailler sur ta feuille. Si par erreur tu le fermes ou que tu as rajouté des couleurs sur la feuille (il faut le fermer alors), et il te suffit de le recharger, je t'ai mis un raccourci clavier qui est Ctrl+Maj+c ;)...

Voili, voilou, pour mon premier fichier de l'année, c'était un beau petit défi :cool:

PS à 00 : Tu veux que je t'envoie un tube d'aspirine :eek:...
 

Pièces jointes

  • 00 - evilwell - Cellules colorées sélectionner.xls
    77.5 KB · Affichages: 193
  • 00 - evilwell - Cellules colorées sélectionner.xls
    77.5 KB · Affichages: 197
  • 00 - evilwell - Cellules colorées sélectionner.xls
    77.5 KB · Affichages: 228

evilwell

XLDnaute Nouveau
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonjour le fil :),Pour voir le code, il suffit de saisir Alt+F11 :p...

Après, une barre d'outil, je ne suis pas trop pour car si tu est pour l'instant en 2003, j'espère pour toi que tu passeras en 2010 quand tu seras grand ;), et à partir de 2007, tu ne peux récupérer les barres d'outils que dans un onglet, ce qui n'est pas très pratique, et surtout, tu n'as plus la possibilité de les modifier sauf par programmation :eek:...

J'ai eu la version 2007 et maintenant 2010 au boulot et je ne suis pas très fan c'est pourquoi je garde ma petite version 2003 chez moi et que j'aimerais donc bien savoir quand même comment faire pour créer les commandes !

Du coup, en repartant du sympathique fichier d'00, je me suis un peu amusé avec un USF non modal et un petit module de classe :rolleyes:...

L'USF s'ouvre tout seul à l'ouverture du fichier et charge les couleurs utilisées sur la feuille. Tu peux le déplacer où tu veux et continuer de travailler sur ta feuille. Si par erreur tu le fermes ou que tu as rajouté des couleurs sur la feuille (il faut le fermer alors), et il te suffit de le recharger, je t'ai mis un raccourci clavier qui est Ctrl+Maj+c ;)...

Voili, voilou, pour mon premier fichier de l'année, c'était un beau petit défi :cool:

PS à 00 : Tu veux que je t'envoie un tube d'aspirine :eek:...

Merci bcp elle est pas mal du tout aussi cette solution !
Par contre comment faire pour avoir la sélection sur une partie seulement de la feuille ?
C'est-à-dire que comme l'a fait Fo_rum dans son fichier je voudrais avoir aussi la possibilité de ne pouvoir faire la sélection de telle couleur que sur une plages de cellule de la feuille !

Merci merci !!
 

JNP

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

Re :),
J'ai eu la version 2007 et maintenant 2010 au boulot et je ne suis pas très fan c'est pourquoi je garde ma petite version 2003 chez moi et que j'aimerais donc bien savoir quand même comment faire pour créer les commandes !
C'est le genre de remarque qui aurait tendance à me faire fuir :eek:...
Je suis d'un avis totalement contraire, vois d'ailleurs mes vœux 2012 :rolleyes:...
De mémoire (c'est très loin, ça :(...), il faut faire un clic droit dans la barre de menu et créer une barre personnalisée. Après, tu peux rajouter autant de lignes de menu que nécessaire, avoir accès à une petite interface graphique pour mettre une icone en couleur, et les faire pointer sur une sub (une par couleur) où tu fera un appel de la fonction en envoyant la couleur désirée :p Bref, que du bohneur et de la simplicité :eek:... Alors que quelques lignes d'XML permettent de programmer le ruban 2007 et c'est encore plus simple sous 2010 :rolleyes:...


Par contre comment faire pour avoir la sélection sur une partie seulement de la feuille ?
Il suffit de modifier la dernière ligne de la sub
Code:
Intersect(Selection, Plage).Select
Bonne suite :cool:
 

Fo_rum

XLDnaute Accro
Re : Sélectionner seulement les cellules d'une certaine couleur

Bonjour,

je ne sais plus si le contrôle ActiveX "Toolbar" est présent dans les versions précédant 2010.
Dans l'affirmative, voici une autre façon de faire.
Dans la négative, on peut créer une Barre de Menu personnalisée, des options dans le déroulant de "Clic droit" ...
 

Pièces jointes

  • ToolbarSelectionCellulesCouleurs.xls
    33 KB · Affichages: 208

evilwell

XLDnaute Nouveau
Re : Sélectionner seulement les cellules d'une certaine couleur

De mémoire (c'est très loin, ça :(...), il faut faire un clic droit dans la barre de menu et créer une barre personnalisée. Après, tu peux rajouter autant de lignes de menu que nécessaire, avoir accès à une petite interface graphique pour mettre une icone en couleur, et les faire pointer sur une sub (une par couleur) où tu fera un appel de la fonction en envoyant la couleur désirée :p Bref, que du bohneur et de la simplicité :eek:...

Oui merci j'ai réussi à ma débrouiller à le faire pour une couleur.
Et concernant le code des couleurs d'après le code de Staple1600 pour jaune c'est 6 mais où peut-on trouver le code d'autres couleurs ?

Alors que quelques lignes d'XML permettent de programmer le ruban 2007 et c'est encore plus simple sous 2010 :rolleyes:...

Il suffit de modifier la dernière ligne de la sub
Code:
Intersect(Selection, Plage).Select
Bonne suite :cool:

Merci bien ça marche bien comme ça !
Par contre je ne comprends pas de quelle façon l'USF est associé aux macros et à la feuille, comment est fait le lien entre eux ?

Et précedemment tu parlais du raccourci Ctrl+Maj+c pour afficher l'USF. Comment puis-je voir que ce raccourci existe, si par exemple je veux le modifier ?

Encore merci de ton aide !!
 

JNP

XLDnaute Barbatruc
Re : Sélectionner seulement les cellules d'une certaine couleur

Re :),
Oui merci j'ai réussi à ma débrouiller à le faire pour une couleur.
Et concernant le code des couleurs d'après le code de Staple1600 pour jaune c'est 6 mais où peut-on trouver le code d'autres couleurs ?
Tu peux regarder ICI en autre, où j'avais commis un fichier de fabrication de couleur (un peu moins écran, plus soft...) et obtenir leurs codes :p Par contre, mon code avait l'avantage de collecter les couleurs avant usage. Là, si tu te trompes, ça ne fonctionnera pas :rolleyes:... Et tu aurais intérêt à développer aussi des menus pour appliquer les mêmes couleurs, bon courage (pourquoi faire simple quand on peux faire compliqué :eek:) :(...

Par contre je ne comprends pas de quelle façon l'USF est associé aux macros et à la feuille, comment est fait le lien entre eux ?
Euh, là, comme précisé, j'ai fait assez type "VBA expert", si tu commences les macros, je n'aurai pas le courage d'en faire 3 pages pour les explications :eek:... Grosso modo, à l'ouverture de l'USF, je regarde toutes les couleurs des cellules utilisées, je stockes dans un Dictionnary pour éliminer les doublons, puis je les affectes aux boutons. Ensuite, grace à un Module de Classe, tous les boutons ont un seul événement Click qui lit la couleur du bouton pour faire la recherche des cellules concernées ;)...

Et précedemment tu parlais du raccourci Ctrl+Maj+c pour afficher l'USF. Comment puis-je voir que ce raccourci existe, si par exemple je veux le modifier ?
La définition du raccourci est dans ThisWorkbook, en utilisant Application.Onkey :rolleyes:. Mais attention, si tu ne fait pas la même modification à l'ouverture ET la libérer à la fermeture, la modification sera la même pour les autres fichiers...
Bon courage :cool:
 

evilwell

XLDnaute Nouveau
Re : Sélectionner seulement les cellules d'une certaine couleur

Merci pour ta réponse complète JNP !

Et dernière question : actuellement il faut que j'ouvre ton fichier pour pouvoir utiliser dans un autre fichier l'USF que tu as créé. Donc comment puis-je faire pour le faire apparaître quand je veux avec le fichier que je veux sans devoir ouvrir ton fichier chaque fois ?
 

Discussions similaires

Réponses
26
Affichages
526

Statistiques des forums

Discussions
312 379
Messages
2 087 765
Membres
103 661
dernier inscrit
fcleves