Recherche d'un code de sauvegarde avec macro

Fermé
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009 - 4 nov. 2009 à 21:57
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 12 nov. 2009 à 18:12
Bonjour,
Pouvez vous m'aidez. Je suis a la recherche d'un code VBA qui me sauvegarderai une seule feuille sur 3 dans un dossier et non tous le fichiers et qui serais sauvegarder par date et par nom sans écraser a chaque fois la précédante et tous ceci en cliquant sur un bouton.
Ce serait vraiment génial si vous pouviez m'aidez a faire ceci.
A voir également:

20 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
5 nov. 2009 à 11:58
Place se code dans un module de ton classeur
et test



Sub SauvegardeUneFeuille()
'
' bidouilleu_R
'


Dim NomDate As String
Dim Nom As String
Dim Chemin As String

Chemin = ThisWorkbook.Path
NomDate = Format(Date, "DDMMYYY")
Nom = "_nom" ' ici le nom que tu veux

Sheets("feuil1").Select     ' ici à adapter à ta feuille
    Cells.Select            ' on selectionne toute la feuille ( pour les puristes c'est pas utile je sais)
    Selection.Copy          ' on copie
    Workbooks.Add           ' on crée un nouveau classeur
    Range("A1").Select
    ActiveSheet.Paste       ' on colle
    'on ne garde qu'une feuille
    Application.DisplayAlerts = False
    While Sheets.Count > 2
        Sheets(2).Delete
    Wend
    Application.DisplayAlerts = True
    ' on sauvegarde sous date + nom à définir
    ActiveWorkbook.SaveAs Chemin & PathSeparator & NomDate & Nom & ".xls"
    ActiveWorkbook.Close
    Application.CutCopyMode = False
    Range("A1").Select
End Sub
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
5 nov. 2009 à 15:23
Merci pour le code. Je viens d'essayer mais j'ai un message: Erreur de compilation.
En fait j'ai créer un bouton (bouton 11 à renomer), une fenêtre affecter une macro apparait automatiquement
avec Bouton11_Quand click je fait nouveau puis le module apparait et j'y est mis ton code en dessous de Bouton11_Quand click, mais apparemment il y a un problème avec la macro mais quoi?
Je me permet de recoller ici le code pour voir comment je doit faire ma macro.
Mon problème et pardonne moi c'est que je connait pas grand chose.
Sub Bouton11_QuandClic() s'affiche en jaune l'erreur est là, je l'efface mais ça ne va toujours pas
Sub SauvegardeUneFeuille()
'
' bidouilleu_R
'


Dim NomDate As String
Dim Nom As String
Dim Chemin As String

Chemin = ThisWorkbook.Path
NomDate = Format(Date, "DDMMYYY")
Nom = "_nom" ' ici le nom que tu veux

Sheets("Facture").Select ' ici à adapter à ta feuille
Cells.Select ' on selectionne toute la feuille ( pour les puristes c'est pas utile je sais)
Selection.Copy ' on copie
Workbooks.Add ' on crée un nouveau classeur
Range("A1").Select
ActiveSheet.Paste ' on colle
'on ne garde qu'une feuille
Application.DisplayAlerts = False
While Sheets.Count > 2
Sheets(2).Delete
Wend
Application.DisplayAlerts = True
' on sauvegarde sous date + nom à définir
ActiveWorkbook.SaveAs Chemin & PathSeparator & NomDate & Nom & ".xls"
ActiveWorkbook.Close
Application.CutCopyMode = False
Range("A1").Select
End Sub

J'ai créer un dossier Facturation dans C:/Documents and Settings/Joseph/Facturations.xls
et c'est dans ce dossier que j'ai prévu de sauvegarder toutes mes factures, mais rien que la feuille facture.

Merci de perdre du temps avec moi
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
6 nov. 2009 à 18:31
avec Bouton11_Quand click je fait nouveau puis le module apparait et j'y est mis ton code en dessous de Bouton11_Quand click, mais apparemment il y a un problème avec la macro mais quoi?

Voici ce que tu va faire:

1) mettre ton fichier dans C:/Documents and Settings/Joseph/
2) click sur bouton 11 / modifier le code
tu mets ça.... et rien de plus.
Bouton11_Quand click()
SauvegardeUneFeuille ' ça c'est l'appelle de la macro.
end sub
3)
A partir de la feuille excel tu fais:
Alt F11 (raccourci pour ouvrir l'editeur VBA) - puis Insertion / module
cela va créer une feuille qui va s'appeller Module1 le curseur clignote sur une feuille vide
à cette endroit place le code de la macro que je t'ai transmis.
4) enregistre
5)Alt F11 (retourne) sur la feuille excel
6) click sur le bouton
Et s'il y a une erreur reviens me le dire...
le code a été testé sous excel 2007
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
6 nov. 2009 à 22:50
Merci pour l'aide que tu m'apporte mais il n'y a rien a faire ça ne va pas, il m'affiche une erreur de compilation:
instruction incorrect à l'extérieur d'une procédure.
Moi j'ai Excel 2002.

J'ai déjà un code insérer dans ThisWorkbook qui m'enregistre tous mon classeur par date du jour et cela fonctionne, mais elle me demande enregistrer sous.
Est ce que je peux modifier celui là pour m'enregistrer ma feuille facture et seulement celle là par nom aussi et qui se trouve en F8 sur ma feuille facture et B2 sur ma feuille de donnée.
Si c'est le cas qu'est ce je peut modifier ou ajouter.

Voici mon code

Private Sub Workbook_Open()
Dim mDate As String

mDate = Date

mDate = Replace(mDate, "/", "")

Application.DisplayAlerts = False 'Désactive les alertes Excel

ThisWorkbook.SaveAs Filename:="C:\Documents and Settings\Joseph" & mDate & ".xls"

Application.DisplayAlerts = True 'Active les alertes Excel

End Sub

En tout cas c'est très gentil de perdre ton temps avec moi.
0

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

Posez votre question
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
7 nov. 2009 à 22:10
il n'y a rien a faire ça ne va pas, il m'affiche une erreur de compilation:
instruction incorrect à l'extérieur d'une procédure.
Moi j'ai Excel 2002.


Alors je pense qu'il y a quelque chose à faire.
si tu dis ou se tr trouve l'erreur de compilation par exemple.

comme j'utilise 2007 il y a peut-être une déclaration ou une instruction qui ne convient pas.

A l'extérieur d'une procedure il n'y a que les declarations de type de variables ou de variables.

donc tu dis quelle est la ligne en jaune dans le debugger et on avise.
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
8 nov. 2009 à 00:59
l'erreur est: Variable non définie, Sub SauvegardeUneFeuille() est en jaune
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
9 nov. 2009 à 21:55
peux-tu mettre soit le code que tu as....
soit le classeur... sur ci-joint.fr en copiant le lien ici

car dans le code que je t'ai donné totes les variables sont déclarées....
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
10 nov. 2009 à 19:54
Voiçi le lien et merci si tu peux faire quelque chose, c'est la première fois alors je ne sais si c 'est le bon lien ou pas, alors je t'ai mis les deux.
http://www.cijoint.fr/cjlink.php?file=cj200911/cijqoWvV8k.xls; Joseph10112009.xls

En y repensant bien il serait bien de pouvoir enregistrer ma feuille facture et ma feuille semaine par client.
Le but final est de pouvoir sauvegarder toutes mes factures par nom et date avec les acomptes versés par semaine et aller les recherchers si le besoin s'en fait sentir.

Bien à toi
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
10 nov. 2009 à 19:59
je viens de faire un click sur le lien pour voir mais il met fichier non accessible. Alors je ne sais pas comment on fait, j'ai collé le lien qu'il était marqué.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
11 nov. 2009 à 09:36
quand tu vas sur cijoint.fr tu as le bouton parcourir cela te permet de localiser le fichier sur ton disque.
puis sur "click ici pour deposer le fichier" puis copie et colle ici le lien en bleu qui apparaît en dessous
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
11 nov. 2009 à 09:48
http://www.cijoint.fr/cjlink.php?file=cj200911/cijd1fzJI7.xls;
Voilà qui est fait.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
11 nov. 2009 à 09:50
tu as oublié de rendre le fichier accessible en clicquant sur la case rendre public
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
11 nov. 2009 à 12:36
http://www.cijoint.fr/cjlink.php?file=cj200911/cijhQWBduW.xls
j'espère que cette fois c'est la bonne
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
11 nov. 2009 à 13:10
je viens de regarder ton fichier....
tu as dis au post 4

m'affiche une erreur de compilation:
instruction incorrect à l'extérieur d'une procédure.
Moi j'ai Excel 2002.

je viens de voir un appel de chargement de bibliotèthèque pour 2007
Alt F11 editeur VBA
puis outils / références/ tu dois trouver une ligne Calendar 11.0 MANQUANT ( il faut la décocher ou rajouter Calendar . OCX)

Ensuite ça marche.
De ce que j'ai vu il n'y a pas d'erreur d'écriture.
A+
0
petitpeppino Messages postés 20 Date d'inscription mardi 29 septembre 2009 Statut Membre Dernière intervention 12 novembre 2009
12 nov. 2009 à 10:11
Salut,
Oui en effet je t'ai dit qu'il y avait unr erreur à l'intérieur d'une procédure, mais j'ai tout effacé avant de t'envoyé le classeur et le bouton aussi en pensant que tu allait refaire le code et voir où est l'erreur, excuse moi.
Je te renvois le classeur avec le code et le bouton inséré. (j'ai bien Excel 2002 ou XP)

En ce qui qui concerne le calendrier que j'ai fait avec l'userform je ne comprend pas ce que tu veux dire avec le chargement bibliothèque 2007. et de plus dans ma liste je n'ai pas de calendar.OCX mais bien Microsoft Calendar 11.0. Par contre il est vrai qu'il y a un problème a chaque affichage du calendrier et même quand j'ouvre mon classeur il y a une fenêtre de windows installer qui s'affiche en disant préparation de l'installation.
J'ai déjà fait des recherche sur le forum pour essayer de comprendre pourquoi mais pour le moment toujours rien.

http://www.cijoint.fr/cjlink.php?file=cj200911/cijz136h6F.xls

Merci d'être patient.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
12 nov. 2009 à 12:44
je regarde ton code ...

Sous 2007, il n'y a pas de problème (même) pour le calendrier
je regarde en détail et je fais un test sous 2003 et je te renvoie le fichier, ou je
te dis ce qu'il faut faire.
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
12 nov. 2009 à 13:08
J'ai trouvé ton erreur et je t'ai ajouté une feuille d'instruction pour ton calendrier


http://www.cijoint.fr/cjlink.php?file=cj200911/cijg5t48kf.xls

normalement ça marche
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
12 nov. 2009 à 13:19
j'ai oublié.
sur office (2002 je connais pas) 97/2003
le calendrier fait référence à MSCAL.OCX (version 10)

dans google tu le trouve.
tu peux ensuite le placer dens
C:\Documents and Settings\LOGIN\My Documents\AddIns

il ya deux fichiers à mettre :
MSCAL.DEP
MSCAL.OCX

pour 2007 (version 12)
le calendrier s'appelle
ICCalendar.ocx

pour les mettre alt F11(vba) /outils/références / click sur parcourir choisir le fichier ocx
ensuite click sur contrôle complémentaire et ajoute le contrôle

j'espère que cela t'aidera
0
Bonjour,

J'essaye moi aussi un résultat similaire mais je n'y arrive pas non plus...

Voici mon code :


Dim Nom As String
Dim Chemin As String

Nom = "Perm" 
Chemin = ThisWorkbook.Path

Sheets("Info").Select 
Cells.Select
Selection.Copy 
Workbooks.Add
Range("A1").Select
ActiveSheet.Paste 

Application.DisplayAlerts = False

ActiveWorkbook.SaveAs Chemin & "\" & Nom & ".xls"
ActiveWorkbook.Close
Application.DisplayAlerts = True

Application.CutCopyMode = False
Sheets("Edit").Select
Range("A1").Select



Toute l'opération se passe, le nouveau classeur est créé et sauvegarder, on a l'impression que ça marche sauf que les données copiées ne sont pas dans le fichier...

Etrange tout de même.

Merci
0
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 293
12 nov. 2009 à 18:12
non! tu te trompes.....
je viens de tester ... à la lecture ça me paraissait correct

j'ai créé un classeur avec une feuille info et une feuille edit
les données dans info

tout se passe très bien.
les données sont sauvegardées dans la feuil1 du classeur perm
à l'endroit ou se trouve le classeur de départ.

Vérifie bien!
0