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

9 réponses

  1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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
  2. 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
  3. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    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
    1. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
       
      Vous avez bien mis votre disque à la place de F et votre dossier à la place de dossier, ect...
      0
  4. Guillotix
     
    Bonjour

    Non toujours pas. L'enregistrement sebfait toujours dans Mes documents ... :(
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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
  8. Guillotix
     
    Bonjour Le_Pivert

    C'est parfait ainsi !!
    Un grand merci

    Bonne fin de journée
    0
  9. 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
    1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  10. 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