Test sur Presse papier

mth

XLDnaute Barbatruc
Bonjour,
Malgré mes recherches je reste complètement enlisée dans un problème de presse papier, pas douée!! :confused:

Je voudrais tester le contenu du presse papier dans une macro:
Si presse papier vide alors je fais ça
Si non je fais autre chose

Quelqu'un connaîtrait-il l'instruction permettant à une débutante comme moi de savoir si le presse papier est vide ou pas?

Un grand merci pour votre aide précieuse
Mireille
 

samimi94

XLDnaute Occasionnel
Re : Test sur Presse papier

Re Mth,

Pour voir si le presse papier est vide, test cela 'source du site excelabo):

Comment tester si le presse papier contient bien des données ? Si c'est le cas comment alors déclencher une macro ?
Tu peux utiliser cette fonction perso, à recopier dans un module standard :

'=====================
Declare Function CountClipboardFormats Lib "user32" () As Long

Function IsClipboardEmpty() As Boolean
IsClipboardEmpty = (CountClipboardFormats = 0)
End Function
'=====================

Tu peux l'utiliser dans une feuille de calcul :

=IsClipboardEmpty()

ou dans du code vba :

Sub test()
Range("A1:L30").Copy
MsgBox IsClipboardEmpty
Application.CutCopyMode = False
MsgBox IsClipboardEmpty
End Sub
 

mth

XLDnaute Barbatruc
Re : Test sur Presse papier

sourire... merci beaucoup pour ton aide!!
Je me lance tout de suite avec ton code, comme je ne suis pas très douée ne t'inquiète pas si je mets un peu de temps à comprendre... mais je reviens vers toi de toute façon pour te tenir au courant.
Mille mercis et à tout à l'heure,
Mireille
 

mth

XLDnaute Barbatruc
Re : Test sur Presse papier

Me revoilà, avec un énorme merci!!
Ca marche!!

Juste pour ma culture générale j'aimerais bien comprendre les instructions suivantes (mais seulement si tu as quelques minutes à perdre pour m'expliquer...)


=====================
Declare Function CountClipboardFormats Lib "user32" () As Long
? pourquoi Lib "user32"

Function IsClipboardEmpty() As Boolean
IsClipboardEmpty = (CountClipboardFormats = 0)
? que veut dire countClipboardFormats=0
End Function
'=====================

Tu peux l'utiliser dans une feuille de calcul :

=IsClipboardEmpty()
?J'ai essayé cette fonction dans un cellule ds ma feuille de calcul, excel me répond 'Nom#', j'en déduis que je n'ai pas compris comment utiliser cette fonction...

Si non, pour résoudre mon problème, j'ai suivi tes instructions en mettant la fonction IsClipBoard dans un module, puis dans ma macro j'ai dit à excel:
If IsClipboardEmpty = True Then
xxx
Else
xxx

Formidable et sincèrement merci car je ne voyais pas comment m'en sortir!

Bien à toi,

Mireille
 

samimi94

XLDnaute Occasionnel
Re : Test sur Presse papier

Re MTH,

Pour répondre à tes questions :

countClipboardFormats = Permet de déterminer tous les types de format se trouvant dans le presse papier, en somme même les formats personalisés autres qu'Excel.

Lib "user32" = je ne saurai te l'expliquer car je ne suis pas une pro des fonctions, mais il me semble que c'est une référence en dur qui est obligatoire via VBA pour utiliser les fonctions presse papier (A confirmer par les pros de ce forum).

=IsClipboardEmpty() = Il s'agit d'une formule, tu dois donc faire référence à une autre cellule pour obtenir un résultat (si des xldnautes peuvent t'apporter des explications sur ce point, nous prenons ;) )

Quoiqu'il en soit je suis ravie que tu as réussi à obtenir le résultat escompté, d'autant plus une Saint Maurienne que je suis également :)

Bon dimanche à toi et toutes les personnes présentes sur le forum.
 

mth

XLDnaute Barbatruc
Re : Test sur Presse papier

Encore merci pour tes lumières; j'ai tellement à apprendre!!!
Petite pause pour aller voter maintenant .... et je reviendrai plus tard pour étudier tout ça.
Très bon WE à toi également ainsi qu'à tous les forumers
M
 

Discussions similaires

Réponses
17
Affichages
609

Statistiques des forums

Discussions
312 326
Messages
2 087 311
Membres
103 513
dernier inscrit
adel.01.01.80.19