VBA Copier coller d'1 feuille à 1 autre

Bonjour,

Je suis vraiment débutante dans VBA et je me suis lancée dans un projet impossible...

Je cherche à créer des cases et si elles sont cochées alors le contenu d'une feuille qui se trouve dans le classeur (Feuil 2,3,4....) se retrouve en dessous de la feuille ayant les cases (Feuil1).

Il y aura plusieurs cases cochées donc le contenu doit à chaque fois venir en dessous du contenu précedent dans la Feuil1.
(Pour info il ya des images dans les Feuil 2,3,4...)

En fait j'essaye de créer un devis (Feuil 1) avec des fiches techniques qui s'ajoutent si on valide la case.

Donc j'ai commencé comme ca :

Sub Caseàcocher1_Cliquer()
Sheets("Feuil1").Select
Range("Feuil1").Copy
Sheets("Feuil2").Select
Range("Feuil2").Select
End Sub

Impossible d'y arriver, peut etre que tout est faux...Merci à celui qui saura m'aider.

4 réponses

  1. bonjour

    essaies ceci

    Sheets(2).Range("A1:I47").Copy Sheets(1).Range("A49")

    bonne suite
    0
    1. Contributeur
      Bonjour,
      L'exposer de ta question manque, pour le moins, de clarté !
      1°) Tes CheckBox, il viennent de la barre d'outils "Boite à outils Contrôle" ou de la barre d'outils Formulaire ?
      Chacun à un mode de fonctionnement totalement différent.
      Ensuite..
      d'une feuille qui se trouve dans le classeur (Feuil 2,3,4....) se retrouve en dessous de la feuille ayant les cases (Feuil1).
      Et...
      Tu veux copier quoi et où.. de la feuille X vers où de la feuille Y ?
      Explique un peu mieux si tu veux être aidée valablement.
      A+

      Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
      NOTE : Je ne répond pas aux MP pour les questions techniques.
      0
      1. re

        - as tu essayé la proposition du post 3?

        - pour tes cases à cocher tu devrais utiliser des contrôles activeX (affichage/Boite à outils contrôles) nettement plus simples à mettre en oeuvre
        dans ton cas on aurait par exemple une recopie lorsque la Checkbox1 est cochée

        Private Sub CheckBox1_Click()
          If CheckBox1.Value = True Then
            Sheets(2).Range("A1:I47").Copy Sheets(1).Range("A49")
          End If
        End Sub

        - comme dit lermitte plus haut, il est difficile pour nous de voir exactement le pb
        - tu devrais joindre ton fichier (ou une partie sans données confidentielles au format excel 2003) en utilisant cjoint.com et en mettant le lien obtenu dans ton prochain post

        bonne suite
        0
        1. Bonjour Scally,

          Tu peux faire ainsi:

          Worksheets(1).Range("A1:XFD65536").Copy
          Worksheets(2).Activate
          Worksheets(2).Range("A1").Select
          Worksheets(2).Paste

          ou un truc du genre?
          -1
          1. Bonjour Heremion,

            Merci pour ton aide.
            J'ai essayé ca et ca ne marche tj pas :

            Sub Structure12_Caseàcocher1_Cliquer()
            Worksheets(2).Range("A1:I47").Copy
            Worksheets(2).Activate
            Worksheets(1).Range("A49:I95").Select
            Worksheets(1).Paste
            End Sub

            La copie fontionne mais le worksheets 1 range non...

            As tu une idee?
            0
          2. Dans la feuille où tu vas copier les données, inutile de mentionner toute la plage, tu mets juste la cellule de départ.
            0