Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion none42
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

none42

Guest
Salut à tous !

Voilà, je suis en stage et depuis peu je fais du VBA Excel.

Je suis sur une macro permettant de suivre les évolutions de différents fichiers.

Je vous explique en gros ce que je veux faire :
Dans un dossier "Demande de modification", j'ai plusieurs sous-dossiers nommés "référence_année_mois_jour" et dans ces sous-dossiers un fichier type Excel nommé de la même façon que précédement.

Voici le début de mon code :

Sub LMAJ()

Dim objFSO, objDossier
Dim Chemin As String
....

Chemin = ....
Set objFSO = CreateObject("Scripting.FolderSystemObject")
'Ouvrir un répertoire en créant un objet Folder
Set objDossier = objFSO.GetFolder(Chemin)

If (objDossier.Folders.Count > 0) Then
For Each Dossier In objDossier.Folders
NomDossier = Dossier.Name
...

J'ai une erreur 429 qui s'affiche quand je suis sur la ligne "Set objFSO = CreateObject("Scripting.FolderSystemObject")" quand le code est sur une feuille.

Quand le code est dans un module, j'ai une autre erreur : "Le composant active X ne peut pas créer l'objet".

J'ai changer le mot "Folder" par "File" pour avoir les noms de fichiers dans "Chemin" et tout semble marcher correctement.

Merci de me trouver une astuce, car je ne sais plus où chercher.

Arnaud
 
Re : Erreur FSO

Bonjour Arnaud,

FolderSystemObject n'existe tout simplement pas.

Pour travailler sur les dossiers et ou fichiers avec fso il faut utiliser FileSystemObject.

Mais tout ceci n'est pas à proprement parler du VBA mais une technologie de script, vbScript.

Tu trouveras plein d'exemples en faisant une recherche Google sur les techniques de manipulation de fichiers et répertoire pas fso.

En VBA on emploie souvent la l'instruction ou la fonction Dir()

A bientôt
 
Re : Erreur FSO

Voici la solution :

Sub LMAJ()

Dim objFSO As Scripting.FileSystemObject

Dim objDossier As Scripting.Folder
Dim objFichier

Dim Chemin As String
Dim CheminFichier As String
Dim NomFichier As String
Dim NomDossier As String

Chemin = ...
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDossier = objFSO.GetFolder(Chemin)

For Each Dossier In objDossier.SubFolders
NomDossier = Dossier.Name
CheminFichier = Chemin & NomDossier & "\"
Set objFichier = objFSO.GetFolder(CheminFichier)

For Each Fichier In objFichier.Files
...

Merci d'avoir répondu au post !

Arnaud
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
37
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…