Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Trier une liste VBA par ordre alphabétique

5 réponses
Avatar
Sunburn
Bonjour,
est-il possible de trier une liste ?
voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
fichiers PDF selon des critères de recherche. J'en suis très content, mais
est-il possible d'organiser cette liste par ordre alphabétique ?
Je vous remercie.
YANN
---
Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object
Chemin = ThisWorkbook.Path
ActiveSheet.ListBox1.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
With UserForm3.ListBox1
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
.AddItem F.Name
.List(.ListCount - 1, 1) = F.Path
End If
Next
End With
End Sub
-----

5 réponses

Avatar
Daniel.C
Bonjour.

Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object, Ligne As Long
Application.ScreenUpdating = False
Sheets.Add
Chemin = ThisWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
[A:B].Sort key1:=Range("A1"), order1:=xlAscending
With UserForm3.ListBox1
For Each c In Range("A1", Range("A65000").End(xlUp))
.AddItem c.Value
.List(.ListCount - 1, 1) = c.Offset(, 1)
Next c
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
Cells(65000, 1).End(xlUp).Offset(1) = F.Name
Cells(65000, 2).End(xlUp).Offset(1) = F.Path
End If
Next
End Sub

Daniel

Bonjour,
est-il possible de trier une liste ?
voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
fichiers PDF selon des critères de recherche. J'en suis très content, mais
est-il possible d'organiser cette liste par ordre alphabétique ?
Je vous remercie.
YANN
---
Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object
Chemin = ThisWorkbook.Path
ActiveSheet.ListBox1.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
With UserForm3.ListBox1
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
.AddItem F.Name
.List(.ListCount - 1, 1) = F.Path
End If
Next
End With
End Sub
-----


Avatar
Sunburn
daniel,
ben, en fait, chez moi, ça cré une liste non pas dans ma listbox qui
apparait vierge, mais sur ma page.
moi je voudrais la liste en direct dans ma listbox.
c'est pas possible ?
merci.
yann

"Daniel.C" a écrit :

Bonjour.

Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object, Ligne As Long
Application.ScreenUpdating = False
Sheets.Add
Chemin = ThisWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
[A:B].Sort key1:=Range("A1"), order1:=xlAscending
With UserForm3.ListBox1
For Each c In Range("A1", Range("A65000").End(xlUp))
.AddItem c.Value
.List(.ListCount - 1, 1) = c.Offset(, 1)
Next c
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
Cells(65000, 1).End(xlUp).Offset(1) = F.Name
Cells(65000, 2).End(xlUp).Offset(1) = F.Path
End If
Next
End Sub

Daniel

> Bonjour,
> est-il possible de trier une liste ?
> voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
> fichiers PDF selon des critères de recherche. J'en suis très content, mais
> est-il possible d'organiser cette liste par ordre alphabétique ?
> Je vous remercie.
> YANN
> ---
> Sub RemplirListbox()
> 'Credit : JB
> Dim Fich As String, Chemin As String
> Dim Dossier As Object
> Chemin = ThisWorkbook.Path
> ActiveSheet.ListBox1.Clear
> Set fso = CreateObject("Scripting.FileSystemObject")
> Set Dossier = fso.getfolder(Chemin)
> Lit_dossier Dossier
> End Sub
> Sub Lit_dossier(ByRef Dossier)
> 'Credit : JB
> For Each d In Dossier.SubFolders
> Lit_dossier d
> Next
> With UserForm3.ListBox1
> For Each F In Dossier.Files
> If Right(F.Name, 4) = ".pdf" Then
> .AddItem F.Name
> .List(.ListCount - 1, 1) = F.Path
> End If
> Next
> End With
> End Sub
> -----





Avatar
Daniel.C
1. j'ajoute une feuille.
2. je copie les onfos sur la feuille
3. je trie les infos de la feuille
4. je copie les infos triées dans la listbox.
5. je supprime la feuille.
Si ce n'est pas clair, je t'envoie un classeur.
Daniel

daniel,
ben, en fait, chez moi, ça cré une liste non pas dans ma listbox qui
apparait vierge, mais sur ma page.
moi je voudrais la liste en direct dans ma listbox.
c'est pas possible ?
merci.
yann

"Daniel.C" a écrit :

Bonjour.

Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object, Ligne As Long
Application.ScreenUpdating = False
Sheets.Add
Chemin = ThisWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
[A:B].Sort key1:=Range("A1"), order1:=xlAscending
With UserForm3.ListBox1
For Each c In Range("A1", Range("A65000").End(xlUp))
.AddItem c.Value
.List(.ListCount - 1, 1) = c.Offset(, 1)
Next c
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
Cells(65000, 1).End(xlUp).Offset(1) = F.Name
Cells(65000, 2).End(xlUp).Offset(1) = F.Path
End If
Next
End Sub

Daniel

Bonjour,
est-il possible de trier une liste ?
voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
fichiers PDF selon des critères de recherche. J'en suis très content, mais
est-il possible d'organiser cette liste par ordre alphabétique ?
Je vous remercie.
YANN
---
Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object
Chemin = ThisWorkbook.Path
ActiveSheet.ListBox1.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
With UserForm3.ListBox1
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
.AddItem F.Name
.List(.ListCount - 1, 1) = F.Path
End If
Next
End With
End Sub
-----









Avatar
Sunburn
euh, je veux bien le classeur, car il ne cré pas de feuille chez moi.
j'ai Excel version 2003, SP3.
donc ça vient ptèt de là.
yann

"Daniel.C" a écrit :

1. j'ajoute une feuille.
2. je copie les onfos sur la feuille
3. je trie les infos de la feuille
4. je copie les infos triées dans la listbox.
5. je supprime la feuille.
Si ce n'est pas clair, je t'envoie un classeur.
Daniel

> daniel,
> ben, en fait, chez moi, ça cré une liste non pas dans ma listbox qui
> apparait vierge, mais sur ma page.
> moi je voudrais la liste en direct dans ma listbox.
> c'est pas possible ?
> merci.
> yann
>
> "Daniel.C" a écrit :
>
>> Bonjour.
>>
>> Sub RemplirListbox()
>> 'Credit : JB
>> Dim Fich As String, Chemin As String
>> Dim Dossier As Object, Ligne As Long
>> Application.ScreenUpdating = False
>> Sheets.Add
>> Chemin = ThisWorkbook.Path
>> Set fso = CreateObject("Scripting.FileSystemObject")
>> Set Dossier = fso.getfolder(Chemin)
>> Lit_dossier Dossier
>> [A:B].Sort key1:=Range("A1"), order1:=xlAscending
>> With UserForm3.ListBox1
>> For Each c In Range("A1", Range("A65000").End(xlUp))
>> .AddItem c.Value
>> .List(.ListCount - 1, 1) = c.Offset(, 1)
>> Next c
>> Application.DisplayAlerts = False
>> ActiveSheet.Delete
>> Application.DisplayAlerts = True
>> End With
>> Application.ScreenUpdating = True
>> End Sub
>> Sub Lit_dossier(ByRef Dossier)
>> 'Credit : JB
>> For Each d In Dossier.SubFolders
>> Lit_dossier d
>> Next
>> For Each F In Dossier.Files
>> If Right(F.Name, 4) = ".pdf" Then
>> Cells(65000, 1).End(xlUp).Offset(1) = F.Name
>> Cells(65000, 2).End(xlUp).Offset(1) = F.Path
>> End If
>> Next
>> End Sub
>>
>> Daniel
>>
>>> Bonjour,
>>> est-il possible de trier une liste ?
>>> voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
>>> fichiers PDF selon des critères de recherche. J'en suis très content, mais
>>> est-il possible d'organiser cette liste par ordre alphabétique ?
>>> Je vous remercie.
>>> YANN
>>> ---
>>> Sub RemplirListbox()
>>> 'Credit : JB
>>> Dim Fich As String, Chemin As String
>>> Dim Dossier As Object
>>> Chemin = ThisWorkbook.Path
>>> ActiveSheet.ListBox1.Clear
>>> Set fso = CreateObject("Scripting.FileSystemObject")
>>> Set Dossier = fso.getfolder(Chemin)
>>> Lit_dossier Dossier
>>> End Sub
>>> Sub Lit_dossier(ByRef Dossier)
>>> 'Credit : JB
>>> For Each d In Dossier.SubFolders
>>> Lit_dossier d
>>> Next
>>> With UserForm3.ListBox1
>>> For Each F In Dossier.Files
>>> If Right(F.Name, 4) = ".pdf" Then
>>> .AddItem F.Name
>>> .List(.ListCount - 1, 1) = F.Path
>>> End If
>>> Next
>>> End With
>>> End Sub
>>> -----
>>
>>
>>





Avatar
Daniel.C
La feuille, tu ne peux pas la voir, parce que l'affichage écran est
déselecté, et qu'elle est supprimée après usage.
http://cjoint.com/?lgq2owW2pe
Daniel

euh, je veux bien le classeur, car il ne cré pas de feuille chez moi.
j'ai Excel version 2003, SP3.
donc ça vient ptèt de là.
yann

"Daniel.C" a écrit :

1. j'ajoute une feuille.
2. je copie les onfos sur la feuille
3. je trie les infos de la feuille
4. je copie les infos triées dans la listbox.
5. je supprime la feuille.
Si ce n'est pas clair, je t'envoie un classeur.
Daniel

daniel,
ben, en fait, chez moi, ça cré une liste non pas dans ma listbox qui
apparait vierge, mais sur ma page.
moi je voudrais la liste en direct dans ma listbox.
c'est pas possible ?
merci.
yann

"Daniel.C" a écrit :

Bonjour.

Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object, Ligne As Long
Application.ScreenUpdating = False
Sheets.Add
Chemin = ThisWorkbook.Path
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
[A:B].Sort key1:=Range("A1"), order1:=xlAscending
With UserForm3.ListBox1
For Each c In Range("A1", Range("A65000").End(xlUp))
.AddItem c.Value
.List(.ListCount - 1, 1) = c.Offset(, 1)
Next c
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End With
Application.ScreenUpdating = True
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
Cells(65000, 1).End(xlUp).Offset(1) = F.Name
Cells(65000, 2).End(xlUp).Offset(1) = F.Path
End If
Next
End Sub

Daniel

Bonjour,
est-il possible de trier une liste ?
voici ma macro (merci à Daniel d'ailleur), qui me permet de lister mes
fichiers PDF selon des critères de recherche. J'en suis très content,
mais est-il possible d'organiser cette liste par ordre alphabétique ?
Je vous remercie.
YANN
---
Sub RemplirListbox()
'Credit : JB
Dim Fich As String, Chemin As String
Dim Dossier As Object
Chemin = ThisWorkbook.Path
ActiveSheet.ListBox1.Clear
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossier = fso.getfolder(Chemin)
Lit_dossier Dossier
End Sub
Sub Lit_dossier(ByRef Dossier)
'Credit : JB
For Each d In Dossier.SubFolders
Lit_dossier d
Next
With UserForm3.ListBox1
For Each F In Dossier.Files
If Right(F.Name, 4) = ".pdf" Then
.AddItem F.Name
.List(.ListCount - 1, 1) = F.Path
End If
Next
End With
End Sub
-----