Microsoft 365 tri feuille

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes,
Je vous souhaite une belle journée 🙂

Je bute sur mon code de tri et je n'arrive pas à trouver le bon code
J'ai un code fait avec excel :
VB:
    ActiveWorkbook.Worksheets("Appels").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Appels").Sort.SortFields.Add(Range("J4:J10000"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)
    With ActiveWorkbook.Worksheets("Appels").Sort
        .SetRange Range("A4:zz10000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Je voudrais utiliser le code que m'avait donné job75 :
Code:
    With ActiveSheet 'Feuil1 'CodeName
    If .FilterMode Then .ShowAllData 'si la feuille est filtrée
    With .Rows("4:" & .Range("a65536").End(xlUp).Row)
        If .Row < 4 Then Exit Sub 'sécurité
        .Sort .Columns(1), xlAscending, Header:=xlNo
    End With
    End With
en y incluant le tri sur la couleur des cellules :
SortOnValue.Color = RGB(55, 86, 35)


Mais je n'y arrive pas 😡
Pourriez-vous m'aider ?
(si besoin, je ferai un petit fichier test)
Un grand remerciement,
Amicalement,
lionel,
 
Dernière édition:
Solution
Oups!
Prenez cette PJ, dans le précédent la plage pour la couleur était fixe.
VB:
Sub TriCouleur()
    DL = ActiveWorkbook.Worksheets("Sheet1").Range("B65536").End(xlUp).Row
    
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add(Range("B4:B" & DL), _
        xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B4:B" & DL) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        
    
    Set Plage = ActiveWorkbook.Worksheets("Sheet1").Range("B4:B" & DL)
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Plage...
ça Beug :
VB:
With ActiveSheet 'Feuil1 'CodeName
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .Rows("4:" & .Range("a65536").End(xlUp).Row)
If .Row < 4 Then Exit Sub 'sécurité
.Sort.SortFields.Add(Range("B1:B25"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)
End With
End With
Est-ce que le .Sort.... ne devrait pas être rattaché directement à ActiveSheet plutôt qu'à ActiveSheet.Rows ?
 
Bonjour,
Est-ce que le .Sort.... ne devrait pas être rattaché directement à ActiveSheet plutôt qu'à ActiveSheet.Rows ?
Je n'ai aucun mérite si ça fonctionne mais en passant par ici je vois ta phrase et je pense que si c'est juste derrière ActiveSheet ça fonctionnera.
Bravo tout de même à vous tous pour ce code.
ou remettre directement devant comme ceci:
ActiveSheet.Sort.SortFields.Add(Range("B1:B25"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)
Je répète pas de mérite si ça fonctionne, le Pouce bleu revient à

sylvanu

A+
 
Bonjour à tous, ,

Merci pour vos message et vos efforts 🙂

@Marcel32 :
Est-ce que le .Sort.... ne devrait pas être rattaché directement à ActiveSheet plutôt qu'à ActiveSheet.Rows ?
J'ai tenté ça sans succès.

Je vais garder le code de sylvanu qui se rapproche de ce que je souhaite.
Merci sylvanu et merci à tous d'avoir été là pour moi;
Amicalement,
lionel 🙂
 
Bonjour,
sur base des codes présent dans les différentes discussion et solution proposées voici un code pompé et retravailler comme tu le souhaites enfin je pense ??
With ActiveSheet 'Feuil1 'CodeName
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .Rows("4:" & .Range("a65536").End(xlUp).Row)
If .Row < 4 Then Exit Sub 'sécurité
End With
.Sort.SortFields.Add(Range("B4:B" & .Range("a65536").End(xlUp).Row), _
xlSortOnCellColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)

End With
A+
 
Bonsoir fhoest,
Merci pour ton codes 🙂

Je tri mes lignes sur les couleurs de la colonne L.
J'ai tenté ton code comme suit :
VB:
With ActiveSheet 'Feuil1 'CodeName
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .Rows("4:" & .Range("a65536").End(xlUp).Row)
If .Row < 4 Then Exit Sub 'sécurité
End With
.Sort.SortFields.Add(Range("L4:L" & .Range("a65536").End(xlUp).Row), _
xlSortOnCellColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(55, 86, 35)
End With
ça ne beugue pas ... mais ça ne trie pas !
Peut-être ai-je mal fait ?
lionel,
 
Bonsoir,
manipulation pour avoir le bon RGB d'une cellule sans le code:
1 sélectionner la cellule
2 clic droit, Format de cellule
3 Remplissage, puis autre couleur et personnalisées
4 le RGB correspond à la couleur actuelle de la cellule.
A+
 
Bonjour fhoest, Marcel32, riton00, sylvanu, le Forum,
Bonne journée à toutes et à tous 🙂

@fhoest ; voir le fichier joint, j'ai pris le fichier de Sylvanu et j'y ai ajouté une feuille nommée Fhoest
J'ai modifié la couleur : pour le jaune "RGB(255, 255, 204)".
Feuille Sylvanu : ça tri,
Feuille Fhoest : ne fonctionne pas

Amicalement,
lionel,
 

Pièces jointes

Bonjour,
avec un fichier ça va toujours mieux super..
en réalité tout est déjà dans le beau code de Sylvanu, il suffit d'une adaptation:
voici le code:
Sub TriCouleur2() 'Fhoest
Dim derniereLigne As Long
derniereLigne = ActiveSheet.Range("a65536").End(xlUp).Row

With ActiveSheet 'Feuil1 'CodeName
.Sort.SortFields.Clear
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .Rows("4:" & .Range("a65536").End(xlUp).Row)
If .Row < 4 Then Exit Sub 'sécurité
End With
.Sort.SortFields.Add(.Range("B4:B" & derniereLigne), _
xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255, 255, 204)
.Sort.SetRange (.Range("B4:B" & derniereLigne))
.Sort.Apply
End With

Range("A1").Select
End Sub
il manquait simplement d'appliquer la mise en forme à la plage.
Bonne journée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
17
Affichages
877
Réponses
11
Affichages
712
Réponses
6
Affichages
925
Retour