Bonjour,
Je souhaite créer un bouton qui me permet de Sélectionner des fichiers (images), et de les "stocker" ("Nom Image","Nom Fichier","Dossier") dans une table tblImages.
Pour cela, j'ai trouvé un premier code (source: grenier.self-access) qui me permet de sélectionner plusieurs fichiers via la boite dialogue windows:
Ce code affiche une liste strListe (via un msgbox) qui reprend le chemin (l'emplacement windows) de chaque fichier sélectionné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 ' --- ' SELECTION MULTIPLE DE FICHIERS ' --- ' Sub SelectionFichier() Dim fd As Office.FileDialog Dim varFichier As Variant Dim strListe As String ' Créer un objet FileDialog Set fd = Application.FileDialog(msoFileDialogOpen) ' Titre de la boîte de dialogue fd.Title = "Sélectionnez un ou plusieurs fichiers..." ' Autoriser la sélection multiple fd.AllowMultiSelect = True ' Définir les types de fichiers autorisés fd.filters.Clear fd.filters.Add "Tous les fichiers", "*.*" fd.filters.Add "Images", "*.gif; *.jpg; *.jpeg; *.png; *.bmp; *.arw; *.dng" fd.filters.Add "Vidéos", "*.mp4; *.mov" ' Présélectionner le 2ème type de fichier (images) fd.FilterIndex = 2 ' Pas de nom par défaut fd.InitialFileName = "D:\Gestion Entreprise\Import\" ' Afficher la boîte de dialogue If fd.Show() Then ' Lister les chemins de tous les fichiers sélectionnés strListe = "" For Each varFichier In fd.SelectedItems strListe = strListe & varFichier & vbCrLf Next ' Afficher le résultat MsgBox "Vous avez sélectionné les fichiers suivants : " _ & vbCrLf & strListe, vbInformation End If Set fd = Nothing End Sub
Ce que je souhaite, c'est ajouter ces chemins sous forme d'enregistrement dans une table.
Pour ajouter des ces enregistrement dans une table, j'ai trouvé un autre code (source: grenier.self-access) :
Donc le problème est que le deuxième code stocke TOUTES les images d'un dossier. Or, je souhaite que ça charge UNIQUEMENT les images sélectionné par le code précédemment en strListe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 ' --- ' CHARGER TOUTES LES IMAGES D'UN DOSSIER DANS LA BASE ' --- ' Entrée : strDossier <- Nom du dossier à parcourir. ' strExtension <- Extension des fichiers images. ' Sub ChargerImages( _ ByVal strDossier As String, _ Optional ByVal strExtension As String = "*.jpg") Dim rst As DAO.Recordset Dim strFichier As String Dim intImages As Integer ' Ajouter un à la fin du dossier, si nécessaire strDossier = AddBackslash(strDossier) ' Ouvrir la table Set rst = CurrentDb.OpenRecordset("tblImages", dbOpenDynaset) ' Lecture des images du dossier intImages = 0 strFichier = Dir(strDossier & strExtension, vbNormal) While strFichier <> "" ' Ajouter l'image dans la table rst.AddNew rst("Nom Image") = FileNameWithoutExt(strFichier) rst("Nom Fichier") = strFichier rst("Dossier") = strDossier rst.Update intImages = intImages + 1 ' On passe au fichier suivant strFichier = Dir Wend
Je pense que c'est plus particulièrement ces lignes qui bouclent sur l'ensemble des fichiers d'un dossier alors qu'il faudrait que ça boucle que sur les fichiers selectionnés:
Je ne sais pas trop comment m'y prendre, je vous remercie d'avance pour vos remarques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ' Lecture des images du dossier intImages = 0 strFichier = Dir(strDossier & strExtension, vbNormal) While strFichier <> ""
zkunk
Partager