Affichage liste de fichier et image dans user Form

Bonjour,

Contrairement au velo, j'oublie le vba plus vite que la musique.

Je voulais dépoussiérer un vieux fichier excel pour le rendre plus efficient.

Jusqu'a maintenant j'allimentais mon userform avec une liste générer par une macro qui allait lire le nom des fichiers dans le "répertoire image". Les noms étaient

réecrit sur une nouvelle feuille.

Donc je voulais refaire ce chargement de la liste sans avoir à réécrire sur une feuille.

Merci pour votre aide

bonjour eldlede

Sans écrire dans une feuille on peut écrire dans un fichier

Exemple

Sub ListingFichiers()
Dim Rep As String, Fichier As String
Dim i As Integer, Log As String
Dim Nc, Cel As Range
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'Rep = Environ("userprofile")   
Rep = ActiveWorkbook.Path & "\Images\GIF\" 
If fso.FolderExists(Rep) Then
Log = Rep & Replace(Replace(Replace(Format(Date, "DD/MM/YYYY HH:MM:SS"), "/", ""), ":", ""), " ", "") & ".log"
Open Log For Output As #1
Fichier = Dir(Rep & "\*.*")

Do While Fichier <> ""
    Print #1, Rep & Fichier
    Fichier = Dir
Loop
Close #1
Else
  Debug.Print "erreur dossier" & Rep
End If
Debug.Print Log
Set fso=Nothing
End Sub

Pour remplir une listbox à partir d'une feuille

    Dim nbRows, sh
    Set sh = ThisWorkbook.Sheets("Image")
    nbRows = sh.Range("A" & sh.Rows.Count).End(xlUp).Row
    ListBox1.Clear
    For lRow = 2 To nbRows
            ListBox1.AddItem sh.Range("A" & lRow)
    Next

Pour remplir Une listbox à partir d'un fichier

Listbox1.Clear
Open Log For Input as #1
do While not EOF(1)
Line Input #1, ligne
Listbox1.AddItem ligne
Loop
Close #1

Merci pour l éventail de tes réponses, je test cela rapidement

Bonjour Scraper,

Merci pour ces codes, mais je suis complètement rouillé,

Comment j'appelle la liste des fichiers dans ma liste box? c'est bien les résultat du fso que l'on doit charger dans la liste box ?

Merci pour ton aide

Bonjour

Il faut remonter en public la déclaration de la variable log qui construit le nom du fichier résultat ou déclarer function listefichiers au lieu de sub listefichiers et renvoyer le nom complet par l'instruction listefichiers=log ainsi tu pourras recharger la listbox par lecture du log avec la méthode open log for input as #1 (solution déjà proposée). Excuses pour cette réponse depuis mon smartphone un peu illisible : pas trouvé les retour chariot)

tu m'as perdu

Dans mon modul1 j'ai mis la function "listingfichier"

Public log

Function ListingFichiers()
Dim Rep As String, Fichier As String
Dim i As Integer, log As String
Dim Nc, Cel As Range
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'Rep = Environ("userprofile")
Rep = ActiveWorkbook.Path & "\Images\GIF\"
If fso.FolderExists(Rep) Then
log = Rep & Replace(Replace(Replace(Format(Date, "DD/MM/YYYY HH:MM:SS"), "/", ""), ":", ""), " ", "") & ".log"
Open log For Output As #1
Fichier = Dir(Rep & "\*.*")

Do While Fichier <> ""
    Print #1, Rep & Fichier
    Fichier = Dir
Loop
Close #1
Else
  Debug.Print "erreur dossier" & Rep
End If
Debug.Print log
Set fso = Nothing
End Function

En option public j'ai mis log mais c'est une variable de type boolean ?

Et dans mon userform

Private Sub UserForm_Initialize()
' Initialisation de la liste de la ComboBox1
' a = Range("Image").Count
ListBox1.RowSource = log '????
ListBox1.ListIndex = 1

End Sub

Je pense que j'ai du louper quelques étapes.

Merci pour ton aide

Bonne réception

Function ListingFichiers()
Dim Rep As String, Fichier As String
Dim i As Integer, log As String
Dim Nc, Cel As Range
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'Rep = Environ("userprofile")
Rep = ActiveWorkbook.Path & "\Images\GIF\"
If fso.FolderExists(Rep) Then
log = Rep & Replace(Replace(Replace(Format(Date, "DD/MM/YYYY HH:MM:SS"), "/", ""), ":", ""), " ", "") & ".log"
Open log For Output As #1
Fichier = Dir(Rep & "\*.*")

Do While Fichier <> ""
    Print #1, Rep & Fichier
    Fichier = Dir
Loop
Close #1
Else
  Debug.Print "erreur dossier" & Rep
End If
Debug.Print log
Set fso = Nothing
ListingFichiers = log
End Function
Et dans ton userform
Private Sub UserForm_Initialize()
Dim ligne as String
Dim fichier_log
fichier_log = ListingFichiers
Listbox1.Clear
open fichier_log for input as #1
While not EOF(1)
  Line Input #1, ligne
  Listbox1.AddItem ligne
Wend
Close #1
End Sub

Bonjour Scraper,

Je viens de tester ta solution,

Et ca fonctionne parfaitement, il faut que je travail un peu pour l'affichage des images et n'avoir que le nom du fichier.

Merci,

Rechercher des sujets similaires à "affichage liste fichier image user form"