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 !
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 !