Créer dossier pour chaque fichier généré

Bonjour,

Je dispose d'une macro qui génère un fichier par ligne dans une base de données.

En l'état actuel des choses, je crée un dossier "général" dans lequel tous les fichiers sont stockés dedans.

Seulement, j'aimerais que chaque fichier soit stockés dans un dossier propre afin d'y mettre d'autres fichiers par la suite:

Structure actuelle : Dossier principal/(Fichier1, Fichier2, ....)

Structure désirée: Dossier principal/

Dossier Fichier 1 / Fichier 1

Dossier Fichier 2 / Fichier 2

Voici la partie du code s'occupant de la sauvegarde:

            If Dir(Path & "\Output" & "\Main_Folder" & "\rID_fichier.value", vbDirectory) <> "" Then

            wkbTemp.SaveAs Filename:=Path & "\Output" & "\Main_Folder\" & "rID_fichier.value\" & rNomFichier.Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            wkbTemp.Close SaveChanges:=False
        Else
            FSO.CreateFolder (Path & "\Output" & "\Main_Folder" & "\rID_fichier.value")
            wkbTemp.SaveAs Filename:=Path & "\Output" & "\Main_Folder\" & "rID_fichier.value\" & rNomFichier.Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            wkbTemp.Close SaveChanges:=False
        End If
        

J'obtiens l'erreur "Path not found". Sauriez-vous me dire ce qui est faux?

Merci beaucoup pour votre aide

Bonjour

comme ça je ne vois pas d'erreur.... mais ne sachant pas ce que contient la variable path qui peut-être d’ailleurs un nom réserver... utilise un autre nom .... et curieux les noms de sous dossiers

Fred

Bonjour,

Merci pour ta réponse fred. J'ai essayé de changer le nom de "Path" mais ça n'a pas fonctionné.

La variable Path est : Path = wb.Path

Re

fournit un fichier test cela sera plus simple...

fred

petite question bête as tu verifié que le dossier

Path & "\Output" & "\Main_Folder"

existe déjà .????

fred

Bonjour Fred,

Ce fichier incluant des info confidentielles je ne peux malheureusement pas le partager.

sFoldername = (Path & "\Output" & "\Main Folder")
            If Dir(sFoldername & "\" & rID_fichier.value, vbDirectory) <> "" Then

            wkbTemp.SaveAs Filename:=sFoldername & "\" & rID_fichier.value & "\" & rNomFichier.Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            wkbTemp.Close SaveChanges:=False
        Else
            FSO.CreateFolder (sFoldername & "\" & rID_fichier.value)
            wkbTemp.SaveAs Filename:=sFoldername & "\" & rID_fichier.value & "\" & rNomFichier.Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
            wkbTemp.Close SaveChanges:=False
        End If

J'ai refait un test cela fonctionne jusqu'a la création du sous-dossier mais ensuite, sauver le fichier ne fonctionne pas. ça bug au moment du "SaveAs" alors que le sous dossier se crée corretement... Aurais-tu une idée de pourquoi?

(A savoir que : Output et Main folder sont des dossiers déjà existants et rID_fichier.value & rNomFichier.Value sont des range déclarés qui contiennent des valeurs dans une feuille excel !

wkbTemp.SaveAs Filename:=sFoldername & "\" & rID_fichier.value & "\" & rNomFichier.Value, FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False

J'ai essayé d'enlever la partie - & "\" & - et le fichier s'est sauvé mais pour une raison que j'ignore, on dirait qu'il ne rentre pas dans le dossier pour sauvegarder. J'ai même essayé un texte "d" à la place du nom du fichier mais rien n'y fait....Aurais-tu une idée de pourquoi?

Bonjour à tous,

C'est résolu.

Pour ceux comme moi qui un jour auront ce problème : Vérifiez que le nom de vos dossiers/fichiers ne contiennent pas d'espace. VBA les enlève automatiquement quand il sauvegarde mais si votre valeur source contient l'espace, il ne sait pas ou sauver donc boom : erreur !

Bonne journée.

Bonjour

tant Mieux...

Fred

Rechercher des sujets similaires à "creer dossier chaque fichier genere"