Vba-copie totalité feuil sur une autre feuil

Résolu
Tehani_t Messages postés 245 Statut Membre -  
Tehani_t Messages postés 245 Statut Membre -
Bonjour le forum,

j'ai une feuille excel 1 et une feuille excel 2 dans le meme fichier.

j'aimerais créer un bouton, qui permettrait de copier le contenu de 1 dans 2.

comment faire ? Est il préférable de dupliquer 1 au lieu de copier son contenu dans 2 ?

en gros, quand il y a une modif dans 1, il faut que cette modif apparaisse dans 2 également.

Merci

3 réponses

  1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Le plus simple est de faire un clic droit sur l'onglet de la feuille 1 puis clic sur Déplacer ou copier, ensuite cocher la case Créer une copie et clic OK.
    Il vous reste à renommer la feuille selon vos besoins.
    0
    1. Tehani_t Messages postés 245 Statut Membre 21
       
      Merci, j'ai pas préciser que cette option n'était pas possible, mais merci quand meme !
      0
    2. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonsoir,
      Cette proposition est d'usage de base , il serait plus juste de dire que vous ne voulez pas l'utiliser.
      Salutations.
      Le Pingou
      0
    3. Tehani_t Messages postés 245 Statut Membre 21
       
      C'est vrai, les personnes qui utiliseront ce fichier ne voudront pas le faire.
      0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonsoir,

    bonsoir,
    1. j'aimerais créer un bouton, qui permettrait de copier le contenu de 1 dans 2.
    comment faire ? Est il préférable de dupliquer 1 au lieu de copier son contenu dans 2 ?

    oui, on peut commencer par ça comme dit Le Pingou

    2. en gros, quand il y a une modif dans 1, il faut que cette modif apparaisse dans 2 également.
    là, ça ne suffira plus
    si Feuil2 doit etre identique à Feuil1, je mettrai ça dans le code de la feuille 1 qui devrait MAJ Feuil2 à chaque chagement de Feuil1

    Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim c As Range 
    Dim a As Variant 
    Dim co As Long, li As Long 
    For Each c In Target 
      a = c.Value 
      li = c.Row 
      co = c.Column 
      Sheets("Feuil2").Cells(li, co).Value = a 
    Next c 
    End Sub 


    bonne suite
    0
    1. Tehani_t Messages postés 245 Statut Membre 21
       
      Merci d'avoir répondu, je vais tester !!!
      0
    2. Tehani_t Messages postés 245 Statut Membre 21
       
      testé, mais ca marche pas...
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonsoir,

      Juste une question qui me turlupine : pourquoi ce besoin de tout doubler, y compris doubler le poids du classeur ?
      Encore, une copie toutes les 5 min je comprendrais. Mais en temps réel une erreur est reportée immédiatement.
      Si tu pouvais m'éclairer...
      eric

      Edit: sans avoir testé je pense que le code de ccm81 est correct. A moins que tu aies mal exprimé ton besoin ? Au passage ça ne marche pas ne veut pas dire grand chose...
      0
    4. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Je me permet de vous dire que ce code de ccm81 fonctionne.
      Par contre: mais ca ne marche pas ne veut rien dire, il serait plus avantageux d'expliquer se qui ne fonctionne pas ... message d'erreurs, etc.
      Salutations.
      Le Pingou
      0
    5. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      nous sommes d'accord le pingou ;-)
      0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    J'ai l'impression que c'est l'image à un instant t que tu veux.
    Si c'est le cas :
    Worksheets("Feuil2").Copy After:=Sheets("Feuil2") 
    On Error Resume Next 
    Worksheets("Feuil2_" & Format(Date, "dd-mm-yy")).Delete 
    On Error GoTo 0 
    ' activer ligne suivante pour supprimer les formules 
    'ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value 
    ActiveSheet.Name = "Feuil2_" & Format(Date, "dd-mm-yy")

    Autorise une copie par jour et ajoute la date au nom de la feuille. A toi de choisir les conditions et le nom.

    Mais tu devrais ajouter qcq chose pour la distinguer de la feuille réelle, par exemple ajouter un motif
    ActiveSheet.UsedRange.Interior.Pattern = xlGray8
    et la protéger.

    eric
    0
    1. Tehani_t Messages postés 245 Statut Membre 21
       
      coooool !! ca fonctionne !!!!
      MERCI BCP A TOUS !!!
      0