IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]sauvegarde de .xls


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut [VBA-E]sauvegarde de .xls
    bonjour

    pour faire simple...j'ai un bouton qui fait sa..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Sub SaveFiles()
    'sauvegarde le .xls dans sauvegarde
     
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".xls", _
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & Application.Caller & ".xls"
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _
        & Application.Caller & ".xls"
     
    End Sub
    mais enfait je voudrais que sur chaque click sur le bouton..
    le .xls qui est copier dans sauvegarde vois son nom incrementé+1 par raport au precedent...


    j'ai essayé en metent simplement un compteur mais sa ne marche pas...

    je demande donc votre aide..

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Par défaut
    Salut ogenki,

    l'indice que l'on doit incrementer est déja dans application.caller ?
    Pour etre clair qui ya t-il dans application.caller

    @+

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    il y a le nom du fichier... exemple " testfichier"

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Par défaut
    donc si tu dois incrémenter application.caller contiendra la prochaine fois testfichier01 par exemple
    ou mieux testfichier_01 par exemple

    t'es d'accord ?

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    donc si tu dois incrémenter application.caller contiendra la prochaine fois testfichier01 par exemple
    ou mieux testfichier_01 par exemple

    t'es d'accord ?

    oui exactement

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pour quelle raison le compteur ne fonctionnet-t-il pas ? Ton compteur se trouve réinitialisé pour chaque nouveau fichier ?

    A+

  7. #7
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    je croi que c'est juste parseque j'ai ecrit une belle conerie


    genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub SaveFiles()
    'sauvegarde le .xls dans sauvegarde
    dim cmp
    for cmp = 1 to 100
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".xls", _
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & Application.Caller & cmp & ".xls"
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _
        & Application.Caller & ".xls"
    next
    End Sub

  8. #8
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    j'ai un peu de mal a comprendre la...

    j'ai mis ton code... sa marche.. c'est a dire qu'il fait bien la sauvegarde et il ouvre le fichier

    mais il plante....avec une erreur
    permission refusée
    sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".xls", _
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & Application.Caller & cmp & CStr(i) & ".xls"

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    sa a l'air de ressemblé mais je ne vois pas trop comment m'en servir...

  11. #11
    Membre expérimenté
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Par défaut
    salut a tous

    Dites moi si j'ai mal compris j'ai un doute !

    Au prochain clic ogenki m'a confirmé que par exemple
    application.caller contiendrai testfichier_01 par exemple

    donc avec ton code ouskel'nor
    le fichier devient testfichier_01+compteur -->testfichier_01_02

    et non testfichier_02

    merci de m'éclairer
    @+

  12. #12
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu n'aurais pas mis une protection sur ton classeur autre que le readOnly ?
    Si tu enregistres une première fois ton fichier avec ReadOnly, tu ne peux pas la suivante l'enregistrer sous le même nom... tu sais ça.
    J'émets cette hypothèse en raison de l'une de tes questions récentes concernant la protection d'un classeur (readOnly, pas readOnly... au fait, tu as réglé le pb ?)

    A+

  13. #13
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    lol non le classeur ne devrais pas etre protejé.. et non toujour pas de solution...


    Dites moi si j'ai mal compris j'ai un doute !

    Au prochain clic ogenki m'a confirmé que par exemple
    application.caller contiendrai testfichier_01 par exemple

    donc avec ton code ouskel'nor
    le fichier devient testfichier_01+compteur -->testfichier_01_02

    et non testfichier_02

    merci de m'éclairer
    tu a tres bien compris... et tu a reson le code de ouskel'n'or est bugger

  14. #14
    Membre expérimenté
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Par défaut
    Adapte ceci avec application.caller

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub IncrementeFichier()
    Dim test As String
    test = "TestFichier_01"
        If InStr(1, test, "_") = 0 Then
            'Pas d'incrementation trouvé = premierfichier
            increment = "01"
        Else
            'Si incrementation trouvée
            pos = InStr(1, test, "_")
            increment = Format(CStr(CDbl(Mid(test, pos + 1, Len(test)) + 1)), "00")
        End If
    'ici increment = "02"
    test = Left(test, pos) & increment
    End Sub
    @+

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    donc avec ton code ouskel'nor
    le fichier devient testfichier_01+compteur -->testfichier_01_02
    Oui, parce que tu re-ouvres le fichier que tu viens d'enregistrer, autant pour moi. Je n'avais pas compris comment ça marchait
    Dans ce cas là, du dois formater cmp et placer une balise (voir la réponse de Bouley) Je prends underscore comme lui.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub SaveFiles() 
    'sauvegarde le .xls dans sauvegarde 
    dim cmp 
    for cmp = 1 to 100 
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".xls", _ 
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & Left(Application.Caller,instr(_)-1) & "_" & cstr(cmp)  & ".xls" 
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _ 
        & Left(Application.Caller,instr(_)-1) & "_" & cstr(cmp)  & ".xls"
    next 
    End Sub
    Essaie de comprendre ce que j'ai fait afin de l'adapter à ce que tu souhaites... Je ne connais pas l'ensemble de ton appli... et je ne suis pas le seul...

    A+

    Edit
    Pour FileCopy, je considère que tu parts d'un fichier sans N°
    Sinon, tu dois connaître le N° de départ (!)

  16. #16
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    le probleme etant que le "fichier source" et de la forme..fichiertest et non fichiertest_01

  17. #17
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    pourquoi il aime pas le _ dans instr(_)-1???

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Parce que j'ai laissé un bug

    ("_")

    Edit
    Mais ça, tu aurais pu le voir tout seul, non ? ça m'aurait évité de rougir de honte...

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public Sub SaveFiles()
    'sauvegarde le .xls dans sauvegarde
    Dim cmp
    For cmp = 1 To 100
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & Application.Caller & ".xls","C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & Left(Application.Caller,instr(_)-1) & cstr(cmp)  & ".xls"
     
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _
        & Left(Application.Caller,instr(_)-1) & cstr(cmp)  & ".xls"
    Next
    End Sub
    ne marche pas non plus.. la meme erreur

  20. #20
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    j'ai enlevé les "_"... mais sa marche pas..

    dans instr(_) le _ est consideré comme caractere incorect... :s

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 5 12345 DernièreDernière

Discussions similaires

  1. [VBA][Word]Sauvegarder sans les macros
    Par Oui-Oui MB dans le forum VBA Word
    Réponses: 3
    Dernier message: 23/07/2007, 12h29
  2. [VBA-E]copie de .xls et formulaires
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 38
    Dernier message: 23/02/2006, 13h31
  3. [VBA-E].txt vers .xls
    Par Empty_body dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 08/02/2006, 14h46
  4. [VBA] MSDE Sauvegarde DB
    Par borislotte dans le forum Général VBA
    Réponses: 4
    Dernier message: 27/01/2006, 11h17
  5. [VBA EXCEL]Sauvegarde classeur
    Par Tan dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/02/2005, 10h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo