Bouton commande vba

Résolu
kev66 -  
kev67 Messages postés 5 Statut Membre -
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. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  2. kev66
     
    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
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  4. kev66
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  7. kev66
     
    Merci bcp

    Mais quand je clique sur le bouton ca m'enregistre seulement le classeur il n'est pas dupliquer
    0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  9. kev67 Messages postés 5 Statut Membre
     
    Super ca marche MERCI
    Dernière question : est il possible d'ouvrir la copie directement en cliquant sur le bouton de commande ?
    0
  10. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  11. kev67 Messages postés 5 Statut Membre
     
    Merci beaucoup et désolé d'avoir pris un peu de ton temps
    0
  12. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    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
  13. kev67 Messages postés 5 Statut Membre
     
    Oui c'est résolu par contre je ne sais pas comment faire, si tu veux bien le faire merci
    0