Macro pour collage spécial

amine00z

XLDnaute Nouveau
Bonjour tout le monde :)

J'ai vraiment besoin de votre aide :( : je dois créer une macro qui s’exécute lorsque l'utilisateur tente de coller le contenu du presse papier sous forme de texte, sans aucun mise en forme (l'action de copier est exécutée par l'utilisateur aussi, pas la macro).

Le premier problème c'est que le code que j'ai trouvé
Code:
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ne marche que le contenu du presse papier provient d'excel, et que ça ne marche pas s'il copie quelque chose d'une autre application en vue de le coller sur excel.
Et si j'utilises
Code:
ActiveSheet.PasteSpecial Link:=False, NoHTMLFormatting:=True
et bien c'est l'inverse, ça marche pas lorsque l'utilisateur copie quelque chose d'excel.
Et il faut absolument que la macro fonctionne peu importe la provenance du contenu du presse papier.
Alors y a-t-il un moyen de faire en sorte que ça marche dans les deux cas ?

Le deuxième problème c'est que j'avais pensé affecter la macro au raccourci Ctrl+v, sauf que ça ne marchera pas lorsque l'utilisateur collera avec le clic droit au lieu de faire Ctrl+v.
Alors y a-t-il un moyen de faire en sorte que ça marche peu importe la manipulation faite pour coller ?

Je vous remercie infiniment pour votre aide :)
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Macro pour collage spécial

Bonjour,

pas sûr d'avoir compris ton problème, essaye peut être ceci :
Code:
'activer la reference Microsoft Forms 2.0 Object Library
Dim x As New DataObject
x.GetFromClipboard
ActiveCell = x.GetText

bonne journée
@+
 

amine00z

XLDnaute Nouveau
Re : Macro pour collage spécial

Bonjour Pierrot, oué ça marche du tonnerre mon ami :D. ça résout parfaitement le premier problème. Merci infiniment.
il ne me reste plus qu'a trouver une solution pour déclencher la macro lorsque l'utilisateur fait un collage avec le clic droit.
Encore merci.
 

Pierrot93

XLDnaute Barbatruc
Re : Macro pour collage spécial

Re,

regarde ceci, à placer dans le module de la feuille concernée, peut être y a t il lieu de mettre un contrôle sur l'adresse de la cellule clickée...
Code:
Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
If MsgBox("voulez vous un collage spéciale", vbYesNo) = vbYes Then NomDeTamacro
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 228
Messages
2 086 421
Membres
103 205
dernier inscrit
zch