Ouvrir une URL, prendre un écran d’impression et coller dans une cellule


1

J'essaie de lancer une URL, puis de capturer la fenêtre d'IE qui s'ouvre (lorsque l'URL est lancée, une application de lecteur de carte à puce est également lancée). Je dois donc capturer toutes les fenêtres ouvertes ou la fenêtre IE sous forme d'image dans la cellule ci-dessous ou enregistrez sous forme d'image sur le lecteur C, puis je peux joindre ce fichier au classeur.

J'essaie de faire fonctionner ce code pour un écran particulier qui se lance, je l'ai à moitié fait fonctionner mais il capture la mauvaise application.

Sub Screenshot()

OpenClipboard (0&)
EmptyClipboard
CloseClipboard

Dim IE As Object
Dim hwnd As Long, IECaption As String
Dim fdate As Date


'~~> Change Status and unmerge
Range("B11").Value = "Running"
ThisWorkbook.Sheets("SAT").Range("B18:D33").UnMerge

'~~> Launch URL

Set IE = CreateObject("InternetExplorer.Application")

IE.Visible = True

IE.Navigate "https://www.google.co.uk"

Sleep 5000

'~~> Get the caption of IE
IECaption = "Google - Internet Explorer"

Sleep 4000

'~~> Get handle of IE
hwnd = FindWindow(vbNullString, IECaption)

If hwnd = 0 Then
    MsgBox "IE Window Not found!"
    Exit Sub
Else
    '~~> Maximize IE
     'ShowWindow hwnd, SW_SHOWMAXIMIZED
End If

DoEvents
'~~> Snapshot of window & Paste into Sheet location (Esc used to close an application popup screen)

Sleep 1000

keybd_event vk_Escape, 0, 0, 0

Sleep 2000

Application.SendKeys "(%{1068})"

Sleep 2000

Application.SendKeys ("%{F4}")
ThisWorkbook.Sheets("SAT").Range("B18").Select
ActiveSheet.Paste


'~~> Tidy up and update status
Sheets("SAT").Range("B18:D33").Merge
Range("B11").Value = "Completed: Screen Captured"


End Sub

Mais je reçois un problème où il ne dit pas que l'écran n'est pas sélectionné et que je ne peux pas coller dans B18 en bas, il me faut déboguer la section "ActiveSheet.Paste".

Il est si proche que toute aide serait vraiment appréciée.


Jetez un coup d'œil à la mise au point de la fenêtre IE en vous référant à cette question: stackoverflow.com/questions/21580606/…
davidmneedham

@davidmneedham Merci pour cela, j'ai réussi à le faire fonctionner mais j'ai toujours quelques problèmes avec le collage. Voir ma version modifiée ci-dessus.
Matt

As-tu essayé ActiveSheet.Paste Destination:=Worksheets("SAT").Range("B15")?
davidmneedham

@davidmneedham J'obtiens toujours la méthode Paste de la classe de feuille de calcul a échoué et je ne sélectionne toujours pas la fenêtre IE
Matt
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.