Sauvegarder 2 feuilles sur nouveau dossier

Bonsoir à tous,

Je vous solicite car j'ai besoin de vos éclairages...

Je me sers d'un fichier que j'ai créé pour enregistrer mes commandes, à chaque vente que je fais.

Je souhaite créer une macro qui sauvegarderai 2 feuilles de ce classeur sur un autre classeur, en xlsx SVP car j'ai besoin de conserver seulement les données, je ne veux garder aucune macro ni liens sur ce nouveau classeur. Je souhaite juste garder une trace de mes ventes.

J'ai pas mal flané sur le forum pour trouver des pistes de macro, j'en ai donc recoupé plusieurs entre elles...

Ce que je cherche:

- spécifier le chemin

- créer un sous-dossier à chaque année qui change (nommé "essai A + année"), et utiliser la date en guise de nom du nouveau fichier (nommé "Vente du + date")

(ça, ça ne fonctionne pas, ça n'enregistre pas sous le bon nom de fichier --> le PC fait à sa sauce; et le fichier ne se range pas dans le sous-dossier créé... Le sous-dossier créé est lui à la bonne place...! )

- Je ne dois pas utiliser la bonne formule (ou ne pas l'écrire correctement...)pour "coller" mes données car j'ai un pb avec PasteSpecial... (voir sur fichier joint)

- enregistrer en xlsx (pour casser les liens, je ne veux pas que les données soient modifiées par mégarde, le but étant de garder une trace durablement)

- fermer ce nouveau classeur créé

- garder le classeur souche ouvert.

Je joins un fichier fictif où il y a le bout de code que j'ai fait.

J'espère avoir été le plus claire possible dans mon exposition...

D'avance, merci bcp pr l'intérêt accordé à mon pb.

5essai-1.xlsm (37.67 Ko)

Bonjour

Tu ne dis même pas quelless feuilles tu veux tu veux sauvegarder, à moins que j'ai lu trop vite....

Or, ton fichier initial comporte 9 feuilles....

Par ailleurs, tu expliques :l

Je joins un fichier fictif où il y a le bout de code que j'ai fait.

Je ne vois pas où ce bout de code pourrait bien être...

Bye !

Bonjour,

Alors avec mes excuses, j'arrive moi-même à ouvrir les fichiers des autres et à voir les codes, je pensai qu'il en était de même pour le mien...

Mais en effet, j'y ai pensé après envoi du mess, je n'ai pas mis le code ici, dans le message, ç'aurait été plus pratique... Je rectifie donc:

Private Sub CommandButton1_Click() ' bouton Sauvegarder

Application.DisplayAlerts = False

Dim Chemin As String, Nom As String, Rep As String
Chemin = "C:\Users\nom\Documents\prénom\Info\LM\En cours de travail\"

'Chemin = ThisWorkbook.Path & "\"
' créer un dossier avec le nom du mois et l'année en cours
' si le mois change un autre dossier est créé

Rep = Application.Proper(("essai A") & " " & Year(Date))
Nom = "Vente du" & " " & Format(Date, "yyyymmdd")

' gestion de serreurs
On Error Resume Next

' définition du chemin
MkDir Chemin & Rep
On Error GoTo 0
Sheets("Bureau").Copy
Chemin = Chemin & Rep & Nom
Sheets(1).Activate '(activer une nouvelle feuille)
Worksheet.PasteSpecial (xlPasteValues), Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Sheets("Liste 1").Copy
Sheets(2).Activate '(activer une nouvelle feuille)
Worksheet.PasteSpecial (xlPasteValues), Operation:=xlNone, SkipBlanks:=False, Transpose:=False

With ActiveWorkbook
.SaveAs Filename:=Chemin & Rep & Nom, FileFormat:=xlOpenXMLWorkbook
.Close
End With

Windows("Essai 1.xlsm").Activate

'rétabli les alertes windows
Application.DisplayAlerts = True

'message pour dire que le fichier a bien été enregistré
' que le chemin est bon
MsgBox ("Enregistré dans le dossier -En cours de travail-")

End Sub

Et c'est les feuilles "Bureau" et "Liste 1" que je veux copier... Le bouton Sauvegarder (et le code) sont sur la feuille "commande".

Encore super désolée... et merci pour ton message, en effet si personne ne voit ma macro, personne ne pourra m'aider...

Cdt,

Et le fichier à nouveau si besoin...

1essai-1.xlsm (42.35 Ko)

Bonjour

Un essai à tester. Te convient-il ?

1modele.zip (55.41 Ko)

Bye !

Bonsoir,

ça m'a l'air très très bien tout ça, merci bcp!

Seulement, comment puis-je faire pr appeler la macro...? (Super désolée d'être aussi nule... ou débutante plutôt...)

Je pensai la déclencher depuis le bouton de contrôle "Sauvegader" avec le code:

Private Sub CommandButton1_Click()

Sauvegarder

End Sub

J'ai placé ce bout de code sur la feuille "commande", là où il y a le bouton de commande, et le code que tu me proposes dans le module 1... Tout comme tu as fait...

J'ai juste mis "private sub sauvegader" au lieu de "sub sauvegarder".

Est ce que je fais un truc de travers...??

Je n'ai pas pu tester la macro du coup...

Merci bcp pr ton aide et le temps accordé.

Cdt

Nouvelle version avec feuille d'explication

2modele.zip (57.96 Ko)

Bye !

Bonjour,

Je suis désolée, j'ai bien compris tout cela.

En fait, j'ai joint sur le forum un fichier fictif. Cette macro il faut donc que je la mette sur mon vrai fichier que je me sers. Ce que j'ai fait, tout pile comme indiqué.

Or, quand je clique sur mon bouton "sauvegarder" (sur mon vrai fichier):

- soit il ne se passe rien ---> normal quand je vais dans Visual Basic, il n'y a pas de macro affecté à ce bouton,

- soit j'affecte ce code au bouton de controle:

Private Sub CommandButton1_Click()

Sauvegarder

End Sub

pour appeler la macro "Sauvegarder" et là j'ai un message "Erreur de compilation, erreur de synthaxe"...

Je pense vraiment que je faute pr une bêtise, mais je ne vois pas où... Je continue de chercher...

Merci encore, en tous cas...

Et je confirme, et aussi je suis bien convaincue, que cela fonctionne bien sur le fichier fictif, mais mon bouton de controle sur VRAI fichier ne déclenche pas la macro... C'est là que je coince...

Merci pr ton attention.

Excuse-moi, je n’avais pas compris ton problème. Tu as 2 solutions possibles

1 – Joindre ton ''VRAI fichier'' à ton prochain post pour que je le fasse fonctionner comme il faut.

2 – Mettre la nouvelle macro et son bouton de commande dans ton ‘’ VRAI fichier ‘’

Le mode opératoire de cette deuxième solution est le suivant.

Cela suppose que les 2 onglets de ce’’ VRAI fichier’’ ont les mêmes noms d’onglets que ceux du ’fichier fictif’’ : ‘’Commande’’ et ‘’Liste 1‘’

  • Ouvrir le VRAI fichier et le fichier fictif et activer ce dernier
  • Faire un clic droit sur le nouveau bouton de commande (violet)
  • Sélectionner ‘’Affecter une macro’’ puis, dans la nouvelle fenêtre qui s’ouvre, cliquer sur ’’Modifier ‘’
  • La feuille VBA qui contient la macro s’ouvre : Sélectionner cette macro, depuis ‘’Option Explicit’’ jusqu’à ‘’ End Sub’’ , puis faire «Copier »
  • Si la fenêtre des projets n’est pas ouverte, l’ouvrir : Affichage – Explorateur de projets
  • Dans cette fenêtre, sélectionner le ‘’VBAProject…’’ qui porte le nom du ‘’VRAI fichier ‘’
  • Cliquer sur ‘’Insertion – Module’’
  • Coller la macro copiée précédemment dans la nouvelle feuille VBA qui s’est créée
  • Activer la feuille de départ du fichier fictif : normalement, le bouton de commande y est encore sélectionné
  • Faire copier (pour copier le bouton)
  • Activer dans le ‘’VRAI fichier ‘’ à la feuille concernée et sélectionner une cellule
  • Faire ‘’Coller’’
  • Clic droit sur la bordure du bouton qui vient d’être collé
  • Choisir ‘’Affecter une macro’’
  • Dans la fenêtre qui s’ouvre, Sélectionner la macro affectée au ‘’VRAI fichier’’ .Attention à ne pas sélectionner le ‘fichier fictif’’
  • Enregistrer le ‘’VRAI fichier ‘’ pour ne pas perdre la macro et son bouton
  • Le’’ fichier fictif’’ peut désormais être fermé et détruit. Il est devenu inutile
  • C’est tout

Slt gmb,

Merci bcp pour ton retour, ça fonctionne à merveille!!

En effet, j'avais déjà copier la macro, mais je créais moi-même mon bouton et n'arrivais pas à lier les 2... En copiant ton bouton, c'est bcp mieux!! MERCI!

Et désolée de ma réponse tardive, je n'ai pu y travailler qu'hier soir, et j'ai oublié de te faire un message dans la foulée... C'est chose faite!

Encore merci, j'apprends bcp à chaque fois!

Au plaisir de vous lire tous à nouveau sur le forum.

Rechercher des sujets similaires à "sauvegarder feuilles nouveau dossier"