Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Double clic recopie la ligne sélectionnée

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonjour le forum
Grace à ce code de Dull
je recopie une ligne avec un double clic
j'aimerais faire évoluer ce code
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim DerLig As Integer
If Not Intersect([A4:a500], Target) Is Nothing Then
DerLig = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
   Range(Target.Offset(0, 6).Address & ":" & Target.Address).Copy _
    Destination:=Sheets("Feuil2").Range("A" & DerLig)
     End If
End Sub
comment faire si je double clic sur une cellule de la colonne F, d'avoir en copie les colonnes A ; B ;F et G
et si je D/clic sur une cellule de la colonne C d'avoir en copie les colonnes A ;B ; c et D uniquement
je vois bien qu'il faut modifier ici mais je ne sais pas quoi y mettre
Code:
Range(Target.Offset(0, 6).Address & ":" & Target.Address).Copy _
    Destination:=Sheets("Feuil2").Range("A" & DerLig)
merci
 
Dernière édition:
Re : Double clic recopie la ligne sélectionnée

Bonjour

Ci dessous le code avec un début de réponse

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
Dim DerLig As Integer
With Sheets("Feuil2")
If Not Intersect([f4:f500], Target) Is Nothing Then
   DerLig = .Cells(Rows.Count, 1).End(xlUp).Row +1 
   .Range("a" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("a" & Target.Row).Value
   .Range("b" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("b" & Target.Row).Value
   .Range("f" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("f" & Target.Row).Value
   .Range("g" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("g" & Target.Row).Value
End If
If Not Intersect([c4:c500], Target) Is Nothing Then
   DerLig = .Cells(Rows.Count, 1).End(xlUp).Row +1 
   .Range("a" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("a" & Target.Row).Value
   .Range("b" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("b" & Target.Row).Value
   .Range("c" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("c" & Target.Row).Value
   .Range("d" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("d" & Target.Row).Value
End If

End Sub

A compléter pour la copie.

A tester

JP
 
Dernière édition:
Re : Double clic recopie la ligne sélectionnée

Bonjour,

Si j'ai bien compris :

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect([C4:C65536,F4:F65536], Target) Is Nothing Then Exit Sub
Dim DerLig As Long
Cancel = True
DerLig = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
Cells(Target.Row, 1).Resize(, 2).Copy Sheets("Feuil2").Cells(DerLig, 1)
[COLOR="red"]Target.Resize(, 2).Copy Sheets("Feuil2").Cells(DerLig, Target.Column)[/COLOR]
End Sub

Edit : si l'on veut qu'en Feuil2 les cellules soient toujours contiguës, remplacer la ligne en rouge par :

Code:
Target.Resize(, 2).Copy Sheets("Feuil2").Cells(DerLig, [COLOR="Red"]3[/COLOR])

A+
 
Dernière édition:
Re : Double clic recopie la ligne sélectionnée

bonjour Job75 jp14
jp14 j'ai une erreur sur ton code à la ligne coloriée en rouge
Code:
Cancel = True
Dim DerLig As Integer
With Sheets("Feuil2")
If Not Intersect([f4:f500], Target) Is Nothing Then
  [COLOR="red"] DerLig = .Range(Rows.Count).End(xlUp).Row + 1[/COLOR]
   .Range("a" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("a" & Target.Row).Value
   .Range("b" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("b" & Target.Row).Value
   .Range("f" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("f" & Target.Row).Value
   .Range("g" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("g" & Target.Row).Value
End If
If Not Intersect([c4:c500], Target) Is Nothing Then
   [COLOR="Red"]DerLig = .Range(Rows.Count).End(xlUp).Row + 1[/COLOR]
   .Range("a" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("a" & Target.Row).Value
   .Range("b" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("b" & Target.Row).Value
   .Range("c" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("c" & Target.Row).Value
   .Range("d" & DerLig).Value = Sheets(Target.Worksheet.Name).Range("d" & Target.Row).Value
End If

End With
et job75 ton code ne recopie que les colonnes A et B quelque soit la colonne choisie pour le d/clic C ou F
 
Re : Double clic recopie la ligne sélectionnée

Bonjour

Je pensais l'avoir corrigé, le code permet l'utilisation avec la version 2007

Ci dessous le code corrigé
DerLig = .Cells(.Rows.Count, 1).End(xlUp).Row +1

a tester

JP
 
Dernière édition:
Re : Double clic recopie la ligne sélectionnée

re
même rectifié les 2 codes ne recopient que A et B il doit y avoir un problème sur le classeur
je teste sur un brouillon
edit
sur le brouillon, c'est pire ça ne recopie que A
 
Dernière édition:
Re : Double clic recopie la ligne sélectionnée

par contre sur excel 2007 ça fonctionne
je viens de faire un essai
edit:
bon bin!! ça fonctionne maintenant j'ai juste fermé et ouvert excel 2003
comprenne qui pourra
merci à tout les deux pour votre aide
job j'ai retenue ta solution qui regroupe les données
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
586
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…