Bouton commande vba

Résolu
Bonjour a tous,

Alors voila j'ai un classeur avec des données, des tableaux et des graphiques et je souhaiterai a l'aide d'un bouton de commande copier et coller l'intégralité de mon classeur dans un nouveau classeur. Je suis novice en programmation et je n'arrive pas créer le code nécessaire.
Si quelqu'un veut bien m'aider ??

Merci et bonne journée

12 réponses

  1. Bonjour,

    En fait tu veux dupliquer ton classeur, mais ou veux tu le créer dans le même répertoire ?
    Et quel nom veux tu lui donner ?

    si tu veux le copier dans un fichier déjà existant, combien d'onglet veux tu copier ?
    et es ce que le fichier est dans le même dossier ?

    Un code VBA est très strict donc il faut être précis
    0
    1. Merci d'avoir répondu si rapidement

      Il faudrait dupliquer le classeur existant dans un autre classeur pas encore crée qui s'appellerai "copie" par exemple. Il doit etre a l'identique du premier classeur avec les onglets les données etc
      Je ne veux pas copier mon classeur dans un fichier existant mais dans un nouveau fichier
      0
      1. Re,

        Ok ça je l'avais à peu prêt compris, tu veux un bouton pour dupliquer un fichier, dans le code doit on prévoir l'enregistrement du fichier existant pour prendre en compte toute modification de dernière minute ?

        Mais tu n'as pas répondu à ma question, le nouveau fichier ou tu veux l'enregistrer dans le même répertoire ?
        0
        1. Oui il faut prévoir l'enregistrement du fichier en cas de modification.
          Désolé je n'avais pas compris la question, oui le nouveau fichier sera enregistrer dans le même repertoire.
          Merci
          0
          1. Re,

            Voilà le code à coller dans un répertoire et associer à un bouton

            Option Explicit

            Dim chemin, nom, Fichier As String
            Dim SourceWb As Workbook

            Sub Copie_De_Fichier()
            Application.DisplayAlerts = False '-------Annulation des alertes
            ActiveWorkbook.Save
            '---------------------Identification du dossier d'enregistrement
            chemin = ActiveWorkbook.Path
            '---------------------Nom du nouveau classeur ou cellule contenant le nom et définition de l'extension si différente d'application
            nom = "Copie" '& ".xls" ou [B5].Value & ".xls" '--Respecter l'extension du classeur cible
            Set SourceWb = ActiveWorkbook
            SourceWb.SaveCopyAs Fichier
            Application.DisplayAlerts = True '-------rétablissement des alertes
            End Sub

            0
            1. Merci bcp

              Mais quand je clique sur le bouton ca m'enregistre seulement le classeur il n'est pas dupliquer
              0
              1. Re,

                J'ai rajouté une ligne au code

                Option Explicit

                Dim chemin, nom, Fichier As String
                Dim SourceWb As Workbook

                Sub Copie_De_Fichier()
                Application.DisplayAlerts = False '-------Annulation des alertes
                ActiveWorkbook.Save
                '---------------------Identification du dossier d'enregistrement
                chemin = ActiveWorkbook.Path
                '---------------------Nom du nouveau classeur ou cellule contenant le nom et définition de l'extension si différente d'application
                nom = "Copie" & ".xls" 'ou [B5].Value & ".xls" '--Respecter l'extension du classeur cible
                Set SourceWb = ActiveWorkbook
                Fichier = chemin & Application.PathSeparator & nom
                SourceWb.SaveCopyAs Fichier
                Application.DisplayAlerts = True '-------rétablissement des alertes
                End Sub
                0
                1. Super ca marche MERCI
                  Dernière question : est il possible d'ouvrir la copie directement en cliquant sur le bouton de commande ?
                  0
                  1. Re,

                    voila le code, par contre si le nom de la copie doit changer, il est possible d'écrire une variable avec le nom du nouveau fichier ou aller chercher le nom du fichier à créer dans une cellule

                    Option Explicit

                    Dim chemin, nom, Fichier As String
                    Dim SourceWb As Workbook

                    Sub Copie_De_Fichier()
                    Application.DisplayAlerts = False '-------Annulation des alertes
                    ActiveWorkbook.Save
                    '---------------------Identification du dossier d'enregistrement
                    chemin = ActiveWorkbook.Path
                    '---------------------Nom du nouveau classeur ou cellule contenant le nom et définition de l'extension si différente d'application
                    nom = "Copie" & ".xls" 'ou [B5].Value & ".xls" '--Respecter l'extension du classeur cible
                    Set SourceWb = ActiveWorkbook
                    Fichier = chemin & Application.PathSeparator & nom
                    SourceWb.SaveCopyAs Fichier
                    Workbooks.Open Filename:=ThisWorkbook.Path & "\Copie.xls"
                    Application.DisplayAlerts = True '-------rétablissement des alertes
                    End Sub
                    0
                    1. Merci beaucoup et désolé d'avoir pris un peu de ton temps
                      0
                      1. Re,

                        Avec plaisir, si tes attentes sont satisfaites, met le statut de la discussion en résolu ou confirme le moi que je la fasse pour toi
                        0
                        1. Oui c'est résolu par contre je ne sais pas comment faire, si tu veux bien le faire merci
                          0