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. Oui c'est résolu par contre je ne sais pas comment faire, si tu veux bien le faire merci
    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
      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
        1. Super ca marche MERCI
          Dernière question : est il possible d'ouvrir la copie directement en cliquant sur le bouton de commande ?
          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
            1. Merci bcp

              Mais quand je clique sur le bouton ca m'enregistre seulement le classeur il n'est pas dupliquer
              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

                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
                  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 ?
                    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
                      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