Enregistrer classeur sous - Chemin d'accès

Résolu
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. 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
    1. Contributeur
      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
      1. Contributeur
        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. 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
      2. Bonjour,

        Quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur
        NomFichier 
        pour voir son contenu
        0
        1. Oui,

          "F:\01_SOUMISSIONS\2016\"

          est le bon chemin
          0
          1. Contributeur
            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. Je suis un peu découragée, cela ne fonctionne toujours pas. Si vous décidez de laisser tomber je comprendrai.
              0
            2. @CarolineBonjour 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
            3. @f894009Bonjour 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
            4. 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
            5. Contributeur
              Le chemin est-il bon:

              "F:\01_SOUMISSIONS\2016\"

              au début c'était cela:

              ActiveWorkbook.SaveAs "c:\Documents and Settings\Caroline\Bureau\"
              0
          2. Contributeur
            ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True est surlignée.

            Ceux sont 2 lignes!!!!!

            0
            1. 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
          3. Contributeur
             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. 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. Contributeur
            0
            1. 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
          5. Contributeur
            Bonjour,

            Comme ceci:

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


            Il faut aussi l'extension du fichier!
            0
            1. 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