tri qui beug

excelo

XLDnaute Occasionnel
Bonjour ou plutôt bonsoir tout le monde,

je cherche à trier un tableau, mais le souci c'est que le tri ne s'effectue pas correctement , j'ai beau essayer de chercher mais je vous avoue que j'ai tendance à penser qu'il y a un beug, je ne comprends pas, pouvez vous me dire ce que vous en penser?
 

Pièces jointes

  • beug tri.zip
    9.5 KB · Affichages: 38

kjin

XLDnaute Barbatruc
Re : tri qui beug

bonsoir,
Sélectionne toute la plage et fait un tri en ordre décroissant, les cellules vides se retrouveront en bas
Il te reste à faire un tri en ordre croissant de la plage, non vide evidemment
A+
kjin
 

excelo

XLDnaute Occasionnel
Re : tri qui beug

Bonsoir JNP, kjin,

il n'y a ni macro, ni formule dans le tableau mais pourtant il y a bien un beug, mais je ne l'explique pas. je cherche à faire un tri par macro et il m'obtient ce résultat. il me faudrait effacer les lignes vides entre la première ligne du tableau et le début du tri. qu'en pensez vous?
kjin, ta solution est interressante mais je souhaiterai résoudre le problème en évitant de manipuler le tableau, c'est pas que je suis féniant mais c'est tellement plus simple ;-)
JNP, j'ai reproduit le tableau avec demande de tri par macro mais je sais pas si c'est util, je cherche un code qui me permettrait d'effacer les lignes vides.,
je pense que c'est la solution au problème.
merci pour votre aide
 

Pièces jointes

  • beug tri2.zip
    13.8 KB · Affichages: 52

excelo

XLDnaute Occasionnel
Re : tri qui beug

Re bonsoir à tous,
c'est bon le code qui me permet d'effacer les lignes vide est :

Sub Supp_Ligne()
Dim k As Long
Dim C As Range
Set C = Range("A1:IV1").Find("Nom 1", lookat:=xlWhole)
Application.ScreenUpdating = False
If Not C Is Nothing Then
For k = Cells(65536, C.Column).End(xlUp).Row To 2 Step -1
If Cells(k, C.Column) = "" Then Rows(k).Delete
Next
End If
Application.ScreenUpdating = True

End Sub

bonne soirée à tous
 

HIJACK

XLDnaute Junior
Re : tri qui beug

HI!

Code:
Sub effac()

Dim derlign As Long
Dim cont As Long
  

  With ActiveSheet.UsedRange
    derlign = .Cells(.Cells.Count).Row
  End With
  
  For cont = derlign To 1 Step -1
    If WorksheetFunction.CountA(Rows(cont)) = 0 Then
      Rows(cont).Delete
    End If
  Next cont

End Sub

Voila
@+
 

Statistiques des forums

Discussions
312 495
Messages
2 088 964
Membres
103 992
dernier inscrit
Christine 974