recopier ligne du dessus au double/clic ou clic droit

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
je suis en train de réaliser un tableau où des valeurs identiques peuvent se retrouver lignes après lignes
je suis à la recherche du code qui permet sur un clic droit ou un double clic (au choix!!) de recopier la cellule située au dessus de celle qui est active et ce, sur les colonnes C, D, et E
comment réaliser ceci en VBA?
merci
 
Re : recopier ligne du dessus au double/clic ou clic droit

Bonjour Pascal,

regarde le code ci-dessous si il peut t'aider, à utiliser dans le module de la feuille concernée...

Code:
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 2 And Target.Column < 6 Then
    If Target.Row > 1 Then Target.Offset(-1, 0).Copy Range("h65536").End(xlUp)(2)
    Cancel = True
End If
End Sub

bonne journée
@+
 
Re : recopier ligne du dessus au double/clic ou clic droit

bonjour pierrot
la recopie se fait bien mais pas dans la bonne colonne
en que je fasse clic droit (oui j'ai choisi le clic droit!!) dans la colonne C D ou E
ça me recopie tout dans la colonne H
peut-être que je me suis mal expliqué
j'aimerais d'ailleurs que la colonne B soit aussi concernée par le code si possible
merci
 
Re : recopier ligne du dessus au double/clic ou clic droit

Re,

pour prendre en compte la colonne B :

modifier cette ligne :
Code:
If Target.Column > [COLOR="red"]2[/COLOR] And Target.Column < 6 Then

par :
Code:
If Target.Column > [COLOR="Red"]1[/COLOR] And Target.Column < 6 Then

@+
 
Re : recopier ligne du dessus au double/clic ou clic droit

re
pour cette partie du code j'avais déja modifier , je l'ai fais un peu à la "sauvage"
Code:
If Target.Column < 6 Then
ça marche aussi
merci quand même
là je suis en train de chercher un code qui fasse la recopie mais colonne par colonne, pour éviter de me servir de "target" quitte à le recopier pour autant de colonne qu'il y a
 
Re : recopier ligne du dessus au double/clic ou clic droit

Code:
If Target.Row > 1 Then [COLOR="Red"]Target[/COLOR].Offset(-1, 0).Copy Target.End(xlUp)(2)
ok c'est bon , j'ai trouvé en remplacent 'range(f65000) par target
tput betement
merci pour ton aide
 
Re : recopier ligne du dessus au double/clic ou clic droit

Re,

attention, avec ce code :
Code:
If Target.Row > 1 Then Target.Offset(-1, 0).Copy Target.End(xlUp)(2)

il y a des chances pour que la cllulle de destination ne soit pas vide, et donc son contenu remplacé... A voir si c'est cela que tu veux...
 
Re : recopier ligne du dessus au double/clic ou clic droit

bonjour
je relance car je souhaiterais une petite modification
toujours sur la base du code ci-dessous
Code:
If [COLOR="Red"]Target[/COLOR].Column < 6 Then
    If Target.Row > 1 Then Target.Offset(-1, 0).Copy Target.End(xlUp)(2)
    Cancel = True
End If
mais avec un bouton et non plus au double clic ou au clic droit
tel quel, j'ai une erreur du type "variable non définie"
avec "target" surligné
pouvez-vous m'aider à modifier ce code merci
ce que je souhaiterais en fait:
c'est les colonnes b c d et e recopie la derniere ligne écrite
je vous joint cette fois un petit fichier
il s'agit de gagner du temps sur des saisies répètitives
au pire un bouton par colonne me conviendrait aussi
merci de votre aide
 

Pièces jointes

Dernière édition:
Re : recopier ligne du dessus au double/clic ou clic droit

bonjour pierrot
ça marche mais uniquement sur une cellule active
j'ai modifié le code comme cela
c'est un peu barbare mais ça fonctionne
Code:
    If ActiveCell.Row > 1 Then ActiveCell.Offset(-1, 0).Copy ActiveCell.End(xlUp)(2)
ActiveCell.Offset(0, 1).Select
If ActiveCell.Row > 1 Then ActiveCell.Offset(-1, 0).Copy ActiveCell.End(xlUp)(2)
ActiveCell.Offset(0, 1).Select
If ActiveCell.Row > 1 Then ActiveCell.Offset(-1, 0).Copy ActiveCell.End(xlUp)(2)
ActiveCell.Offset(0, 1).Select
If ActiveCell.Row > 1 Then ActiveCell.Offset(-1, 0).Copy ActiveCell.End(xlUp)(2)
ActiveCell.Offset(0, 1).Select
il y a surrement le moyen de le simplifier
mais je ne sais pas faire
 
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
1
Affichages
443
Retour