Application d'une macro sur plusieurs lignes

Résolu/Fermé
axelody Messages postés 3 Date d'inscription dimanche 10 février 2019 Statut Membre Dernière intervention 10 février 2019 - Modifié le 10 févr. 2019 à 12:32
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 - 10 févr. 2019 à 17:17
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
A voir également:

2 réponses

yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 471
Modifié le 10 févr. 2019 à 13:44
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
axelody Messages postés 3 Date d'inscription dimanche 10 février 2019 Statut Membre Dernière intervention 10 février 2019
10 févr. 2019 à 13:51
Parfait ton code !
est-ce que la macro prend toute la colonne A de la feuille 1?

Merci beaucoup !
0
yg_be Messages postés 22708 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 avril 2024 1 471 > axelody Messages postés 3 Date d'inscription dimanche 10 février 2019 Statut Membre Dernière intervention 10 février 2019
10 févr. 2019 à 17:17
oui, toute la colonne A de la feuille où tu mets le code Worksheet_BeforeDoubleClick.
0
axelody Messages postés 3 Date d'inscription dimanche 10 février 2019 Statut Membre Dernière intervention 10 février 2019
10 févr. 2019 à 13:43
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