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


A voir également:

11 réponses

cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Comme ceci:

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


Il faut aussi l'extension du fichier!
0
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
 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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
ActiveWorkbook.SaveAs "F:\01_SOUMISSIONS\2016\" & NomFichier Application.DisplayAlerts = True est surlignée.

Ceux sont 2 lignes!!!!!


0
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

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

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Caroline
 
Je suis un peu découragée, cela ne fonctionne toujours pas. Si vous décidez de laisser tomber je comprendrai.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > 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
Caroline > f894009 Messages postés 17277 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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Le chemin est-il bon:

"F:\01_SOUMISSIONS\2016\"

au début c'était cela:

ActiveWorkbook.SaveAs "c:\Documents and Settings\Caroline\Bureau\"
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
0
Caroline
 
Oui,

"F:\01_SOUMISSIONS\2016\"

est le bon chemin
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Quand vous avez l'erreur, clic sur debugage et passez le curseur souris sur
NomFichier 
pour voir son contenu
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
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