Insertion ligne dans Excel avec une Worksheet

Résolu
Mistral_13200 Messages postés 636 Date d'inscription   Statut Membre Dernière intervention   -  
Mistral_13200 Messages postés 636 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Pour les besoins d'un classeur je voudrais insérer une ligne juste en dessous de la ligne sur laquelle a lieu un double clic et positionner le curseur sur la cellule située sur la ligne insérée et dans la colonne à droite de celle ou a été fait le double clic :
Expl : double clic sur E21 curseur sur F22.

J'ai récupéré et adapté la procédure Worksheet ci-dessous à :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim L As Long
L = ActiveCell.Row ' Récupere le N° de la Ligne active.
Rows(L).Copy ' Copie la ligne active.
Rows(L).Insert Shift:=xlDown ' Insère la ligne copiée en dessous de la ligne active.
L = L + 1' Plus 1 sur le N° de ligne.
Range(Cells(L, 6), Cells(L, 12)).ClearContents  ' Efface les cellules de F à L de la ligne N+1
L = L + 1	' Plus 1 sur le N° de ligne.
Range(Cells(L, 6)).Select
End Sub


Mon problème c'est que je plante sur la ligne : Range(Cells(L, 6)).Select avec une erreur 1004 La méthode Range de l'objet Worksheet a échoué.

Pouvez- m'aider ? Je n'arrive pas à comprendre mon erreur.
D'autre part serait-il possible que cette procédure ne soit déclenchée que lorsqu'on fait un double clic sur une des cellules de la Colonne "E" uniquement.

D'avance merci pour votre aide.
Cordialement.
Mistral.
A voir également:

2 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

Tu devrais utiliser Target plutôt que ActiveCell, mais bon.

1)
Cells(L, target.column+1).Select devrait aller.
Mais j'ai l'impression que tu fais 2 fois L=L+1...

2) à mettre en début de code :
if target.column<>5 then exit sub

eric


0
Mistral_13200 Messages postés 636 Date d'inscription   Statut Membre Dernière intervention   4
 
Bonjour Eric,

C'est parfait!
Tout fonctionne correctement et effectivement j'ai supprimé le 2iem
L=L+1

J'ai exatement ce que je cherchais.
Merci à toi
Mistral
0