Quand je double-clic dans la Feuille A sur une cellule de la colonne B, toute la ligne de cette cellule est copiée sur la feuille B
Est il possible de ne sélectionner que la plage de C à F de cette ligne ?
ci dessous le code que j'utilise actuellement.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim WsSEr As Worksheet
Set WsSEr = Sheets("Synthèse Erreur") 'Feuil source
Application.ScreenUpdating = False
If Target.Column <> 2 Then Exit Sub 'si le double-clic n'est pas dans la colonne 2, sort de la procédure
Cancel = True 'évite le mode [Édition] lié au double-clic
Bonjour Kael,
Tu peux essayer comme cela (collage que texte sans format)
Bruno
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 2 Then Exit Sub 'si le double-clic n'est pas dans la colonne 2, sort de la procédure
Cancel = True 'évite le mode [Édition] lié au double-clic
with Sheets("Synthèse Erreur")
bas=.[A6500].end(3).row+1
lig=target.row
.range("A" & bas & ":D" & bas).value=range("C" & lig & "F" & lig).value
End with
MsgBox ("Le transfert de la ligne a été fait") 'previent ligne copiée
End Sub
Bon_soir
code dans la feuille source, l'onglet cible étant Feuil2
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal R As Range, Cancel As Boolean)
If Intersect(R, [B:B]) Is Nothing Or R = "" Then Exit Sub
R(1, 2).Resize(, 4).Copy Feuil2.Cells(Feuil2.Rows.Count, 1).End(xlUp)(2)
R(2, 1).Select
End Sub
toujours rien sauf l'erreur (meme en declarant les Bas et Lig et en retirant les ":" devant "D"
.Range("A" & bas & "D" & bas).Value = Range("C" & lig & "F" & lig).Value
Si... :
Fonctionne bien mais ne renvoie pas toutes les valeurs des cellules.
exemple: cellule "C" j'ai "Eco 212" ca renvoi "Eco 212" par contre si cellule "C" j'ai "Eco 212 ca renvoi "Eco 212" la valeur en dessous à disparu.
Delta 13"
saurais tu pourquoi, et aurais tu une solution?
.Range("A" & bas & ":D" & bas).Value = Range("C" & lig & ":F" & lig).Value
re:
rectifie la ligne comme ceci
J'avais oublié le dernier ":" et j'avais pas testé car pas de fichier
.Range("A" & bas & "" & bas).Value = Range("C" & lig & ":F" & lig).Value
Bruno
youky(BJ) :
la solution avec ta rectification fonctionne nickel.
si je peux abuser un peu, quand le renvoie est fait, peut on colorer la case du double click ?
Yes,
Ajoute la ligne en gras Target.Interior.Color = 65535
MsgBox ("Le transfert de la ligne a été fait") 'previent ligne copiée
End Sub
Pour facilement trouver le N° de couleur mets la couleur souhaitée dans une cellule et bouge plus de la selection
en vba>affichage>fenêtre-Exécution >écrit ?Selection.Interior.Color et fait Entrer
A la place du point d'interrogation on peut mettre Print
Bruno