aide code VBA

parisiendu24

XLDnaute Nouveau
Bonsoir,

J'ai découvert le langage VBA cette année en cours d'informatique niveau Master.
Je l'utilise régulièrement afin de progresser et aujourd'hui j'ai voulu créer un fichier capable de répertorier tous mes films contenus dans un fichier.
Et je n'y parviens pas!
Il me semble que la fonction Dir est adéquate mais je ne la maîtrise pas du tout.
Mon objectif est donc de pouvoir parcourir le fichier où sont mes films est de prendre le nom de chacun afin de les répertorier sur ma feuille.


D'avance merci!


Laurent
 

Grand Chaman Excel

XLDnaute Impliqué

saya

XLDnaute Nouveau
Re : aide code VBA

Bonjour parisiendu24, le forum,

J'ai déjà eu besoin de parcourir tous les fichiers d'un dossier, et perso, j'avais utilisé FileDialog et l'objet FSO pour indiquer le chemin du fichier :
Code:
dim dosFilm as string
dim FSO, dossier, fichier as object

'ouvre une boite de dialogue permettant d'indiquer le chemin du dossier contenant les films
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show
dosFilm = Application.FileDialog(msoFileDialogFolderPicker).InitialFileName
'on libère la mémoire
Set Repertoire = Nothing

'definition des variables et indication du chemin du dossier contenant les fichiers films
Set FSO = CreateObject("Scripting.FileSystemObject")
Set dossier = FSO.GetFolder(dosFilm)
       
'boucle sur les fichiers films contenus dans le dossier
For Each fichier In dossier.Files
     'là, tu lui indiques d'inscrire à la bonne place Fichier.Name, mais tu auras le nom du film avec l'extension. 
     'Je n'ai pas su lui dire de ne pas mettre l'extension, donc perso, j'avais contourné le pb comme ça : 
     'Left(fichier.name, (Len(fichier.name) - lExtension)) avec lExtension = 4
next

En espérant que ça puisse être une piste pour toi,

Bonne soirée,
Saya
 

saya

XLDnaute Nouveau
Re : aide code VBA

Bonjour à tous,

Excuse moi, parisiendu24, je n'ai pas pu me reco hier soir.

Non, il ne faut pas toucher à cette ligne. En gros, lorsque tu lances le code, il ouvre une fenêtre de navigation te permettant d'indiquer l'emplacement de ton dossier. Il s'agit de la partie :
Code:
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
Repertoire.Show
dosFilm = Application.FileDialog(msoFileDialogFolderPicker).InitialFileName
'on libère la mémoire
Set Repertoire = Nothing

Ton chemin d'accès sera renseigné dans la variable dosFilm. Mais tu ne peux pas faire de boucle for each sur cette variable. Donc on passe par l'objet "FSO" et ses méthode.

En faisant comme ça, ça évite d'avoir à indiquer un chemin d'accès en dur dans le code. Au moins, si un jour tu changes d'emplacement le dossier contenant tes films, tu n'as pas à changer le code pour pouvoir le réutiliser.

Mais si tu veux vraiment spécifier ton chemin d'accès en dur dans le code, il te suffit de supprimer la partie du code que je viens d'indiquer et simplement de renseigner ta variable dosFilm avec ton chemin d'accès (dosFilm = "ton chemin d'accès").

J'espère avoir été un peu plus claire que dans mon message précédent, j'avoue que j'avais peut-être été un peu avare d'explications ^_^;

Bonne journée,
Saya
 

parisiendu24

XLDnaute Nouveau
Re : aide code VBA

Bonjour Saya,

Merci d'avoir pris le temps de me répondre.
Quand j'ai mis ton code dans VBA et que j'ai lancé la macro cela m'a dit qui'l y avait une erreur et m'a donc mis la ligne suivante en jaune:
Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)

Pour faire court, en admettant que je veuille faire apparaître tous mes films dans la feuille "Films" à partir de la cellule "B3" à l'activation de la macro "Archiver", quel sera le code précis? Je te pose la question car je débute et sur ce code je galère très fort. A noter que je bosse sur Office 2011 sur MAC (peut être que ça bloque cette macro mais je dois récupérer mon vieux PC la semaine prochaine).


Merci d'avance


Laurent
 

Discussions similaires

Réponses
5
Affichages
426

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175