Macro pour trier données suivant liste et mettre en couleur suivant catégorie

riomilou

XLDnaute Nouveau
Bonjour tout le monde,
J'ai besoin de votre aide pour finir une macro. J'ai une macro qui trie et classe les données suivant une liste. Je voudrais lui demander de me les classer après suivant couleur. Couleur Verte pour les fruits, jaune pour les céréales, et bleus pour les légumes. Que dois je rajouter à mon code pour que ce classement soit en couleur, mais que les mots en couleur et non pas le fond des cellules ? Merci et bon week end.

Sub Test()
Dim X As Long
X = Application.CustomListCount + 1
Application.AddCustomList ListArray:=Array("pomme", "poire", "pêche", "blé", "maïs", "orge", "haricots", "potiron", "chou")

sheet1.Select
Range("A1 :c30").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=X, MatchCase:=False, Orientation:= _
xlTopToBottom
End Sub
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonjour à tous,

un essai en pièce jointe
Excel ne connaissant pas le marché aux fruits, légumes et céréales il est nécessaire de lui indiquer
ce que j'ai fait en colonne A

à+
Philippe
 

Pièces jointes

  • 111.xls
    27 KB · Affichages: 156
  • 111.xls
    27 KB · Affichages: 165
  • 111.xls
    27 KB · Affichages: 170

riomilou

XLDnaute Nouveau
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Merci Philippe et Papou. Ci joint mon fichier exemple...
Philippe: ton idée est bonne mais je veux classer suivant la liste classée ds mon code VBA et...mettre les mots en couleur quelconque pour différencier les catégories du 1er coup d'oeil.
Ci joint exemple fichier:
Copie E en A et cliquer sur bouton...
Merci pour votre aide
 

Pièces jointes

  • tri par liste.xls
    27 KB · Affichages: 136
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Re Philippe :eek: Riolou le forum
en partant de ton fichier qui ne possède aucune couleur !!!
alors j'ai fait comme je pensais si tu clique sur le bouton tu auras les couleurs de la colonne E intérieur de cellule et si tu cliques sur bouton 2 tu auras les couleurs de la colonne F la couleur du texte
a+
papou :eek:
 

Pièces jointes

  • tri par listeV1.zip
    13 KB · Affichages: 80

riomilou

XLDnaute Nouveau
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Merci Papou !!!
J'adore le "call calorier" pour le bouton 2. Juste une quesion: pourquoi ça ne marche pas le "calorier1" (avec font couleur) car en VBA j'ai en jaune sur cette ligne: .Cells(i, 1).Font.ColorIndex = .Cells(a, 5).Interior.ColorIndex
et mgs: "1004.. impossible de définir la propriété colorindex de la classe font"
Riolou qui te dit un grand merci !
 

James007

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonjour riomilou ... et Salut Papou :)

Voir fichier joint pour test ...

A +
:)
 

Pièces jointes

  • TesttriparlisteV2.xls
    46.5 KB · Affichages: 118
  • TesttriparlisteV2.xls
    46.5 KB · Affichages: 119
  • TesttriparlisteV2.xls
    46.5 KB · Affichages: 115

riomilou

XLDnaute Nouveau
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonsoir James007, bonsoir Papou..et le Forum,
Non ça ne fonctionne pas avec le "colorier" (couleur fond cellule).
Mais OK comme j'avais dit à Papou, pour son "colorier1" (couleur lettres)
On sent qu'il se passe quelque chose derriere les lettres..mais quoi?..
En tout cas c'est transparent on dirait !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonsoir

riomilou : avec les balises CODE, ton message serait plus agréable à lire ;)
Tu peux éviter les Select (ils sont souvent inutiles)
Code:
Sub Test()    
Dim X As Long
X = Application.CustomListCount + 1
Application.AddCustomList ListArray:=Array("pomme", "poire", "pêche", "blé", "maïs", "orge", "haricots", "potiron", "chou")
Sheet1.Range("A1:C30").Sort Key1:=Sheet1.Range("A1"), Order1:=xlAscending, Header:= _
    xlGuess, OrderCustom:=X, MatchCase:=False, Orientation:= _
    xlTopToBottom
End Sub
 

James007

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonjour riomilou ... salut Papou :)

En prenant le temps de comprendre ton objectif ... ce fichier devrait convenir davantage

A +
:)
 

Pièces jointes

  • TesttriparlisteV2.xls
    45.5 KB · Affichages: 103
  • TesttriparlisteV2.xls
    45.5 KB · Affichages: 107
  • TesttriparlisteV2.xls
    45.5 KB · Affichages: 107

Paritec

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonjour James Riomilou,
James j'avais fais pour colorier le texte car dans un post Riomilou dit clairement .mettre les mots en couleur quelconque pour différencier les catégories
et dans le premier post
mais que les mots en couleur et non pas le fond des cellules ? Merci et bon week end.

maintenant s'il s'expliquait ce serait plus simple que de dire "ca marche pas"
Pour une question de lisibilité j'avais mis le texte avec le bouton de la couleur de fond de la colonne E et bouton2 de la couleur du texte de la colonne F
Maintenant si la donne à changée et qu'il faut la couleur de fond tu as répondu à la question.
enfin c'est riomilou qui nous dira.
a+
Bon dimanche sous la neige
Papou :eek:

 

riomilou

XLDnaute Nouveau
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Bonjour James007, Bonjour Papou, Bonjour Staple1600 , Bonjour Paritec et tout le Forum,
ça marche avec le fichier de James007. Merci !

Papou, j'ai opté après réflexion ton code pour les lettres en couleur que tu m'as fait, + la couleur des cellules, et c'est encore ton idée qui m'a flanchée. Et, James007 m'a suggéré un 3eme bouton pour reseter si je puis dire, et à fait une petite modification pour ton code en cellules couleur. Bravo à vous deux. Je vous inviterai bien boire un coup si vous êtes ds mon coin !!! Grâce à vous deux mon projet est amélioré et c'est + performant.

James, juste une dernière question, si la liste des données des couleurs de mes "poires et légumes" se trouve dans un autre classeur qui est déjà ouvert, que devrais je mettre comme code ici: ( With ....???(non pas feuil1 de ce classeur mais un autre classeur ouvert qui s'appelle "toto" et son ficher s'appelle "feuil1"?):

Sub colorier2()
With Feuil1
fin = .Range("F65535").End(xlUp).Row
For i = 1 To fin
For a = 1 To fin
If .Cells(i, 1) = .Cells(a, 6) Then .Cells(i, 1).Font.ColorIndex = .Cells(a, 6).Font.ColorIndex
Next a
Next i
End With
End Sub

Je débute vraiment en macro et vous m'avez donné le virus VBA !! Un grand merci encore.
Cdlt
riomilou
 
Dernière édition:

James007

XLDnaute Barbatruc
Re : Macro pour trier données suivant liste et mettre en couleur suivant catégorie

Re,

Papou et moi sommes ravis que tu touches enfin au but ... :)
Si tu veux faire appel à un autre fichier, il te faut l'expliciter :
Code:
Workbooks("toto.xls").Feuil1

A +
:)
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 765
Messages
2 091 892
Membres
105 084
dernier inscrit
lca.pertus