Recherche d'un code de sauvegarde avec macro

petitpeppino Messages postés 22 Statut Membre -  
Bidouilleu_R Messages postés 1209 Statut Membre -
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.
Configuration: Windows XP Internet Explorer 8.0

20 réponses

  1. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  2. petitpeppino Messages postés 22 Statut Membre
     
    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
  3. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  4. petitpeppino Messages postés 22 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  7. petitpeppino Messages postés 22 Statut Membre
     
    l'erreur est: Variable non définie, Sub SauvegardeUneFeuille() est en jaune
    0
  8. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  9. petitpeppino Messages postés 22 Statut Membre
     
    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
  10. petitpeppino Messages postés 22 Statut Membre
     
    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
  11. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  12. petitpeppino Messages postés 22 Statut Membre
     
    http://www.cijoint.fr/cjlink.php?file=cj200911/cijd1fzJI7.xls;
    Voilà qui est fait.
    0
  13. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    tu as oublié de rendre le fichier accessible en clicquant sur la case rendre public
    0
  14. petitpeppino Messages postés 22 Statut Membre
     
    http://www.cijoint.fr/cjlink.php?file=cj200911/cijhQWBduW.xls
    j'espère que cette fois c'est la bonne
    0
  15. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  16. petitpeppino Messages postés 22 Statut Membre
     
    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
  17. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  18. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  19. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
  20. Bishop
     
    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
  21. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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