Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1236to1240
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MausBereich Internetexplorer

MausBereich Internetexplorer
Aton
Hallo
Kann man eigentlich mit einem Makro, einen Bereich in einer Internetseite makieren und Koppieren?
Gruß Aton
MausBereich Internetexplorer
20.11.2011 10:10:06
Anton
Hallo Aton,
Kann man eigentlich mit einem Makro, einen Bereich in einer Internetseite markieren und kopieren?

IMHO,nein.
Man kann aber einzelne Elemente der Internetseite direkt auslesen, vorausgesetzt , du kennst dich mit HTML aus.
mfg Anton
AW: MausBereich Internetexplorer
20.11.2011 11:08:51
Aton
Hallo
Leider kann ich das nicht.
Vielen Dank.
Gruß Aton
Blödsinn
25.11.2011 10:45:41
Martin
Hallo Anton,
selbstverständlich geht das!
In den Kopf deines Moduls schreibst du:

Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy  _
As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
Mit "AppActivate" kann der Focus der Anwendung (Excel zu Internet Explorer und natürlich auch zurück) gewechselt werden. Du musst die Bildschirmkoordinaten kennen, um die Maus an die linke obere Ecke des zu markierenden Textes zu setzen. Das geht so:
SetCursorPos 200, 200
... wobei die beiden Zahlen die Höhe und Breite in Pixeln von der oberen linken Bilschirmecke sind.
Anschließend muss die linke Maustaste geklickt werden...
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
....und die Maus an die untere rechte Ecke des zu markierenden Textes gesetzt werden:
SetCursorPos 400, 400
Nun muss die gedrückte Maustaste wieder losgelassen...
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
...und der markierte Text mit Strg+C über Application.SendKeys kopiert werden.
Per AppActivate wechseltst du wieder in die Zielanwendung (vermutlich Excel), um den kopierten Text einzufügen.
MfG
Martin
Anzeige
Das ist alles Theorie ...
25.11.2011 15:06:03
Anton
Martin,
kannst du einen funktionierenden Code zeigen, der z.B. von der Seite https://www.herber.de/
den Text

Informieren Sie sich hier umfassend...
Hans W. Herber
in Excel kopiert?
mfg Anton
Anzeige
AW: Das ist alles Theorie ...
26.11.2011 12:45:06
Martin
Hallo Anton,
na du bist ja ein Komiker, ich habe den Code doch gepostet und ausführlich erklärt. Leider kann ich nicht hellsehen, sonst hätte ich selbstverständlich den "Fensternamen" bei AppActivcate und die richtigen Koordinaten für den Mauszeiger bereits eingesetzt. Erklär mir bitte mal, wie ich ohne die Infos einen "funktionierenden Code" zeigen soll?
Wenn du falsche Aussagen hier im Forum ablässt und andere deinen Antworten mit Fakten widerlegen, musst du nicht zusätzlich noch völlig unqualifizierte Antworten dazu ablassen!
MfG Martin
AW: Das ist alles Theorie ...
26.11.2011 13:03:52
Anton
Hallo Martin,
wie ich ohne die Infos

Welche Infos fehlen dir ?
mfg Anton
Anzeige
Frage noch offen oT
26.11.2011 13:24:15
Anton
oT
AW: Das ist alles Theorie ...
26.11.2011 14:04:14
Martin
Hallo Anton,
ich benötige den Namen der Website und den Textbereich, der kopiert werden soll.
MfG
Martin
ich meinte natürlich den Link der Website owT
26.11.2011 14:07:27
Martin
owT
Datei zur Bestimmung der Mausposition
26.11.2011 15:24:45
Martin
Hallo Anton,
ich habe dir gerade schnell eine Datei ( https://www.herber.de/bbs/user/77674.xls ) gemacht, die dir bei der Bestimmung der Mauskoordinaten helfen soll. Einfach auf dem Button in der Tabelle klicken und mit der Tastenkombination ALT+TAB in den (maximierten!) InternetExplorer wechseln. Anschließend setzt du den Mauszeiger an die Anfangsposition des Textes, wechselst mit ALT+TAB zurück nach Excel und notierst dir die angezeigten Koordinaten. Das wiederholst du noch einmal mit dem Ende des Textes, um auch die zweite Mausposition zu bestimmen.
Eigentlich solltest du den Rest jetzt alleine hinbekommen ;-)
Viele Erfolg
Martin
Anzeige
AW: Das ist alles Theorie ...
26.11.2011 21:54:49
Anton
Hallo Martin,
in meinem Beitrag vom 25.11.2011 15:06:03 stehen alle Infos, die du benötigst.
mfg Anton
@Fragenden Anton1: Ignoriere Antworten von Anton2
26.11.2011 13:04:02
Anton2
Hallo Anton,
leider befindet sich dein Beitrag schon sehr weit unten, dadurch wird ein Antworten bald nicht mehr möglich sein. Ich bin mir sicher, dass du mit meinen Antworten dein Problem lösst. Trotzdem sind mir noch zwei Verbesserungsideen eingefallen:
1. Damit der Internet Exporer immer maximiert geöffnet wird und somit der zu kopierende Text immer im selben Bereich steht, verwende statt des ersten AppActivate (um von Excel zum Internet Explorer zu wechseln) besser folgenden Code:
Im Kopf der Moduls
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWMAXIMIZED = 3
und im Makro:
Set objIE = CreateObject("internetexplorer.Application")
RC = ShowWindow(objIE.hwnd, SW_SHOWMAXIMIZED)
objIE.navigate ("http://www.DeineWebsite.de")
Do While .ReadyState  READYSTATE_COMPLETE
'Warten bis Seite geladen
Loop
Statt des zweiten AppActivate (um zurück zu Excel zu wechseln) schließt du den InternetExplorer einfach wieder mit:
    objIE.Quit
Eventuell solltest du zwischen den einzelnen Abschnitten mit Sleep eine Wartezeit in Millisekunden angeben. Dazu schreibst du in den Kopf wieder:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
....und zwischen die einzelnen Abschnitte....
Sleep 500
...wobei 500 die Zeit in Millisekunden ist, in dem Fall also eine halbe Sekunde (....musst mal ein wenig herumprobieren).
Also viel Erfolg dann!
Viele Grüße
Martin
Anzeige
AW: Das ist alles Theorie ...
26.11.2011 23:48:38
Martin
Hallo Anton,
hier die entsprechende Quellcode (...bei mir gestestet und funktionsfähig!). Du musst bei dir eventuell noch die Koordinaten für die Mauszeiger-Positionen anpassen:
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal Y As Long) As Long
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy  _
_
As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWMAXIMIZED = 3
Private Const MOUSEEVENTF_LEFTDOWN = &H2
Private Const MOUSEEVENTF_LEFTUP = &H4
Private Const MOUSEEVENTF_MIDDLEDOWN = &H20
Private Const MOUSEEVENTF_MIDDLEUP = &H40
Private Const MOUSEEVENTF_RIGHTDOWN As Long = &H8
Private Const MOUSEEVENTF_RIGHTUP As Long = &H10
Sub HTML_Kopie()
Set objIE = CreateObject("internetexplorer.Application")
RC = ShowWindow(objIE.hwnd, SW_SHOWMAXIMIZED)
objIE.navigate ("https://www.herber.de")
Do While objIE.Busy
'Warten bis Seite geladen
Loop
Sleep (500)
SetCursorPos 170, 430
mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
SetCursorPos 300, 655
mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
Sleep (5000)
Application.SendKeys ("^c")
objIE.Quit
ActiveSheet.Paste
End Sub
Viele Grüße
Martin
Anzeige
...das zweite Sleep bitte auf 500 zurücksetzen owT
26.11.2011 23:50:11
Martin
owT
AW: ...das zweite Sleep bitte auf 500 zurücksetzen owT
27.11.2011 15:24:35
Martin
Hallo Anton,
was sagst du nun zu dem Code? Unter folgendem Link kannst du weiterhin antworten, auch wenn der Thread bereis nicht mehr im Forum aufgelistet ist: https://www.herber.de/forum/messages/1239538.html
Viele Grüße
Martin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige