Application d'une macro sur plusieurs lignes

Résolu
axelody Messages postés 3 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

Après moultes recherches sur le forum, j'ai du mal à trouver le cas qui s'applique à ce que je recherche.
J'ai un catalogue de pièces sur un document excel et je voudrais faire une copie d'une ligne vers une autre feuille via un double-clic sur la colonne A afin d'obtenir une liste de souhait.

J'ai réussi à obtenir ce que je veux pour une ligne en créant une macro en exemple sur la ligne 16, mais je sens que je ne pars pas dans la bonne direction pour pouvoir étendre cela à environ 15 000 lignes.

Voici ce que j'ai créé jusque là :

Dans module 1 :

Sub Copie_ligne()
'
' Copie_ligne Macro
' Copie de la ligne
'

'
Range("Z16:AF16").Select
Selection.Copy
Sheets("Feuil2").Select
Rows("2:2").Select
Selection.Insert Shift:=xlDown
Sheets("Feuil1").Select
Application.CutCopyMode = False
Range("B16").Select
End Sub
--------------------------------------
Dans Feuil1 (code) :

Sub double_clic()
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A16")) Is Nothing Then
Application.Run ("Copie_ligne")
End If
End Sub

Je préfère prévenir que je débute dans les macros.
J'espère que vous pourrez m'aider. Merci par avance

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, tu souhaites pouvoir faire la même chose en double cliquant sur n'importe quelle cellule de la colonne A?
    suggestion:
    Sub Copie_ligne(cel As Range)
    cel.Offset(0, 25).Resize(1, 7).Copy
    Sheets("Feuil2").Rows("2:2").Insert Shift:=xlDown
    Application.CutCopyMode = False
    cel.Offset(1, 0).Select
    End Sub
    
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.count = 1 And Target.Column = 1 Then
        Call Copie_ligne(Target)
    End If
    End Sub
    1
    1. axelody Messages postés 3 Statut Membre
       
      Parfait ton code !
      est-ce que la macro prend toute la colonne A de la feuille 1?

      Merci beaucoup !
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > axelody Messages postés 3 Statut Membre
         
        oui, toute la colonne A de la feuille où tu mets le code Worksheet_BeforeDoubleClick.
        0
  2. axelody Messages postés 3 Statut Membre
     
    Bonjour yg_be

    C'est exactement ca.

    Pour être plus précis, je voudrais que quand je double clic sur la cellule A d'une ligne, ca me copie la ligne en question vers une autre feuille.

    exemples :
    double-clic en A1 => copie de la ligne 1 vers feuille 2
    double-clic en A18 => copie de la ligne 18 vers feuille 2
    0