VBA : Pb de copier coller lors d'un Selectionchange...

L

Lapou

Guest
Bonjour le forum !!!

Je tourne sous Win 2000 Pro et Excel 2002

Le pb que je rencontre est qu'avec le code suivante :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
Range("A3:M1500").Interior.ColorIndex = xlNone
Range("A" & ActiveCell.Row & ":AD" & ActiveCell.Row).Interior.ColorIndex = 43
If Target.Row >= 2 And Target.Row <= 10000 Then
If Target.Count = 1 Then
Target.EntireRow.Columns("A:AD").Interior.ColorIndex = 43
Else
For Each cell In Target
cell.EntireRow.Columns("A:AD").Interior.ColorIndex = 43
Next
End If
End If
End Sub

lorsque je copie une cellule, il n'y a pas de pb mais lors du déplacement dans une autre cellule pour le callage, je n'ai plus rien à coller.

je ne comprends pas d'où vient le pb, peut-être du Xlnone !!! mais si j'enlève la ligne, je n'aurais plus la fonction réalisé !

merci pour votre aide et je suis pressé de vous lire ;-)

Bonne journée
Tchao
 
E

EricS

Guest
Bonjour,

je pense que interiorcolorindex utilise le presse papier et donc, si tu regardes en pas à pas, lorsque tu fais copier, l'icône "coller" se valide mais lorsque tu passes dan sle worksheet_change, cette icône se regrise et la fonction devient invalide.

Je n'ai pas de solution à te proposer, juste ce constat

A+

ERic
 
L

Lapou

Guest
Re: VBA : Pb de copier coller lors d'un Selectionchange...SOLUTION

Hello le forum !

j'utilise ce code qui marche parfaitement pour le copier/coller qui me manquait

Private Declare Function OpenClipboard& Lib "user32" _
(ByVal hwnd&)
Private Declare Function CloseClipboard& Lib "user32" ()

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
OpenClipboard 0&
Range("A1:M2").Interior.ColorIndex = 15
Range("N1:CC1500").Interior.ColorIndex = 15
Range("A65:CC1500").Interior.ColorIndex = 15
Range("A3:M3").Interior.ColorIndex = 37
Range("A4:M64").Interior.ColorIndex = xlNone
Range("A" & ActiveCell.Row & ":M" & ActiveCell.Row).Interior.ColorIndex = 43
If Target.Row >= 2 And Target.Row <= 10000 Then
If Target.Count = 1 Then
Target.EntireRow.Columns("A:M").Interior.ColorIndex = 43
Else
For Each cell In Target
cell.EntireRow.Columns("A:M").Interior.ColorIndex = 43
Next
End If
End If
CloseClipboard
End Sub

cependant lorsque je bosse sur d'autre feuille pendant qq temps et que ensuite je reviens sur la feuille ou le surlignement se produit, celui-ci ne fonctionne plus !!!!

est-ce normal !

Merci
Bonne journée
Lapou
 

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 936
Membres
103 987
dernier inscrit
Doctami