Enregistrer classeur sous - Chemin d'accès

Résolu
Caroline -  
 Caroline -
Bonjour,

J'ai un classeur qui contient plusieurs pages (listes de prix et pages de soumissions). J'aimerais enregistrer seulement une ou l'autre des pages soumission de ce classeur) (celle sur laquelle je suis en ce moment - la soumission du client) selon le contenu d'une cellule (B7 - le nom du client). J'ai trouvé un code pour ce faire, que je vais activer à l'aide d'un bouton sur les pages de soumission. Mais l'enregistrement devrait se faire sous: F:\SOUMISSIONS\2016

Présentement, ça fonctionne mais mon fichier va se placer dans: C:\Documents and Settings\Caroline\Application Data\Microsoft\Office\Recent

C'est beaucoup trop loin et compliqué à retracer. Comment faire svp? J'ai essayé de changer le chemin mais je ne comprends pas pourquoi ça ne fonctionne pas. Si quelqu'un peut m'aider? Merci beaucoup :)

Voici le code que j'ai:
Sub Enreg_Fichier()
Dim NomFichier As String
NomFichier = Range("B7")
ActiveWorkbook.SaveAs "c:\Documents and Settings\Caroline\Bureau" & NomFichier
End Sub

11 réponses

  1. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour,

    Comme ceci:

    ActiveWorkbook.SaveAs "c:\Documents and Settings\Caroline\Bureau\" & NomFichier


    Il faut aussi l'extension du fichier!
    0
    1. Caroline
       
      Bonjour, enfin j'ai trouvé mais ce code enregistre le classeur entier. Comment faire pour enregistrer seulement la feuille sur laquelle il y a la soumission?
      Merci pour votre aide.
      0
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    0
    1. Caroline
       
      Je vois mais si je comprends bien, il faudrait que je copie et que je colle la feuille dans un autre ficher avant? Je vous remets mon code (qui fonctionne bien maintenant) mais il faudrait juste y ajouter une directive pour que seule la feuille sur laquelle je suis s'enregistre. Merci pour votre aide (je suis vraiment débutante dans les codes) Sub Enreg_Fichier()
      Dim NomFichier As String
      NomFichier = Range("B7")
      ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier
      End Sub
      0
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
     Sub Enreg_Fichier()
    Dim NomFichier As String
    Dim wk As Workbook
    Dim ws As Worksheet
    Application.DisplayAlerts = False
    Set wk = Workbooks.Add(xlWBATWorksheet)
    Set ws = ThisWorkbook.Worksheets(1)
    ws.Copy After:=wk.Sheets(Sheets.Count)
     Sheets("Feuil1").Select
        ActiveWindow.SelectedSheets.Delete
    NomFichier = Range("B7")
    ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True
    End Sub
    

    0
    1. Caroline
       
      Vous êtes vraiment gentil mais là j'obtiens un message qui apparait: Erreur de syntaxe et la ligne: ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True est surlignée.
      0
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True est surlignée.

    Ceux sont 2 lignes!!!!!

    0
    1. Caroline
       
      Je ne comprends pas, désolé. Voici le code que vous m'avez donné j'ai copié et collé.
      Sub Enreg_Fichier()
      Dim NomFichier As String
      Dim wk As Workbook
      Dim ws As Worksheet
      Application.DisplayAlerts = False
      Set wk = Workbooks.Add(xlWBATWorksheet)
      Set ws = ThisWorkbook.Worksheets(1)
      ws.Copy After:=wk.Sheets(Sheets.Count)
      Sheets("Feuil1").Select
      ActiveWindow.SelectedSheets.Delete
      NomFichier = Range("B7")
      ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True
      End Sub

      et si je l'active un message apparait disant: erreur de syntaxe. Et ceci est surligné:

      "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True

      Merci encore pour votre temps.
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Pour moi cela fonctionne bien ;

    Voir si le nom du fichier est bien en B7 avec l'extension.

    supprimer:

    Application.DisplayAlerts = True

    cela se remet automatiquement de toute façon. C'est pour empêcher d'avoir une alerte lorsque l'on supprime une feuille alors on met:

    Application.DisplayAlerts = False
    0
    1. Caroline
       
      Je suis un peu découragée, cela ne fonctionne toujours pas. Si vous décidez de laisser tomber je comprendrai.
      0
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > Caroline
         
        Bonjour a vous deux,

        cs_Le Pivert salut, ca roule ??

        Caroline:
        quand je reprends votre code, ces lignes

        ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True


        ne font qu'une alors qu'il y en a deux:

        donc placez le curseur souris apres le r de NomFichier et appuyez sur la touche entree pour avoir deux lignes
        0
      2. Caroline > f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour f894009 et merci à vous aussi de bien vouloir m'aider. Je viens de faire ce que vous dites pour avoir deux lignes. mais j'ai encore ce message qui apparait:

        Erreur d'exécution '1004'
        La méthode 'Save As' de l'objet '_Workbook' a échoué

        Aussi, dans le code, la ligne suivante devient surlignée en jaune:
        ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier

        Et pour l'autre option, de transformer ma page en PDF, ce n'est pas ce qu'il me faut. Merci.

        Ouf, pas facile.
        0
    2. Caroline
       
      Je me demande également.... j'ai plusieurs feuilles à mon fichier et c'est la feuille actuelle qu'il faut enregistrer... par exemple si je suis sur la feuille qui se nomme SOUMISSION c'est cette feuille qui s'enregistre avec le contenu de sa cellule B7.
      Si je suis sur la feuille qui se nomme SOUMISSION 2, c'est celle-ci qui va s'enregistrer avec le contenu de sa cellule B7.
      D'après ce que je vois du code que j'ai présentement, on dirait que c'est la 'feuille1' qui s'enregistre et non celle dans laquelle je travaille présentement. Et j'ai affecté le code à un bouton qui se trouve sur la feuille active.
      0
    3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      Le chemin est-il bon:

      "F:\01_SOUMISSIONS\2016\"

      au début c'était cela:

      ActiveWorkbook.SaveAs "c:\Documents and Settings\Caroline\Bureau\"
      0
  7. Caroline
     
    Oui,

    "F:\01_SOUMISSIONS\2016\"

    est le bon chemin
    0
  8. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    Quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur
    NomFichier 
    pour voir son contenu
    0
  9. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Bonjour, enfin j'ai trouvé mais ce code enregistre le classeur entier

    Dans le premier échange, cela fonctionnait pour le classeur, il n'y a pas de raison que cela ne marche pas. Il n'y a que le chemin qui a été changé!

    Essayer avec l'ancien chemin.
    0
    1. Caroline
       
      Bonjour :)
      De retour après une bonne nuit de sommeil. Vous avez tout à fait raison. On a un code qui fonctionne et maintenant j'ai changé le chemin pour placer l'enregistrement où je la veux exactement. Le seul problème c'est que le classeur entier s'y enregistre. J'aimerais que seule la feuille sur laquelle je travaille s'enregistre. Avez-vous une solution pour cela?
      Merci et bonne journée.
      0
  10. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Sub Enreg_Fichier()
    Dim NomFichier As String
    Dim wk As Workbook
    Dim ws As Worksheet
    Application.DisplayAlerts = False
    Set wk = Workbooks.Add(xlWBATWorksheet)
    Set ws = ThisWorkbook.ActiveSheet
    ws.Copy After:=wk.Sheets(Sheets.Count)
    Sheets("Feuil1").Select
    ActiveWindow.SelectedSheets.Delete
    NomFichier = Range("B7")
    ActiveWorkbook.SaveAs "C:\Users\....\Documents\" & NomFichier
    End Sub
    

    0
  11. Caroline
     
    Je suis très heureuse de vous dire que ÇA MARCHE!!! Ah, je vous remercie infiniment! Je sais que ça dû être assez difficile de me comprendre par bout mais vous avez persévérez. UN GROS MERCI ! Vous êtes génial.

    Bonne journée.
    Caroline
    0