Vincenzozo
XLDnaute Nouveau
Bonjour à tous,
J'ouvre ce fil de discussion, pour vous exposer mon pb, vous soumettre mes tentatives de code et recueillir vos remarques!
J'ai une macro qui me sert à déplacer des fichiers d'un dossier à l'autre suivant des paramètres choisins dans une userform.
J'aimerai juste que lorsqu'on rajouter des possibilité de choix dans la usf, la macro de déplacement crée le dossier cible si celui-ci n'existe pas...
J'ai trouvé ceci sur internet
et voici le code de ma fonction de déplacement :
L'objectif étant de fusionner les 2... et là, ça va pas être évident!
Merci de votre participation à ce fil!
J'ouvre ce fil de discussion, pour vous exposer mon pb, vous soumettre mes tentatives de code et recueillir vos remarques!
J'ai une macro qui me sert à déplacer des fichiers d'un dossier à l'autre suivant des paramètres choisins dans une userform.
J'aimerai juste que lorsqu'on rajouter des possibilité de choix dans la usf, la macro de déplacement crée le dossier cible si celui-ci n'existe pas...
J'ai trouvé ceci sur internet
Code:
'Comment créer un dossier ?
'
'Ajouter une référence à "Microsoft Scripting Runtime"
'depuis le menu Projet à Références de l'Editeur Visual Basic.
Sub CreationDossier()
Dim fso ' As Scripting.FileSystemObject
Dim fd ' As Scripting.Folder
Dim sFolderName ' As String
' Initialisation du nom du dossier
sFolderName = "C:\NewDossier"
Set fso = CreateObject("Scripting.FileSystemObject")
' Vérifier que le dossier à créer n'existe pas
If Not fso.FolderExists(sFolderName) Then
' Créer le dossier.
Set fd = fso.CreateFolder(sFolderName)
MsgBox "Le dossier " & sFolderName & " a été créé"
Else
MsgBox "Le dossier " & sFolderName & " existe déjà!"
End If
End Sub
et voici le code de ma fonction de déplacement :
Code:
'+++++++++++++++++++++++++++++++++++++++
'FONCTION COPIE _PRODUCTION VERS _HISTORIC DES FICHIERS ET RENOMMAGE
'Les variables sont donc suffixées de _Copie_Pr_Hi
'+++++++++++++++++++++++++++++++++++++++
Sub Copie_Prod_Histo()
Dim rS_Copie_Pr_Hi, rD_Copie_Pr_Hi, crit_Copie_Pr_Hi
Dim AncienNom As String, NouveauNom As String, chemin_production As String, chemin_historic As String, rep_pending As String, rep_production As String, rep_historic As String
Dim fso
Dim i As Integer
Set fso = CreateObject("Scripting.FileSystemObject")
i = ThisWorkbook.Sheets("BD").Range("S2").Value
'La variable Chemin désigne le dossier dans lequel sont enregistré les fichiers
rep_historic = ThisWorkbook.Sheets("BD").Range("O2")
rep_pending = ThisWorkbook.Sheets("BD").Range("O3")
rep_production = ThisWorkbook.Sheets("BD").Range("O4")
chemin_production = rep_production & "\" & ThisWorkbook.Sheets("Database").Range("A" & i) & "\" & ThisWorkbook.Sheets("Database").Range("C" & i) & "\"
chemin_historic = rep_historic & "\" & ThisWorkbook.Sheets("Database").Range("A" & i) & "\" & ThisWorkbook.Sheets("Database").Range("C" & i) & "\"
AncienNom = ThisWorkbook.Sheets("Database").Range("E" & i) & "_5466_" & ThisWorkbook.Sheets("Database").Range("F" & i) & "_" & ThisWorkbook.Sheets("Database").Range("B" & i) & "_" & ThisWorkbook.Sheets("Database").Range("D" & i) & ".xls"
NouveauNom = ThisWorkbook.Sheets("Database").Range("E" & i) & "_5466_" & ThisWorkbook.Sheets("Database").Range("F" & i) & "_" & ThisWorkbook.Sheets("Database").Range("B" & i) & "_" & ThisWorkbook.Sheets("Database").Range("D" & i) & "_" & Format(ThisWorkbook.Sheets("Database").Range("L" & i), "00") & ".xls"
'On copie le fichier
fso.CopyFile (chemin_production & AncienNom), chemin_historic
'Renomme le fichier dans l'historic
Name chemin_historic & AncienNom As chemin_historic & NouveauNom
End Sub
L'objectif étant de fusionner les 2... et là, ça va pas être évident!
Merci de votre participation à ce fil!