Trier croisant en omettant les zeros

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 !

wrap food

XLDnaute Occasionnel
Bonjour,

J'aimerais savoir si il est possible de faire un tri croissant sur une plage de cellule dans laquelle il y a des zero, et que lors du tri les zeros soient mis au dernier.
j'ai ce code la mais il me tri avec les zero


Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Y a t-il quelqu'un qui puise m'aider

par avance merci.
 
Re : Trier croisant en omettant les zeros

Bonjour wrap food

Un essai avec ce code:

Code:
Option Explicit
Sub Macro1()
Application.ScreenUpdating = False
Dim Derlig As Long
Dim Plage As Range
With Sheets("Feuil1")
Derlig = .Cells(Rows.Count, 1).End(xlUp).Row
Set Plage = .Range("A2:A" & Derlig)
 
    .Sort.SortFields.Clear
    .Sort.SortFields.Add Key:=Range("A2:A" & Derlig) _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 
    With .Sort
        .SetRange Range("A1:B" & Derlig)
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
 
    .Range("A1:B1").AutoFilter
    .Range("$A$1:$B$" & Derlig).AutoFilter Field:=1, Criteria1:="0"
 
     Set Plage = .Range("A2:B" & Derlig).SpecialCells(xlCellTypeVisible, 12)
    Plage.Copy Cells(Derlig + 1, 1)
    Plage.Delete Shift:=xlUp
    .Range("A1:B1").AutoFilter
End With
End Sub

Testé sur Excel 2007, j'espère que ça passe sur Excel 2003 ... (aucune idée 😱)

Bien à toi,

mth

Edit: 🙂 🙂 Coucou Hubert 🙂 🙂
Arf, plus adapté, et plus efficace aussi 🙂 🙂
Merci à toi 🙂
Bisous,
m
 

Pièces jointes

Dernière édition:
Re : Trier croisant en omettant les zeros

Bonjour,

Coucou, Mireille 🙂🙂

Une autre variante...

Code:
Sub Macro2()
Columns("B:B").Replace What:="0", Replacement:="9^9", LookAt:=xlWhole
Range("A1:B" & [A65000].End(xlUp).Row).Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlYes
Columns("B:B").Replace What:="9^9", Replacement:="0", LookAt:=xlWhole
End Sub

Peut-être plus adapté à 2003

Bonne journée
 
Re : Trier croisant en omettant les zeros

bonjour

Merci pour votre aide.
Je pense que je me suis trompé dans ma demande.
Pardon
J'aimerai trier en ordre croisant la plage A5:AF164
en faite j'aimerais trier la colone service par odre alphabéthique sanque les cellues à zero soient prises en compte.
je vous mais fichier joint.

par avance mercie de votre aide
 

Pièces jointes

Re : Trier croisant en omettant les zeros

Bonjour,

Dans ton fichier, il y a un petit problème....

Tu as plus de données en colonnes que tu n'en de titres...

Lorsque tu cliques sur la cellule A4, et que tu fais "Données/Trier", par défaut, Excel "DEVRAIT" te proposer "Service", soit la valeur de la cellule A4....

Cependant, Excel te propose la valeur de la cellule A5, parce que ton tableau va bien plus loin que ta ligne de titres....

Mets un nom à chaque en-tête, et peut-être que tes soucis n'en seront plus...

Si pas ça, reviens...

Bon W-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

  • Question Question
XL 2021 listbox
Réponses
18
Affichages
736
T
  • Question Question
Réponses
1
Affichages
2 K
Réponses
29
Affichages
3 K
L
Réponses
2
Affichages
1 K
L
D
Réponses
4
Affichages
1 K
M
  • Question Question
Réponses
4
Affichages
1 K
Mirguy23
M
C
  • Question Question
Réponses
23
Affichages
5 K
Retour