Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Création conditionnelle d'un répertoire

  • Initiateur de la discussion Initiateur de la discussion pat01200
  • 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 !

pat01200

XLDnaute Occasionnel
Bonjour le forum,

Avant quelques vacances bien méritées (?!?), j'ai un dernier casse-tête à résoudre :
J'ai créé pour une douzaine de collaborateurs un fichier Excel qui en génère une cinquantaine d'autres. Afin d'éviter que ces fichiers ne se baladent n'importe où, ma macro crée un répertoire dans lequel vont se placer automatiquement ces fichiers. Où est le problème, me direz-vous ?
Eh bien le problème, c'est que si j'envoie à mes collaborateurs de quoi générer une ou plusieurs autres séries de fichiers (notamment des mises à jour), le répertoire ayant été créé lors du premier envoi, la ligne de code créant ce répertoire va boguer puisqu'il existe déjà !!!
Voici une partie de ma macro :
Sub Macro1()

MkDir "C:\Nouveau_répertoire"
Pat = ActiveWorkbook.Name
Sheets("Feuil3").Select
Workbooks.Open Filename:="C:\Fichier_type.xls"
Dan = ActiveWorkbook.Name
Sheets("Accueil").Select
Range("E20").Select
ActiveCell.FormulaR1C1 = "DUPONT"
Range("D4").Select
ActiveCell.FormulaR1C1 = "client_Dupont1"
Windows(Pat).Activate
Range("A1:F1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="code-Dupont1"
Range("B2:F501").Select
Selection.Copy
Windows(Dan).Activate
Sheets("Attente").Select
Range("FA2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.DisplayAlerts = False
Sheets("Accueil").Select
Range("C2").Select
ActiveWorkbook.SaveAs Filename:="C:\Nouveau_répertoire\Fichier_client_Dupont1.xls", _
FileFormat:=xlNormal, CreateBackup:=False

Dan = ActiveWorkbook.Name
Range("E20").Select
ActiveCell.FormulaR1C1 = "DUPONT"
Range("D4").Select
ActiveCell.FormulaR1C1 = "client_Dupont2"
Windows(Pat).Activate
Range("A1:F1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="code-Dupont2"
Range("B2:F501").Select
Selection.Copy
Windows(Dan).Activate
Sheets("Attente").Select
Range("FA2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select
Application.DisplayAlerts = False
Sheets("Accueil").Select
Range("C2").Select
ActiveWorkbook.SaveAs Filename:="C:\Nouveau_répertoire\Fichier_client_Dupont2.xls", _
FileFormat:=xlNormal, CreateBackup:=False

Etc, etc... jusqu'à une cinquantaine

ActiveWindow.Close
Windows(Pat).Activate
Selection.AutoFilter
Range("A1").Select

MsgBox " Les fichiers ont bien été créés " & vbCr _
& " et ils se trouvent dans répertoire " & vbCr _
& " Nouveau_répertoire " & vbCr & vbCr _
& " Vous pouvez maintenant fermer le présent fichier..."
Application.DisplayAlerts = True

End Sub


Ma question est donc : est-il possible d'insérer à ma macro, à la place de MkDir "C:\Nouveau_répertoire" un bout de code qui enregistrerait les fichiers dans le répertoire "Nouveau_répertoire" s'il existe et le créérait s'il n'existe pas avant d'y placer les fichiers ?

Merci d'avance à tous ceux qui voudront bien se pencher sur mon problème !
 
Re : Création conditionnelle d'un répertoire

Bonjour le fil,

C'est effectivement une solution, mais il est plus prudent de de mettre une condition sur la création avec un dir :
Code:
if dir(Le_Nom_du_repertoire, vbDirectory) = "" then
  ...
endif
++
 
Re : Création conditionnelle d'un répertoire

Bonjour Pat, Elisa

perso verrais plus un test comme ceci :

Code:
If Dir("C:\Nouveau_répertoire", vbDirectory) = "" Then _
    MkDir "C:\Nouveau_répertoire"


bonne journée
@+

Edition : bonjour : 2passage, un peu en ratard moi...
 
Re : Création conditionnelle d'un répertoire

Merci à tous les 3,

J'ai testé les 2 propositions et elles fonctionnent toutes les 2 ...

Grâce à vous, j'vais p't-êtr' bien partir en vacances un peu plus tôt...!!!

Encore un grand merci !
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 Formules
Réponses
2
Affichages
695
Réponses
22
Affichages
3 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…