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
    mouarf

    tu as pas compris...

    je reprend tout

    j'ai un fichier test2.xls

    dans lequel j'ai un code qui

    1 recherche tout les fichiers .xls
    2 tout les fichier .doc
    / pour chacun des .xls

    1 il copie les 6 premiere ligne les une sous les autre sur la feuille 1 de test2.xls( on va apeller ces 6 lignes "entete"
    2 crée un lien hypertexte sous chaque entete vers le .xls source
    3 crée un bouton qui creer un .doc qui a le meme nom que le .xls de l'entete...
    4créer un bouton qui fait une sauvegarde de chaque .xls dans un fichier sauvegarde et ouvre le .xls SOURCE pas la sauvegarde


    se qu'on fait la... c'est trouvé un moyen pour que les sauvegarde s'incremente

    je m'explique l'utilisateur clique sur le bouton...sa créer une sauvegarde Monfichier_01 et sa ouvre MonFichier....il fait des modification dans MonFichier...fait un ctrl+s et le ferme... elle reclicke sur le bouton... il faut reouvrir Monfichier et créer un MonFichier_02...ainsi desuite

  2. #2
    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
    Voilà !
    J'ai réalisé le code
    Comme j'ignore où est placée la sub "Public Sub SaveFiles()", j'ai testé le code sur le clic du bouton, donc dans la feuille de code de la feuille de calcul "Feuil1"
    Je te donne ça pour le principe
    Montre le code à SpaceFrog si tu dois l'adapter.
    L'incrémentation du bouton fonctionne
    La récupération du nom du bouton fonctionne
    La copie aussi et l'ouverture aussi
    Mais comme je n'utilise pas Application.caller, je crains de n'avoir pas tenu compte de certains paramètres que j'ignore.

    Pour tester, travaille sur une copie de test2.xls... La feuil qui porte le bouton doit s'appeler "Feuil1" sinon, tu modifies en conséquence la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Set LeBouton = Worksheets("Feuil1").OLEObjects(1)
    J'ai mis un exit sub afin que tu puisses faire un test sans copie de fichier. Je considère qu'avant le premier clic le bouton a pour nom le nom du fichier à copier. Les clics suivants conservant le nom + le N° incrémenté.
    Je ne sais pas comment tu passes d'un fichier à l'autre mais il y aura certainement une adaptation à faire.
    Si ça marche pour toi... avec ce que j'ai compris, ça pose encore et encore des questions pour moi...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Public Sub SaveFiles()
    'Private Sub CommandButton1_Click() 
    'sauvegarde le .xls dans sauvegarde
    Dim cmp, NomFich, NewFich, NoBouton, i as integer
    Dim ok as boolean
    NoBouton = 0
    'J'ai laissé cette partie mais si tu dois utiliser Application.Caller, le code suivant sera à adapter
    'ok = InStr(Application.Caller, "_") <> 0
        'If ok Then
                'NomFich = Left(Application.Caller, InStr(Application.Caller, "_") - 1) 'récupère le nom du fichier sans l'incrémentation
            'Else
                'NomFich = Application.Caller 'utile seulement au premier clic (pas de N°)
        'End If
        i = 1   '************ Voir explication en edit 3
        Set LeBouton = Worksheets("Feuil1").OLEObjects(i)
    'Récupération du nom du fichier - On s'arrête à la balise underscore si elle existe
        With LeBouton
            ok = InStr(.Name, "_") <> 0
            If ok Then
                    NomFich = Left(.Name, InStr(.Name, "_") - 1)
                    NoBouton = Val(Right(.Name, Len(.Name) - InStr(.Name, "_")))
                    .Name = NomFich & "_" & Trim(Str(NoBouton + 1))
                Else
                    NomFich = .Name
                    .Name = NomFich & "_" & "1" 'utile pour le premier clic (NoBouton = rien)
            End If
            NewFich = .Name
            MsgBox .Name
        End With
    Exit Sub
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & NomFich & ".xls", _
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & NewFich & ".xls"
        Workbooks.Open FileName:="C:\Documents and Settings\avaysse\Mes documents\" _
    & NomFich & ".xls"
    End Sub
    Tu me dis avant que je me couche ?

    A+ et bon courage. L'est pas simple simple ton pb... et à 6000 km de distance, l'est encore plus compliqué
    Edit
    IMPORTANT : J'ai supposé que tu n'avais qu'un bouton dans la feuilleS'il y en a plusieurs, tu modifies la valeur de i afin qu'il corresponde bien au bouton qui te sert pour créer les copies.

    Edit 2
    Si les noms de fichiers comportent un underscore, tu devras changer la balise. J'utilise souvent chr(160) - Alt + 255 - rarement utilisé dans les noms de fichiers (!!!) c'est un espace <> chr(32) que le dos affiche comme tel mais traite comme un caractère normal.

    Edit 3
    Si tu as plusieurs boutons dans ta feuille dans test2.xls, tu dois donc trouver l'index du bouton qui crée tes copies afin donner la valeur de cet index à i 'là où j'ai mis plein d'**********
    Pour trouver cet index, je t'ai fait un petit utilitaire qui te donne le nom du bouton et le N° d'index
    Une fois connu l'index, tu affectes donc sa valeur à i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub IndexDuBouton()
    Dim ok As Boolean, i As Integer
        For i = 1 To Worksheets("Feuil1").OLEObjects.Count
            Set LeBouton = Worksheets("Feuil1").OLEObjects(i)
            With LeBouton
                MsgBox .Name & " Index N° " & Str(i)
            End With
        Set LeBouton = Nothing
        Next
    End Sub
    Tu places ce code dans un module de Test2.xls et tu lances la macro depuis l'éditeur VBEditor
    Une fois que tu connais l'index, tu peux supprimer cette macro du module
    J'ai envie que ça marche, merde, quoi !

  3. #3
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Salut,

    J'ai bien lu tous les posts et tu résumes ce que tu cherches par :
    ... 4créer un bouton qui fait une sauvegarde de chaque .xls dans un fichier sauvegarde et ouvre le .xls SOURCE pas la sauvegarde

    se qu'on fait la... c'est trouvé un moyen pour que les sauvegarde s'incremente

    je m'explique l'utilisateur clique sur le bouton...sa créer une sauvegarde Monfichier_01 et sa ouvre MonFichier....il fait des modification dans MonFichier...fait un ctrl+s et le ferme... elle reclicke sur le bouton... il faut reouvrir Monfichier et créer un MonFichier_02...ainsi desuite
    Or il me semble que l'instruction FileCopy ne peut s'appliquer à lui-même.
    en gros tu lui dis : "copie toi à l'endrois ou je te dis" et comme il est ouvert il peut pas d'où le message d'erreur du début

    J'ai donc pensé à une astuce et pondu une macro qui fait exactement ce que tu veux à savoir :

    Quand tu cliques sur le bouton a il se sauvegarde dans l'endrois de sauvegarde voulu puis on ouvre le fichier d'aurigine et on ferme de fichier qui viens de se sauvegarder

    on se retrouve donc au final avec ta copie dont le fichier s'est incrémenté et le fichier d'aurigine ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Bouton1_QuandClic()
        Dim i As Long
        Dim chemin, nom_fic, chem_sav As String
     
        i = 0
        chemin = ThisWorkbook.Path
        nom_fic = ThisWorkbook.Name
        nom_source = ThisWorkbook.Name
        long_nom = Len(nom_fic) - 4
        chem_sav = chemin & "\sauvegarde\"
        nom_fic = Mid(nom_fic, 1, long_nom)
        nom_fic_sav1 = nom_fic & "_" & Format(i, "000") & ".xls"
        Do
            i = i + 1
            nom_fic_sav = nom_fic & "_" & Format(i, "000") & ".xls"
            nom_fic_sav_complet = chem_sav & nom_fic_sav
        Loop Until Dir(nom_fic_sav) = ""
        ActiveWorkbook.SaveAs Filename:=nom_fic_sav_complet
        nom_source = chemin & "\" & nom_source
        Workbooks.Open Filename:=nom_source
        Windows(nom_fic_sav).Activate
        Windows(nom_fic_sav).Close SaveChanges:=False
    End Sub
    Je remercie au passage bbil pour son bout de code : test si fichier existe ou pas

    je précise :
    1 : ce code fonctionne sur 2000 : je l'ai tester
    2 : ce code n'est pas optimisé
    3 : Il n'est peut-être pas très bien écrit, mais bon cela fonctionne
    4 : j'utilise pas ton "Application.Caller "

    Dis si cela te conviens

    Igloobel

  4. #4
    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
    Bonne idée Igloobel que celle de sauvegarder, après l'avoir ouvert le fichier, à copier sous le nom de la copie et d'ouvrir l'original ensuite...

    Juste un "détail", je ne pense pas que le fichier à copier soit le fichier courant. Ensuite, le nom du fichier à copier est récupéré dans le nom d'un bouton (Application.Caller) se trouvant dans une feuile de calcul du fichier contenant les macros.
    D'où le pourquoi de ma proposition précédente.

    Ton idée ?

    A+

    D'après ce que j'ai compris...

  5. #5
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Salut,

    Moi j'avoue humblement que "Application.Caller" je sais pas a quoi cela sert
    Lorsque je fais l'aide en ligne j'ai :
    Cette propriété renvoie des informations relatives à la manière dont Visual Basic a été appelé (voir tableau ci-dessous).

    Demandeur : Valeur renvoyée
    -Fonction personnalisée tapée dans une cellule unique : Objet Range spécifiant cette cellule
    -Fonction personnalisée appartenant à une formule matricielle dans une plage de cellules : Objet Range spécifiant cette plage de cellules
    - Macro Auto_Open, Auto_Close, Auto_Activate, ou Auto_Deactivate : Nom du document sous forme de texte
    - Macro activée par la propriété OnDoubleClick ou OnEntry : Nom de l'identificateur de l'objet graphique ou, le cas échéant, de la référence de cellule auquel la macro s'applique
    - Boîte de dialogue Macro (menu Outils), ou tout autre demandeur non décrit ci-dessus : Erreur #REF!

    En fait j'en suis à me demander dans quel contexte cela peu servir et si on ne peut pas s'en sortir autrement.
    Puisqu'il dit qu'il récupère le nom du fichier (Cf les premiers post) Ne peut'il pas faire autrement qu'avec "Application.Caller"

    Il faudrait savoir pourquoi il utilie "Application.Caller" plutôt qu'atre chose

    A suivre

    Igloobel

  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
    Salut Igloobel,
    Tu dis
    Ne peut'il pas faire autrement qu'avec "Application.Caller"
    L'autre solution ? C'est ce que j'ai tenté de faire avec mon code puisque je n'ai pas d'explication sur Application.caller, et encore moins l'accès (VBA97).
    Si tu as plus simple.
    N'empêche, intéressant le pb...

    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
    Citation Envoyé par Igloobel
    Salut,

    J'ai bien lu tous les posts et tu résumes ce que tu cherches par :
    ... 4créer un bouton qui fait une sauvegarde de chaque .xls dans un fichier sauvegarde et ouvre le .xls SOURCE pas la sauvegarde

    se qu'on fait la... c'est trouvé un moyen pour que les sauvegarde s'incremente

    je m'explique l'utilisateur clique sur le bouton...sa créer une sauvegarde Monfichier_01 et sa ouvre MonFichier....il fait des modification dans MonFichier...fait un ctrl+s et le ferme... elle reclicke sur le bouton... il faut reouvrir Monfichier et créer un MonFichier_02...ainsi desuite
    Or il me semble que l'instruction FileCopy ne peut s'appliquer à lui-même.
    en gros tu lui dis : "copie toi à l'endrois ou je te dis" et comme il est ouvert il peut pas d'où le message d'erreur du début

    J'ai donc pensé à une astuce et pondu une macro qui fait exactement ce que tu veux à savoir :

    Quand tu cliques sur le bouton a il se sauvegarde dans l'endrois de sauvegarde voulu puis on ouvre le fichier d'aurigine et on ferme de fichier qui viens de se sauvegarder

    on se retrouve donc au final avec ta copie dont le fichier s'est incrémenté et le fichier d'aurigine ouvert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Bouton1_QuandClic()
        Dim i As Long
        Dim chemin, nom_fic, chem_sav As String
     
        i = 0
        chemin = ThisWorkbook.Path
        nom_fic = ThisWorkbook.Name
        nom_source = ThisWorkbook.Name
        long_nom = Len(nom_fic) - 4
        chem_sav = chemin & "\sauvegarde\"
        nom_fic = Mid(nom_fic, 1, long_nom)
        nom_fic_sav1 = nom_fic & "_" & Format(i, "000") & ".xls"
        Do
            i = i + 1
            nom_fic_sav = nom_fic & "_" & Format(i, "000") & ".xls"
            nom_fic_sav_complet = chem_sav & nom_fic_sav
        Loop Until Dir(nom_fic_sav) = ""
        ActiveWorkbook.SaveAs Filename:=nom_fic_sav_complet
        nom_source = chemin & "\" & nom_source
        Workbooks.Open Filename:=nom_source
        Windows(nom_fic_sav).Activate
        Windows(nom_fic_sav).Close SaveChanges:=False
    End Sub
    Je remercie au passage bbil pour son bout de code : test si fichier existe ou pas

    je précise :
    1 : ce code fonctionne sur 2000 : je l'ai tester
    2 : ce code n'est pas optimisé
    3 : Il n'est peut-être pas très bien écrit, mais bon cela fonctionne
    4 : j'utilise pas ton "Application.Caller "

    Dis si cela te conviens

    Igloobel


    je passe rapidement entre 2h de cour pour repondre... le fichier que je copie n'est pas ouvert...puisque ce n'est pas le fichier sur lequel je travaille...

    voila

  8. #8
    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
    As-tu eu le temps de tester le code que je t'ai passé avec OLEObjects ?

    A+

  9. #9
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    non pas encore se n'est pas ma semaine ou je suis en entreprise eyant deja beaucoup de chose a faire pendant mes cours je regarderais plus atentivement la semaine prochaine

    merci a vous

  10. #10
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    permetez moi de sortir se post du placard

    salut ouskel'n'or

    voila..semaine de cour terminé je replonge dans mon code VB

    j'ai vu ton post celui avec 3 edit... mais plusieur chose me gene...

    1 ) test2.xls...est le seul fichier que je copie pas.. tout les fichiers que je copie non pas de bouton et il y a un seul bouton de copie par feuille...

    ayayay c'est pas tres tres clair tout sa...

    [EDIT]juste comme sa.. il faudrait pas recherché les fichier deja existant genre tout les "bob_x.xls"recuperé la chaine "bob_"et incrementé +1 du plus grand..

    je m'explique... si on a bob_0 bob_1 et bob_2
    les retrouvé... definir bob_2 comme le plus grand ( ou plus petit) et créer le nouveau en bob_3... en fesant par exemple des split sur les chaine de caractere..

  11. #11
    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
    test2.xls...est le seul fichier que e copie pas.. tout les fichier que je copie non pas de bouton et il y a un seul bouton de copie par feuille...
    C'est bien ce que j'ai compris. Mais si tu pouvais (enfin ) répondre à ma question :
    1 - Tes macros sont bien dans Test2.xls, tes boutons sont bien sur une feuille de calcul du fichier test2.xls ?
    2 - l'un des deux boutons sert bien à lister les fichiers ?
    3 - l'autre bouton sert bien à réaliser tout d'abord la copie puis l'ouverture de chaque fichier listé, l'un après l'autre ?
    4 - La copie conserve bien le nom du fichier d'origine plus un N° d'incrémentation

    Une réponse là-dessus et tout sera clair pour moi...
    Enfin... j'ai bien d'autres questions mais elles peuvent attendre...

    A+

  12. #12
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    1 - Tes macros sont bien dans Test2.xls, tes boutons sont bien sur une feuille de calcul du fichier test2.xls ?
    oui tout le code est dans test2... mes bouton sont dans ThisWorkBook mais il s'afiche sur ma feuille de calcul oui..


    2 - l'un des deux boutons sert bien à lister les fichiers ?
    non le "listing" se fait a l'ouverture de test2...

    3 - l'autre bouton sert bien à réaliser tout d'abord la copie puis l'ouverture de chaque fichier listé, l'un après l'autre ?
    oui et non..... oui sa fait la copie et sa ou et non il y a 1 bouton par fichier listé.. donc un seul fichier qui s'ouvre a chaque foi...


    4 - La copie conserve bien le nom du fichier d'origine plus un N° d'incrémentation

    oui !! exactement


    merci encore

  13. #13
    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
    Au poi! !

    Donc, le code que je t'ai donné "devrait" marcher, à cela près :
    La question qui me ronge, donc :
    L'incrémentation se fait-elle sur l'ensemble des fichiers, quelque soient leurs noms ou se fait-elle par fichier

    Est-ce
    Fich1, Fich2, Fich3, .... etc
    ou
    PremierNom1, SecondNom2, TroisièmeNom3, ...

    zat is ze big question...

    A+

  14. #14
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    elle se fait genre

    bob1 bob2........

    fich1 fich2........


    quel ton code ??

    le dernier posté avec les oleobjet??

    [EDIT]je vien de pensé a un truc...

    c pas un proble l'incrementation... vu que c sur click du bouton... et que pour le click il recupere le NomFich.. parcontre... il se pourai que se soit plus compliqué .. mais je voi pas comment le prog pourai "diferé" les incrementation..

  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
    elle se fait genre
    bob1 bob2........
    fich1 fich2........
    C'est "à peu près" ce que j'avais envisagé sauf que je ne prévoyais qu'un bouton pour tous les fichiers listés.

    le dernier posté avec les oleobjet??
    Oui, à modifier pour récupérer le nom du bouton.
    Je replonge dedans maintenant que je ne suis plus obligé de tout deviner... Avec un bouton par fichier, il ne devrait y avoir qu'une petite modif. Je regarde.
    Mais maintenant j'ai compris pourquoi "Application.caller"

    A tout de suite

  16. #16
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    Mais maintenant j'ai compris pourquoi "Application.caller"

  17. #17
    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
    Oui, mais on va tâcher de ne pas l'utiliser... sans quoi je ne peux pas le tester

  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
    Bon, je vois se profiler un problème auquel tu vas devoir réfléchir :
    Un bouton dont le nom a été incrémenté ne se réinitialise pas après enregistrement du fichier Test2.xls
    Si tu veux le réinitialiser, il faut prévoir 1 bouton qui le fasse. Soit pour le bouton incriminé, soit pour tous les boutons en une seule fois (ce qui serait plus facile)

    Tu réfléchis à çà pendant que je cherche "la" solution à ton pb initial...

    A+

  19. #19
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    je suis entrin de reflechir a une solution avec spafy sur le chat...

    on a crée une fonction pour recuperé tout les fichier d'un meme nom..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Public Function FindSave(ByVal Repertoire As String, ByVal NomFichier As String) As String()
    ' recherche tout les document durepertoire avec le nom de fichier voulu
    Dim test As String, cmpt As Integer, tabTemp() As String
        test = Dir(Repertoire & "NomFichier" & "*.xls")
        While test <> ""
            ReDim Preserve tabTemp(cmpt)
                tabTemp(cmpt) = test
                cmpt = cmpt + 1
                test = Dir
        Wend
        FindFiles = tabTemp
     
     
    End Function
    ...je ne sais pas quoi rajouté.. a tout sa..

  20. #20
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 335
    Par défaut
    ok!! je post une parti de la reponse finale...

    apres reflection nous avon decidée de ne pas incrementé le fichier.. mais juste de lui donné la date du jour pour les classé voici le code corespondant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Sub SaveFiles()
    'sauvegarde le .xls dans sauvegarde
    Dim cmp, NomFich
    NomFich = Application.Caller
     
        FileCopy "C:\Documents and Settings\avaysse\Mes documents\" & NomFich & ".xls", _
        "C:\Documents and Settings\avaysse\Mes documents\sauvegarde\" & NomFich & _
        "_" & Replace(Trim(Str(Date)), "/", "_") & ".xls"
        Workbooks.Open Filename:="C:\Documents and Settings\avaysse\Mes documents\" _
    & NomFich & ".xls"
     
    End Sub
    voila le code sera sensiblement modifier pour ajouté l'heure a la la date merci encore ousk si tu veu plus d'explication esite pas

+ Répondre à la discussion
Cette discussion est résolue.

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