Générer liste de fichiers dans une listbox

Bonjour, j'essaye de créer un module de supression de fichier qui passerait par un userform avec de multiples listbox ... chaque listbox générerait sa liste de fichier provenant chacuns de dossiers spécifiques.

Je n'arrive pas à trouver un code cohérent me permettant de générer ces fameuses listes.

J'y arrive depuis Userform_initialize() mais ca ne génère seulement des fichiers dans la listbox1.

Bref je me demande aussi comment faire pour sélectionner un fichier puis le supprimer directement depuis VBA.

je vous envoie un screenshot de mon userform pour vous aider à comprendre.

Voici ou j'en suis .... je crois que je ne suis pas sur la bonne route ...

Option Explicit
Private Sub UserForm_Initialize()
Dim repertoire As String, fichier As String
Dim repertoire2 As String, fichier2 As String
Dim repertoire3 As String, fichier3 As String
Dim repertoire4 As String, fichier4 As String
Dim repertoire5 As String, fichier5 As String
Dim repertoire6 As String, fichier6 As String
repertoire = "C:\chemin\"
repertoire2 = "C:\chemin\"
repertoire3 = "C:\chemin\
repertoire4 = "C:\chemin\"
repertoire5 = "C:\chemin\"
repertoire6 = "C:\chemin\"
fichier = Dir(repertoire & "*.xlsx")
fichier2 = Dir(repertoire2 & "*.xlsx")
fichier3 = Dir(repertoire3 & "*.pdf")
fichier4 = Dir(repertoire4 & "*.pdf")
fichier5 = Dir(repertoire5 & "*.pdf")
fichier6 = Dir(repertoire6 & "*.pdf")
Do While fichier <> ""
    ListBox1.AddItem fichier
    fichier = Dir
Loop
Do While fichier2 <> ""
    ListBox2.AddItem fichier
    fichier2 = Dir
Loop
Do While fichier3 <> ""
    ListBox3.AddItem fichier
    fichier3 = Dir
Loop
Do While fichier4 <> ""
    ListBox4.AddItem fichier
    fichier4 = Dir
Loop
Do While fichier5 <> ""
    ListBox5.AddItem fichier
    fichier5 = Dir
Loop
Do While fichier6 <> ""
    ListBox6.AddItem fichier
    fichier6 = Dir
Loop
End Sub

Merci d'avance pour le coup de main!

Bonjour,

tu ne peu pas imbriquer tes Dir... déplace tes lignes d'initialisation juste avant tes boucles .. :

(..)
fichier2 = Dir(repertoire2 & "*.xlsx")
Do While fichier2 <> ""
    ListBox2.AddItem fichier
    fichier2 = Dir
Loop
fichier3 = Dir(repertoire3 & "*.pdf")
Do While fichier3 <> ""
    ListBox3.AddItem fichier
    fichier3 = Dir
Loop
(..)

Merci pour la réponse ca a fonctionné à merveille!

Pour de futures références voici le code complet qui fonctionne.

Je sais qu'il y a surement beaucoup de données qui auraient pu être stockées dans des variables mais pour démontrer le code je crois que c'est plus simple pour ce forum.

Donc voici un code pour générer de multiples liste de fichiers dans plusieurs ListBox dans un même formulaire puis les supprimer directement depuis VBA.

Option Explicit
Private Sub button_load_Click()
' Non trouvée :p
End Sub
Private Sub CommandButton1_Click()
Call KillFileInFolder1
End Sub
Private Sub CommandButton2_Click()
Call KillFileInFolder2
End Sub
Private Sub CommandButton3_Click()
Call KillFileInFolder3
End Sub
Private Sub CommandButton4_Click()
Call KillFileInFolder4
End Sub
Private Sub CommandButton5_Click()
Call KillFileInFolder5
End Sub
Private Sub CommandButton6_Click()
Call KillFileInFolder6
End Sub
Private Sub UserForm_Initialize()
Dim repertoire As String, fichier As String
Dim repertoire2 As String, fichier2 As String
Dim repertoire3 As String, fichier3 As String
Dim repertoire4 As String, fichier4 As String
Dim repertoire5 As String, fichier5 As String
Dim repertoire6 As String, fichier6 As String
repertoire = "C:\chemin\Devis\"
repertoire2 = "C:\chemin\Facture\"
repertoire3 = "C:\chemin\Devis\PDF\"
repertoire4 = "C:\chemin\Facture\PDF\"
repertoire5 = "C:\chemin\Devis\PDF\SansPrix\"
repertoire6 = "C:\chemin\Facture\PDF\SansPrix\"
fichier = Dir(repertoire & "*.xlsx")
Do While fichier <> ""
    ListBox1.AddItem fichier
    fichier = Dir
Loop
fichier2 = Dir(repertoire2 & "*.xlsx")
Do While fichier2 <> ""
    ListBox2.AddItem fichier2
    fichier2 = Dir
Loop
fichier3 = Dir(repertoire3 & "*.pdf")
Do While fichier3 <> ""
    ListBox3.AddItem fichier3
    fichier3 = Dir
Loop
fichier4 = Dir(repertoire4 & "*.pdf")
Do While fichier4 <> ""
    ListBox4.AddItem fichier4
    fichier4 = Dir
Loop
fichier5 = Dir(repertoire5 & "*.pdf")
Do While fichier5 <> ""
    ListBox5.AddItem fichier5
    fichier5 = Dir
Loop
fichier6 = Dir(repertoire6 & "*.pdf")
Do While fichier6 <> ""
    ListBox6.AddItem fichier6
    fichier6 = Dir
Loop
End Sub
Sub KillFileInFolder1()
Dim KillAccept1$
Dim KillFile1 As String
KillFile1 = "C:\chemin\Devis\" & Me.ListBox1.Value
KillAccept1 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox1.Value & " ?", vbYesNo + vbCritical)
    If KillAccept1 = vbYes Then
If Len(Dir$(KillFile1)) > 0 Then
    SetAttr KillFile1, vbNormal
    End If
     Kill KillFile1
       Unload Me
    VBAProject.UserForm16.Show
End If
End Sub
 Sub KillFileInFolder2()
Dim strRowSource As String
Dim KillFile2 As String
Dim KillAccept2$
KillFile2 = "C:\chemin\Facture\" & Me.ListBox2.Value
KillAccept2 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox2.Value & " ?", vbYesNo + vbCritical)
    If KillAccept2 = vbYes Then
     Kill KillFile2
      Unload Me
    VBAProject.UserForm16.Show
End If
End Sub
 Sub KillFileInFolder3()
Dim strRowSource As String
Dim KillFile3 As String
Dim KillAccept3$
KillFile3 = "C:\chemin\Devis\PDF\" & Me.ListBox3.Value
KillAccept3 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox3.Value & " ?", vbYesNo + vbCritical)
    If KillAccept3 = vbYes Then
    Kill KillFile3
    Unload Me
    VBAProject.UserForm16.Show
End If
End Sub
Sub KillFileInFolder4()
Dim strRowSource As String
Dim KillFile4 As String
Dim KillAccept4$
KillFile4 = "C:\chemin\Facture\PDF\" & Me.ListBox4.Value
KillAccept4 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox4.Value & " ?", vbYesNo + vbCritical)
    If KillAccept4 = vbYes Then
    Kill KillFile4
    Unload Me
    VBAProject.UserForm16.Show
End If
End Sub
Sub KillFileInFolder5()
Dim strRowSource As String
Dim KillFile5 As String
Dim KillAccept5$
KillFile5 = "C:\chemin\Devis\PDF\SansPrix\" & Me.ListBox5.Value
KillAccept5 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox5.Value & " ?", vbYesNo + vbCritical)
    If KillAccept5 = vbYes Then
    Kill KillFile5
    Unload Me
    VBAProject.UserForm16.Show
End If
End Sub
  Sub KillFileInFolder6()
Dim strRowSource As String
Dim KillFile6 As String
Dim KillAccept6$
KillFile6 = "C:\chemin\Facture\PDF\SansPrix\" & Me.ListBox6.Value
KillAccept6 = MsgBox("Voulez-vous vraiment supprimer le fichier: " & Me.ListBox6.Value & " ?", vbYesNo + vbCritical)
    If KillAccept6 = vbYes Then
    Kill KillFile6
    Unload Me
    VBAProject.UserForm16.Show
End If
End Sub

Excusez les doublons je ne suis pas un pro alors je me débrouille comme je peux!

Rechercher des sujets similaires à "generer liste fichiers listbox"