Ajouter chemin à macro enregistrement feuille classeur

Fermé
Guillotix - 12 mars 2019 à 16:05
 Guillotix - 13 mars 2019 à 18:11
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 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
12 mars 2019 à 17:36
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
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 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 mars 2019 à 09:45
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 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 mars 2019 à 10:21
Vous avez bien mis votre disque à la place de F et votre dossier à la place de dossier, ect...
0
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
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
13 mars 2019 à 13:38
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
Bonjour Le_Pivert

C'est parfait ainsi !!
Un grand merci

Bonne fin de journée
0
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
13 mars 2019 à 17:39
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
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