Ajouter chemin à macro enregistrement feuille classeur

Guillotix -  
 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
A voir également:

9 réponses

PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
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
0
Guillotix
 
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 ?
0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
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

0
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
Vous avez bien mis votre disque à la place de F et votre dossier à la place de dossier, ect...
0
Guillotix
 
Bonjour

Non toujours pas. L'enregistrement sebfait toujours dans Mes documents ... :(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Guillotix
 
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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 

0
Guillotix
 
Bonjour Le_Pivert

C'est parfait ainsi !!
Un grand merci

Bonne fin de journée
0
Guillotix
 
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
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
0
Guillotix
 
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 ?
0