none42
Messages postés4Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention29 octobre 2008
-
28 oct. 2008 à 11:56
none42
Messages postés4Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention29 octobre 2008
-
29 oct. 2008 à 16:58
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 erreure : "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.
none42
Messages postés4Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention29 octobre 2008 28 oct. 2008 à 13:41
Alors
gillardg : je suis débutant en VBA et je n'ai pas encore utilisé la commande DIR
nhervagault : j'ai bien mis la référence windows scripting dans mon projet VBA
none42
Messages postés4Date d'inscriptionmardi 28 octobre 2008StatutMembreDernière intervention29 octobre 2008 29 oct. 2008 à 16:58
C'était prévu de mettre la solution mais je n'étais plus au boulot
La voiçi :
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)