VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bougla972

XLDnaute Occasionnel
Bonjour le forum,

Je cherche à copier l'image d'un Userform et la coller dans une feuille à l'aide de l'API "vbKeySnapshot ".

Beaucoup de fils traitent de ce sujet; cependant, la méthode "Paste" bug, je pense que c'est lié à la fontion "Doevents" mais je n'en suis pas sûr...

Un petit exemple joint pour illustrer ma demande.

Merci d'avance pour votre contribution.
 

Pièces jointes

  • Doevents.xlsm
    19.6 KB · Affichages: 76

Paf

XLDnaute Barbatruc
Re : VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bonjour,

Sous XL2003, le seul problème rencontré, si on lance une deuxième copie de l'USF, est la "re-création" de la feuille "Capture" qui existe déjà (avec l'image de l'USF).

Bonne suite
 

Bougla972

XLDnaute Occasionnel
Re : VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bonjour Paf,

Ok pour la gestion de la "re-création" de la feuille "Capture"...

Cepandant, la macro bug sur l'instruction "Paste"

Prb_Paste.png

Est-ce lié au fait que l'appli Xl n'ait plus active ?
 

Bougla972

XLDnaute Occasionnel
Re : VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bonsoir Hasco,

Merci de t'être pencher sur mon problème....
Je ne recontre aucun problème lorsque le presse papier contient déjà au moins une image....et si c'est le cas il me copie la première image issus du presse papier. Du coup, il ne me copie pas la bonne image...:mad: Un vrai casse tête , j'ai beau éplucher les différents fils du forum traitant de ce sujet, pas de sollution en vu...:(

Si tu peux faire l'essai en supprimant le contenu du presse papier et de retenter la procédure, tu auras le même type d'erreur...

Merci d'avance.
 

david84

XLDnaute Barbatruc
Re : VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bonjour tout le monde, salut à l'ami Hasco,
Je cherche à copier l'image d'un Userform et la coller dans une feuille à l'aide de l'API "vbKeySnapshot ".
vbKeySnapshot n'est pas une API, c'est la clé identifiant la touche imprime écran qui doit être utilisée dans le 1er argument de l'API keybd_event.

Pour ma part j'ai testé comme cela et cela fonctionne chez moi (c'est bien la dernière image copiée qui est collée) :
Code:
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub CommandButton2_Click()
    keybd_event vbKeySnapshot, 1, 0&, 0&
    DoEvents
    Unload Me
    Sleep 100
    With Sheets(2)'à adapter à la feuille que tu veux
      .Activate
      .Range("A1").Select
      .Paste
    End With
End Sub
Code à placer dans le UserForm.
A+
 

Bougla972

XLDnaute Occasionnel
[Résolu] : VBA Utilisation API vbKeySnapshot => Problème avec Dovents ?

Bonsoir David, le forum,

Désolé pour la réponse tardive...pris par le taf !!
Effectivement David, ta méthode fonctionne parfaitement...Un grand grand merci à toi !! :D
D'autant que je pensais ne pas avoir de solution à mon problème :eek:

Est-ce l'instruction "Sleep 100" qui fait la différence ?

Merci encore et bon week end de Pacques
 

Discussions similaires

Statistiques des forums

Discussions
312 636
Messages
2 090 370
Membres
104 511
dernier inscrit
hsakho