tri valeur dans listbox

FullMetalKnet

XLDnaute Nouveau
bonjour,

je souhaiterais trier mes valeurs dans ma listbox par ordre alphabétique

ses valeurs sont dans une feuille nommée "Sites"

mes villes dans la colonne A et mes clients en horizontal

j'avais trouvé une macro pour trier directement sur la feuille en horizontal mais le problème c'est qu'il me prend aussi la valeur de la colonne A

Code:
Sub Tri_Horizontal()
Sheets("Sites").Select

For i = 1 To 100
Rows(i).Select
Selection.Sort Key1:=Rows(i), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
Next i
   
End Sub

est-ce possible de modifier le code pour qu'il me tri les ligne sans la colonne A
ou serait-il plus simple de créer une macro pour trier dans la listbox?

J'espère être assez explicite
 

Pierrot93

XLDnaute Barbatruc
Re : tri valeur dans listbox

Bonjour FullMetal, Skoobi

pour trier ta plage à partir de la colonne B, essaye ainsi :

Code:
Dim i As Long
For i = 1 To Range("B65536").End(xlUp).Row
    Range("B" & i, Range("IV" & i).End(xlToLeft)).Sort Key1:=Range("B" & i), _
        Order1:=xlDescending, Orientation:=xlLeftToRight
Next i

bonne journée
@+
 

FullMetalKnet

XLDnaute Nouveau
Re : tri valeur dans listbox

Merci a Skoobi et Pierrot93 de m'avoir aider!!!

J'ai modifié ton code Pierrot
je préfère un tri ABC que CBA

mais petit soucis

il me met les valeurs de la colonne A dans la B, et les valeurs B dans la A

J'ai donc testé le code pas à pas, j'ai remarqué qu'il me le faisait que sur certaine ligne, alors qu'elles sont toutes sous le même format

pour ne plus avoir de problème j'exécute la macro 2 fois

Bizarre non??
 

Pierrot93

XLDnaute Barbatruc
Re : tri valeur dans listbox

Bonjour,

normal, il y a des cellules pour lesquelles il n'y a aucune valeur à trier, ou bien simplement une valeur en B.... modifie avec ce test....

Code:
Option Explicit
Sub test()
Dim i As Long
For i = 2 To Range("A65536").End(xlUp).Row
    If Range("IV" & i).End(xlToLeft).Column > 2 Then
        Range("B" & i, Range("IV" & i).End(xlToLeft)).Sort Key1:=Range("B" & i), _
            Order1:=xlAscending, Orientation:=xlLeftToRight
    End If
Next i
End Sub

bonne journée
@+
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
607

Statistiques des forums

Discussions
312 764
Messages
2 091 869
Membres
105 084
dernier inscrit
lca.pertus