Ajouter chemin à macro enregistrement feuille classeur [Fermé]

Signaler
-
 Guillotix -
Bonjour,

J'ai créé la macro suivante mais maintenant je souhaiterais y ajouter un chemin pour l'enregistrement
Seulement je n'y parviens pas. Pouvez-vous m'aider svp ?

Sub copier_feuille_recap ()
Dim feuille, nom, Export
Set feuille = ActiveWorkbook.Sheets("RECAP")
nom = feuille.Range("D1") & ".xlsx"

Application.Workbooks.Add
Export = ActiveWorkbook.Name
feuille.Cells.Copy

With Workbooks(Export).Sheets(1).Cells
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
End With
Workbooks(Export).SaveAs nom

Application.CutCopyMode = False

End Sub

9 réponses

Messages postés
5469
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 juillet 2020
455
Bonjour

Copie du chemin réalisé avec l'enregistreur de macro
Regarder si cela vous convient

ChDir "lettre du disque F:\dossier\sous_dossier\sous_sous_dossier"
ActiveWorkbook.SaveAs Filename:= _
" F:\dossier\sous_dossier\sous_sous_dossier\nom_du_fichier.xlsm", FileFormat:= _
xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Bonjour PHILOU10120

Merci pour cette réponse rapide
En fait je souhaiterais garder ma macro actuelle en y spécifiant juste le chemin. Seulement je ne sais où le placer, j'ai systématiquement des erreurs

Serait-il possible de réécrire ma macro en y ajoutant le chemin à l'endroit adéquat ?
Messages postés
5469
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 juillet 2020
455
Bonjour


Essayer ceci

Sub copier_feuille_recap()
Dim feuille, nom, Export
Set feuille = ActiveWorkbook.Sheets("RECAP")
nom = feuille.Range("D1") & ".xlsx"

Application.Workbooks.Add
Export = ActiveWorkbook.Name
feuille.Cells.Copy

With Workbooks(Export).Sheets(1).Cells
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
End With
ChDir "F:\dossier\sous_dossier"

Workbooks(Export).SaveAs nom

Application.CutCopyMode = False


End Sub

Messages postés
5469
Date d'inscription
lundi 16 avril 2012
Statut
Contributeur
Dernière intervention
2 juillet 2020
455
Vous avez bien mis votre disque à la place de F et votre dossier à la place de dossier, ect...
Bonjour

Non toujours pas. L'enregistrement sebfait toujours dans Mes documents ... :(
Non, j'ai modifié le chemin, je cherche à enregistrer sur un réseau d'entreprise
Je vais appeler l'IT, il me semble que dans certains cas l'adresse réseau n'est pas complète
Messages postés
6831
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
532
Bonjour,

en se servant d'une boite de dialogue enregistrement, comme ceci:

Dim feuille, nom, Export, fileSaveName 
'mettre le début du code
 fileSaveName = Application.GetSaveAsFilename("chemin du repertoire\" & nom, "ExcelFiles (*.xlsx), *.xlsx") 'boite dialogue enregistrement
Workbooks(Export).SaveAs fileSaveName 

Bonjour Le_Pivert

C'est parfait ainsi !!
Un grand merci

Bonne fin de journée
Re,

Pardon mais je me rends compte à l'utilisation de 2 petites choses que je souhaiterais améliorer :

1. Lorsque j'annule l'enregistrement le fichier s'enregistre quand-même avec le nom FALSE

2. S'il était possible que le tableau nouvellement créé se ferme automatiquement après l'enregistrement

Sinon pour le reste c'est nickel
Messages postés
6831
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 juillet 2020
532
C'est un peu plus compliqué il faudra adapter le chemin du répertoire partout

Sub copier_feuille_recap()
Dim feuille, nom, Export, fileSaveName

Set feuille = ActiveWorkbook.Sheets("RECAP")
nom = feuille.Range("D1") & ".xlsx"

Application.Workbooks.Add
Export = ActiveWorkbook.Name
feuille.Cells.Copy

With Workbooks(Export).Sheets(1).Cells
.PasteSpecial Paste:=xlPasteAll
.PasteSpecial Paste:=xlPasteValues
End With
 fileSaveName = Application.GetSaveAsFilename("chemin repertoire\" & nom, "ExcelFiles (*.xlsx), *.xlsx") 'boite dialogue enregistrement
Workbooks(Export).SaveAs fileSaveName
Application.CutCopyMode = False
TesteSiFichierExiste 'si fichier existe on supprime
Application.Quit 'fermeture Excel
End Sub
Sub TesteSiFichierExiste()
'par Excel-Malin.com ( https://excel-malin.com )

Dim MonFichier As String

MonFichier = "chemin repertoire\" & "FALSE.xlsx"

    If FichierExiste(MonFichier) = True Then
    Workbooks("FALSE").Close 'ferme
       Kill ("chemin repertoire\" & "FALSE.xlsx") 'supprime
    Else
       ' MsgBox "Le fichier n'existe pas..."
    End If

End Sub
Public Function FichierExiste(MonFichier As String)
'par Excel-Malin.com ( https://excel-malin.com )

   If Len(Dir(MonFichier)) > 0 Then
      FichierExiste = True
   Else
      FichierExiste = False
   End If
End Function


Voilà

@+ Le Pivert
Merci Le Pivert

Je teste ça demain au boulot et fais un retour aussitôt.
J'aurais une autre question même classeur mais autre macro, je pense que c'est mieux d'ouvrir un nouveau post ?