jujunexcelpas
XLDnaute Nouveau
Bonjour le forum,
je suis dans une impasse, avec votre aide une macro a été créée et je souhaiterai ajouter une étape pour son bon fonctionnement!
la macro crée un fichier dans un dossier cible, et je souhaiterai que celle ci crée un dossier nominatif dans lequel ira le fichier excel! je sais créer le dossier, je sais créer le fichier mais je n'arrive à mettre le fichier dans le dossier! je vous fais parvenir la macro, si vous pouviez m'aider ça résoudrai un long projet !
Option Explicit
Dim Mess As Integer, r As String
Dim xnomfic As String, ficd As String, xcell As String, xnomsh As Variant
Dim xshcherchee As Worksheet
Sub Sauvegarde_Modele()
'CREER UN DOSSIER
r = Feuil23.[C2]
If Dir("C:\Users\coach\dropbox\Musculation\" & r, vbDirectory) = "" Then _
MkDir "C:\Users\coach\dropbox\Musculation\" & r
' CREER UN CLASSEUR dans le dossier
Application.ScreenUpdating = False
xnomfic = Range("C2"): ficd = xnomfic & ".xlsx": xcell = Range("F2"): xnomsh = Replace(xcell, "/", "")
' Contrôle de l'existence du fichier ou classeur
If FichierExiste("C:\Users\coach\dropbox\Musculation\" & ficd) = "Vrai" Then ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
' ------------------------------------------------------------------------------------------------------------------
' Le classeur existe - On recherche si la feuille existe
Workbooks.Open ("C:\Users\coach\dropbox\Musculation\" & ficd): Workbooks(ficd).Activate ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
For Each xshcherchee In Worksheets
If xshcherchee.Name = xnomsh Then
MsgBox "SAUVEGARDE IMPOSSIBLE - Cette feuille " & xnomsh & " existe déjà dans le classeur du joueur : " & xnomfic & ".", vbCritical
ActiveWorkbook.Save: ActiveWorkbook.Close
Workbooks("Musculation.xlsm").Sheets("Modele").Activate
Exit Sub
End If
Next
' Le classeur existe - On ajoute la feuille
Worksheets.Add After:=Sheets((Sheets.Count)): Worksheets(Sheets.Count).Name = xnomsh
Workbooks("Musculation.xlsm").Sheets("Modele").Range("A😛").Copy
With ActiveWorkbook.Sheets(xnomsh)
.Range("A😛").PasteSpecial Paste:=xlPasteValues
.Range("A😛").PasteSpecial Paste:=xlPasteFormats
.Range("A😛").PasteSpecial Paste:=xlPasteFormulas
End With
Application.CutCopyMode = False
MsgBox "Sauvegarde effectuée."
'ActiveWorkbook.SaveAs Filename:="C:\Users\coach\dropbox\Musculation\" & xnomfic & ".xlsx" ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks("Musculation.xlsm").Sheets("Modele").Activate
' ------------------------------------------------------------------------------------------------------------------
Else
'___________________________________________________________________________________________________________________
' Création du fichier ou classeur et copie de la feuille modele
Workbooks.Add
Workbooks("Musculation.xlsm").Sheets("Modele").Range("A😛").Copy
With ActiveWorkbook.Sheets("Feuil1")
.Range("A😛").PasteSpecial Paste:=xlPasteValues
.Range("A😛").PasteSpecial Paste:=xlPasteFormats
.Range("A😛").PasteSpecial Paste:=xlPasteFormulas
End With
Application.CutCopyMode = False
ActiveSheet.Name = xnomsh
ActiveWorkbook.SaveAs Filename:="C:\Users\coach\dropbox\Musculation\" & xnomfic & ".xlsx" ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
ActiveWorkbook.Close
MsgBox "Sauvegarde effectuée."
End If
'___________________________________________________________________________________________________________________
Application.ScreenUpdating = True
End Sub
Function FichierExiste(ficd) As Boolean
FichierExiste = Dir(ficd) <> "" And ficd <> ""
End Function
Cordialement
jujunexcelpas
je suis dans une impasse, avec votre aide une macro a été créée et je souhaiterai ajouter une étape pour son bon fonctionnement!
la macro crée un fichier dans un dossier cible, et je souhaiterai que celle ci crée un dossier nominatif dans lequel ira le fichier excel! je sais créer le dossier, je sais créer le fichier mais je n'arrive à mettre le fichier dans le dossier! je vous fais parvenir la macro, si vous pouviez m'aider ça résoudrai un long projet !
Option Explicit
Dim Mess As Integer, r As String
Dim xnomfic As String, ficd As String, xcell As String, xnomsh As Variant
Dim xshcherchee As Worksheet
Sub Sauvegarde_Modele()
'CREER UN DOSSIER
r = Feuil23.[C2]
If Dir("C:\Users\coach\dropbox\Musculation\" & r, vbDirectory) = "" Then _
MkDir "C:\Users\coach\dropbox\Musculation\" & r
' CREER UN CLASSEUR dans le dossier
Application.ScreenUpdating = False
xnomfic = Range("C2"): ficd = xnomfic & ".xlsx": xcell = Range("F2"): xnomsh = Replace(xcell, "/", "")
' Contrôle de l'existence du fichier ou classeur
If FichierExiste("C:\Users\coach\dropbox\Musculation\" & ficd) = "Vrai" Then ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
' ------------------------------------------------------------------------------------------------------------------
' Le classeur existe - On recherche si la feuille existe
Workbooks.Open ("C:\Users\coach\dropbox\Musculation\" & ficd): Workbooks(ficd).Activate ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
For Each xshcherchee In Worksheets
If xshcherchee.Name = xnomsh Then
MsgBox "SAUVEGARDE IMPOSSIBLE - Cette feuille " & xnomsh & " existe déjà dans le classeur du joueur : " & xnomfic & ".", vbCritical
ActiveWorkbook.Save: ActiveWorkbook.Close
Workbooks("Musculation.xlsm").Sheets("Modele").Activate
Exit Sub
End If
Next
' Le classeur existe - On ajoute la feuille
Worksheets.Add After:=Sheets((Sheets.Count)): Worksheets(Sheets.Count).Name = xnomsh
Workbooks("Musculation.xlsm").Sheets("Modele").Range("A😛").Copy
With ActiveWorkbook.Sheets(xnomsh)
.Range("A😛").PasteSpecial Paste:=xlPasteValues
.Range("A😛").PasteSpecial Paste:=xlPasteFormats
.Range("A😛").PasteSpecial Paste:=xlPasteFormulas
End With
Application.CutCopyMode = False
MsgBox "Sauvegarde effectuée."
'ActiveWorkbook.SaveAs Filename:="C:\Users\coach\dropbox\Musculation\" & xnomfic & ".xlsx" ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
ActiveWorkbook.Save
ActiveWorkbook.Close
Workbooks("Musculation.xlsm").Sheets("Modele").Activate
' ------------------------------------------------------------------------------------------------------------------
Else
'___________________________________________________________________________________________________________________
' Création du fichier ou classeur et copie de la feuille modele
Workbooks.Add
Workbooks("Musculation.xlsm").Sheets("Modele").Range("A😛").Copy
With ActiveWorkbook.Sheets("Feuil1")
.Range("A😛").PasteSpecial Paste:=xlPasteValues
.Range("A😛").PasteSpecial Paste:=xlPasteFormats
.Range("A😛").PasteSpecial Paste:=xlPasteFormulas
End With
Application.CutCopyMode = False
ActiveSheet.Name = xnomsh
ActiveWorkbook.SaveAs Filename:="C:\Users\coach\dropbox\Musculation\" & xnomfic & ".xlsx" ' MODIFIER LE CHEMIN DU REPERTOIRE - SI NECESSAIRE
ActiveWorkbook.Close
MsgBox "Sauvegarde effectuée."
End If
'___________________________________________________________________________________________________________________
Application.ScreenUpdating = True
End Sub
Function FichierExiste(ficd) As Boolean
FichierExiste = Dir(ficd) <> "" And ficd <> ""
End Function
Cordialement
jujunexcelpas