Coder une copie d'écran

Le
LargoWinch
Bonjour,

j'ai besoin d'automatiser une capture d'écran et un collage de cette
capture.
J'essaie le code suivant

Sub Test_ImprEcran()
SendKeys ("{PRTSC}")
SendKeys ("^v")
End Sub

ou (pour forcer sur la fenetre active)
Sub Test_ImprEcran()
SendKeys ("%{PRTSC}")
SendKeys ("^v")
End Sub

Le SendKeys ("%{PRTSC}") ne semble rien copier, puisque le Ctrl-V ne me
ramène que la copie précédente. Y-a-t-il une astuce pour simuler le "Imp
Ecr" ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18762951
Ceci fonctionne très bien chez moi.

ça imprime et colle la fenêtre Excel dans Excel.
'----------------------------
Sub Test_ImprEcran()
SendKeys "%{PRTSC}"
SendKeys "^v"
ActiveWindow.Activate
End Sub
'----------------------------



"LargoWinch" discussion : go3ofh$tg4$
Bonjour,

j'ai besoin d'automatiser une capture d'écran et un collage de cette
capture.
J'essaie le code suivant

Sub Test_ImprEcran()
SendKeys ("{PRTSC}")
SendKeys ("^v")
End Sub

ou (pour forcer sur la fenetre active)
Sub Test_ImprEcran()
SendKeys ("%{PRTSC}")
SendKeys ("^v")
End Sub

Le SendKeys ("%{PRTSC}") ne semble rien copier, puisque le Ctrl-V ne me
ramène que la copie précédente. Y-a-t-il une astuce pour simuler le "Imp
Ecr" ?

Merci
garnote
Le #18763651
Ave,

Trouvé ça à cette adresse :
http://www.excel-downloads.com/forum/47258-r-aliser-une-capture-d-cran.html
Je n'y comprends rien mais ça fonctionne !
J'ai cependant constaté qu'il faut appeler cette macro par une touche de raccourci.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal
dwExtraInfo As Long)
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub

Serge


"LargoWinch"
Bonjour,

j'ai besoin d'automatiser une capture d'écran et un collage de cette capture.
J'essaie le code suivant

Sub Test_ImprEcran()
SendKeys ("{PRTSC}")
SendKeys ("^v")
End Sub

ou (pour forcer sur la fenetre active)
Sub Test_ImprEcran()
SendKeys ("%{PRTSC}")
SendKeys ("^v")
End Sub

Le SendKeys ("%{PRTSC}") ne semble rien copier, puisque le Ctrl-V ne me ramène que la copie précédente. Y-a-t-il une astuce
pour simuler le "Imp Ecr" ?

Merci


LargoWinch
Le #18768111
michdenis a écrit :
Ceci fonctionne très bien chez moi.

ça imprime et colle la fenêtre Excel dans Excel.
'----------------------------
Sub Test_ImprEcran()
SendKeys "%{PRTSC}"
SendKeys "^v"
ActiveWindow.Activate
End Sub
'----------------------------





Avec ou sans parenthèse avec ou sans %, avec Word ou Excel 2003, j'ai
toujours le même comportement : le "Impr Ecran" ne se fait pas. Le
collage est ok, pas la copie :/ .

J'ai testé en arrêtant Gadwin Print Screen, un petit outil qui permet de
faire des captures d'écrans, pas mieux.
michdenis
Le #18769361
As-tu essayé ce que t'a proposé Garnote ?
'Tout au haut d'un module standard , tu copies
'ceci : un API
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Et tu exécutes la macro suivante :
'---------------------------------------
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub
'---------------------------------------



"LargoWinch" discussion : go61hk$hn6$
michdenis a écrit :
Ceci fonctionne très bien chez moi.

ça imprime et colle la fenêtre Excel dans Excel.
'----------------------------
Sub Test_ImprEcran()
SendKeys "%{PRTSC}"
SendKeys "^v"
ActiveWindow.Activate
End Sub
'----------------------------





Avec ou sans parenthèse avec ou sans %, avec Word ou Excel 2003, j'ai
toujours le même comportement : le "Impr Ecran" ne se fait pas. Le
collage est ok, pas la copie :/ .

J'ai testé en arrêtant Gadwin Print Screen, un petit outil qui permet de
faire des captures d'écrans, pas mieux.
LargoWinch
Le #18770511
michdenis a écrit :
As-tu essayé ce que t'a proposé Garnote ?
'Tout au haut d'un module standard , tu copies
'ceci : un API
Private Declare Sub keybd_event Lib "user32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Et tu exécutes la macro suivante :
'---------------------------------------
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub
'---------------------------------------




Je n'avais pas testé, effectivement, ca marche. Mais la méthode est
quand même plus lourde, j'aurai aimé comprendre pourquoi ma version ne
marche pas.
LargoWinch
Le #18770501
garnote a écrit :
Ave,

Trouvé ça à cette adresse :
http://www.excel-downloads.com/forum/47258-r-aliser-une-capture-d-cran.html
Je n'y comprends rien mais ça fonctionne !
J'ai cependant constaté qu'il faut appeler cette macro par une touche de raccourci.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal
dwExtraInfo As Long)
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub

Serge



Effectivement, ca marche bien. Merci

sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.
garnote
Le #18772411
"LargoWinch"
garnote a écrit :
Ave,

Trouvé ça à cette adresse :
http://www.excel-downloads.com/forum/47258-r-aliser-une-capture-d-cran.html
Je n'y comprends rien mais ça fonctionne !
J'ai cependant constaté qu'il faut appeler cette macro par une touche de raccourci.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal
dwExtraInfo As Long)
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub

Serge



Effectivement, ca marche bien. Merci

sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.


garnote
Le #18772391
> sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.


Je voulais dire « l'appeler sans passer par la boÎte de dialogue Macro »,
à moins de vouloir que cette boîte apparaisse dans la capture d'écran.





"LargoWinch"
garnote a écrit :
Ave,

Trouvé ça à cette adresse :
http://www.excel-downloads.com/forum/47258-r-aliser-une-capture-d-cran.html
Je n'y comprends rien mais ça fonctionne !
J'ai cependant constaté qu'il faut appeler cette macro par une touche de raccourci.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal
dwExtraInfo As Long)
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub

Serge



Effectivement, ca marche bien. Merci

sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.


LargoWinch
Le #18777601
garnote a écrit :
sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.


Je voulais dire « l'appeler sans passer par la boÎte de dialogue Macro »,
à moins de vouloir que cette boîte apparaisse dans la capture d'écran.




Ok. Moi, c'était juste pour tester.

Juste une question : pourquoi vouloir a tout prix répondre en haut,
quitte à être obligé de copier-coller ma dernière phrase ?




"LargoWinch"
garnote a écrit :
Ave,

Trouvé ça à cette adresse :
http://www.excel-downloads.com/forum/47258-r-aliser-une-capture-d-cran.html
Je n'y comprends rien mais ça fonctionne !
J'ai cependant constaté qu'il faut appeler cette macro par une touche de raccourci.

Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal
dwExtraInfo As Long)
Sub Copie()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub

Serge



Effectivement, ca marche bien. Merci

sous excel, j'ai pu appeler la macro sans passer par un raccourci clavier.






Modeste
Le #18777971
Bonsour® LargoWinch

Juste une question : pourquoi vouloir a tout prix répondre en haut,
quitte à être obligé de copier-coller ma dernière phrase ?



parce que de façon consensuelle il a été maintes fois admis *SUR CE FORUM*
1 - qu'il était souvent inutile de répeter(reproduire le texte) entierement la question
2 - sinon qu'il suffisait d'élager totalement la partie de la question qui ne faisait pas l'objet de la réponse
3 - qu'en utilisant correctement son browser avec l'option "grouper les messages par conversation"
les réponses ce lisaient chronologiquement comme une conversation
;o))) "Vous-voulez bien répéter la question ???
Publicité
Poster une réponse
Anonyme