Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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
In Html Datei suchen
27.06.2021 07:58:43
oraculix
Hallo
01.Ich möchte in Spalte B in beliebiger Zelle einen rechtsklick machen und den Wert der Zelle in die Zwischenablage Kopieren.
02.Danach soll die Datei D:/EMDB/HTML/index.html geöffnet werden.
03. In der D:/EMDB/HTML/index.html soll der kopierte Wert aus der Zwischenablage gesucht werden.
04. Wenn er gefunden wird soll er per Linksklick geöffnet werden ( ist ein Hyperlink)
Hoffe es gibt ne Lösung
Danke
Gruß
Oraculix

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Html Datei suchen
27.06.2021 09:08:07
Oberschlumpf
Hi,
wozu brauchst du die Zwi.ablage?
Ein Linksklick in Spalte B "hat doch schon" den Wert mit dem Worksheet_SelectionChange-Ereignis (reagiert bei jedem Anklicken einer beliebigen Zelle)
Oder was hab ich noch nicht verstanden?
Also, wozu bitte benötigst du den "Umweg" über die Zwi.ablage?
Ciao
Thorsten
AW: In Html Datei suchen
27.06.2021 09:32:53
oraculix
Danke das Du Dir zeit nimmst um einen Anfänger zu Helfen.
Zwischenablage benötige ich um die Html Datei zu öffnen um mehr Informationen abzufragen.
Nochmal zur besseren Verständnis:
In Spalte B stehen Film Namen zb. Rambo, wenn ich auf Rambo klicke soll Excel Rambo in die Zwischenablage kopieren und dann die Html Seite D:/EMDB/HTML/index.html öffnen Wo ca 3200 Filme mit genauer Beschreibung drinnen sind also Regiseur Genere Datum Schauspieler usw.
Damit ich auf dieser geöffneten D:/EMDB/HTML/index.html Rambo finde brauche ich aus der Zwischablage den Wert Rambo damit ich dort suchen kann.
Anzeige
AW: In Html Datei suchen
27.06.2021 09:21:33
Oberschlumpf
Hi,
ich benötige von dir bitte per Upload eine Bsp-Datei von der HTML-Datei.
Ich versuche gerad schon etwas mit VBA, stelle aber gerade fest, dass ich wissen muss, wann genau beginnt der Link, den du auslesen willst, und wann genau endet dieser.
Und dazu benötige ich von dir die HTML-Datei.
Ciao
Thorsten
...aber meine Frage wegen der Zwi.ablage ist weiter offen...
AW: In Html Datei suchen
27.06.2021 09:34:47
oraculix
Sorry die Html Datei 2500kb kann leider nicht gesendet werden hab ich schon versucht.
AW: In Html Datei suchen
27.06.2021 09:44:06
Oberschlumpf
ähhh? versteh ich nich
wo is das problem?
lösch doch von den 3200 einträgen 3000 einträge raus - dann bleiben 200 einträge über, und die reichen zum testen aus. und die datei ist dann bestimmt nur noch unter 300kb groß - ach ja - du könntest die datei auch mit 7Zip komprimieren, das hilft auch schon sehr.
noch ein ach ja: mach von deiner datei zuerst eine kopie, bevor du in der kopie-datei 3000 einträge löschst.
außerdem bat ich doch um eine bsp-datei...du musst nich die originaleinträge drin lassen...aber ok, wenns dich nich stört...mich stört es auch nich.
Aber: Ohne Datei von dir kann ich leider nicht weiterhelfen. Das wäre für mich ohne Datei von dir nur Rätselraten.
Ciao
Thorsten
Anzeige
AW: In Html Datei suchen
27.06.2021 10:07:26
oraculix
habe eine kleine Html Datei erstellt Wahrscheinlich wirst keine Bilder Sehen (Brauchen zu viel Platz)und die Unterverzeichnisse habe ich auch weggelassen hoffe es hilft
https://www.herber.de/bbs/user/146816.html
AW: In Html Datei suchen
27.06.2021 10:13:09
Oberschlumpf
was genau hast du an meinen vorshclägen nicht verstanden?
von 3200 einträgen 3000 einträge löschen, speichern - jetzt kann die datei nicht mehr 2500kb groß sein!
ich bin raus....
ups..verrutscht...sorry
27.06.2021 10:14:02
Oberschlumpf
vergiss den letzten eintrag von mir....war im thread verrutscht
bitte jemand anderes...
27.06.2021 10:28:17
Oberschlumpf
Hi oraculix,
ja, vielen Dank, du hattest eine HTML-Datei zur Verfügung gestellt - danke
Wie schon erwähnt, war ich im Thread verrutscht und hatte mit falschem Text an falscher Stelle geantwortet - sorry
Nun zu deiner Datei.
Leider ist es doch nicht so einfach, wie ich dachte, da in der HTML-Datei mit dem gesuchten Link in Unterverzeichnisse verzweigt wird, um die gewünschte HTML-ZIEL-Datei zu finden + zu öffnen.
Ich weiß leider auch nicht weiter und wünsch dir, dass sich wer anders besser auskennt als ich.
(Tipp von mir: zeig bitte bei jeder Erst-Frage von dir gleich eine Bsp-Datei; hätte zumindest ich die Bsp-Datei gleich zu Beginn gesehen, hätte ich sofort gewusst, dass ich nich helfen kann)
Ciao
Thorsten
Anzeige
AW: In Html Datei suchen
28.06.2021 20:06:31
Yal
Hallo Oraculix,
01. Zelle auswählen, dann Strg+c
02. Datei ist wahrscheinlich schon geöffnet. Spielt hier keine Rolle. Ansonsten Links zu dieser Datei auf dem Desktop ablegen und Shortcut zuweisen.
03. im Browser, Strg+f drücken, in der Suchfenster Strg+v (Suchfenster hat wahrscheinlich den Fokus, sodass Strg+v direkt möglich ist)
04. mit Shift+Tab auf das gefundenen, dann mit Strg+Enter Link öffnen (auch wenn nur ein Teil des Links markiert ist)
Man kann es vielleicht programmieren, aber es ist nicht "VBA nur mit Recorder"-Niveau (nicht böse gemeint).
VG
Yal
AW: In Html Datei suchen
29.06.2021 11:10:36
oraculix
Danke für deine Antwort
Habe es mit einem Anfänger Makro versucht umzusetzten.
Aber leider schaffe ich es nicht das Fenster suchen im Explorer Edge zu öffnen . Es öffnet sich mit Strg + F die Excel suche.
Frage :
Wie kann ich Excel sagen das er die Edge suche öffnet und nicht die Excel suche öffnet?
'Klick auf Zelle Kopiert Wert in Zwischenablage öffnet Datei index.html und Taste Strg+F

Private Sub CommandButton8_Click()
Dim Bereich As Range
Set Bereich = Application.InputBox("Bitte wählen sie die zu kopierende Zelle aus !", _
"Bereichswahl", , , , , , 8)
Bereich.Copy
'Öffnet Datei
ActiveWorkbook.FollowHyperlink Address:="file:///D:/EMDB/HTML/index.html"
'Taste Strg+F Drücken
Application.Dialogs(xlDialogFormulaFind).Show
End Sub
Beispiel Mappe
https://www.herber.de/bbs/user/146847.xlsm
Anzeige
AW: In Html Datei suchen
29.06.2021 11:56:30
Yal
Hallo Oraculix,
eine Suppe mit Gabel zu löffeln, kann frustrierend sein. So auch beim Steuern von fremden Applicationen ist VBA nicht das Mittel der Wahl.
Wenn es um die Steuerung der App selbst geht, gibt es solche Instrument wie AutoHotKey oder sonstige RPA.
Wenn es darum geht, den Inhalt der Webseite anzuzeihen ("Web Scrapping"), kann man mit Power Query versuchen. Aber andere Werkzeuge wie Python/BeautifullSoup sind von weitem besser geeignet.
Viele Erfolg
Yal
AW: In Html Datei suchen
29.06.2021 12:32:22
oraculix
Vielen Dank für Deine Mühe.
Dachte es geht mit Excel auch?
Kannste mir sagen wie ich statt der lästigen Eingabe in die Box die markiertee zelle in Spalt B kopieren kann ohne das die Box kommt.
Habe das Makro Mühsam zusammen gebastelt was ich halt so gefunden habe hier.
Es gibt ja für einen Doppelklick einen Code
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dann muss es auch für einen einfachen klick auch was geben habe leider noch nichts gefunden und dann noch die markierte Zelle in die Zwischenablage kopieren ?
Anzeige
AW: In Html Datei suchen
29.06.2021 22:58:54
Zwenn
Hallo oraculix,
wie Yal schon geschrieben hat, sieht es so aus, als wenn Dein Projektwunsch Deinen ProgrammierLvl zur Zeit übersteigt. Das ist jetzt zwar erstmal blöd, aber auch nicht wirklich schlimm. Kann man alles lernen und ich finde es auch gut, wenn Du solche Ideen umsetzen willst. Aber vermutlich ist es besser, erstmal kleinere Brötchen zu backen. Wenn ich etwas nennen müsste, womit ich mich in VBA ganz gut auskenne, dann ist das Web Scraping. Also genau die Disziplin, die Du hier anwenden möchtest. Deshalb maße ich mir an dieser Stelle an zu erläutern, was an Wissen notwendig ist, um Dein Ziel zu erreichen. Du kannst das danach nicht programmieren. Das gesamte Wissen dazu in einem Forenpost auch rüberzubringen ist leider nicht möglich.
Erstmal Dein Ansatz:
Du möchtest aus einer Tabelle in Spalte B beliebige Zell-Werte in die Zwischenablage kopieren, indem Du die rechte Maustaste klickst. Danach soll eine HTML-Datei geöffnet werden. (Ich nehme an automatisch, auch wenn Du das nicht so geschrieben hast.) In der geöffneten Datei soll der Begriff gesucht werden, der jetzt in der Zwischenablage ist. Wird er gefunden, soll der dahinter liegende Hyperlink geöffnet werden.
Warum das so nicht funktionieren wird (Oder nur von hinten durch die Brust ins Auge)
Deinen Grundgedanken finde ich erstmal ganz einleuchtend. Du willst das Programmieren, was Du auch manuell machen würdest, um genau das Ziel zu erreichen, das Du anstrebst. Die Sache beim Web Scraping (und vielen anderen Dingen auch) ist aber, bei der Programmierung solcher Lösungen wird anders vorgegangen, als ein Mensch es machen muss. Das ist glaube ich auch ein genereller Knackpunkt bei der Programmierung. Wir müssen als Menschen so denken, wie die Maschine es (möglichst) am besten verarbeiten kann. (Das ist übrigens ein Grund für den von vielen ungeliebten Matheunterricht. Neben dem mehr als gedacht benötigtem Wissen um Mathe, wird damit das Gehirn trainiert, um systematisch Lösungen erarbeiten zu können.)
Gehen wir Deinen Lösungsansatz Mal durch
Das Worksheet.BeforeDoubleClick-Event hast Du schon kennen gelernt, möchtest aber das Kopieren (und öffnen der HTML-Datei?) mit einem Klick machen. Es würde mit einem Linksklick klappen. Dieser löst das Worksheet.SelectionChange-Event aus. Ein Rechtsklick löst das Event auch aus, aber es wird dann auch jedesmal das Kontextmenü angezeigt.
Zum Ausprobieren folgendes Makro in das Modul einer Tabelle kopieren:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Reaktion auf Spalte B beschränken
If Not Intersect(Target, Range("B:B")) Is Nothing Then
'Zelladresse in der Adresse selbst ausgeben
Selection = Target.Address
End If
End Sub
Hier ein paar Links zu sonstigem, nötigen und nachgefragtem Wissen:
Worksheet.SelectionChange-Event: https://docs.microsoft.com/de-de/office/vba/api/excel.worksheet.selectionchange
Worksheet.BeforeDoubleClick-Event: https://docs.microsoft.com/de-de/office/vba/api/excel.worksheet.beforedoubleclick
Zugriff auf die Zwischenablage: https://www.online-excel.de/excel/singsel_vba.php?f=28
Du könntest also den angeklickten Wert in die Zwischenablage kopieren und auch eine Webseite öffnen. Dann möchtest Du den kopierten Begriff in dieser Webseite suchen. Mir fallen nur sehr unorthodoxe Möglichkeiten ein, das an diesem Punkt umzusetzen. Hier beginnt also der Teil, den ich oben in der Klammer mit "von hinten durch die Brust ins Auge" meine. Wie genau soll das denn vonstatten gehen?
Du öffnest ein weiteres Programm und auf dieses hast Du nur sehr eingeschränkten Zugriff, wenn überhaupt. Du kannst aus VBA heraus nicht einfach sagen "mach mal". Es würde wahrscheinlich mit Sendkeys() gehen, aber das würde ich nur im äußersten Notfall einsetzen.
Application.SendKeys-Methode: https://docs.microsoft.com/de-de/office/vba/api/excel.application.sendkeys
Der einzige Browser, den Du aus VBA heraus fernsteuern kannst, ist der Internet Explorer. Das liegt daran, dass er der einzige Browser ist, der eine COM-Schnittstelle mitbringt. Allerdings rate ich davon ab den IE noch zu verwenden (auch wenn Du lokale Dateien verarbeiten möchtest). Der IE wird im Juni 2022 endgültig ausgemustert und funktioniert heute schon mit vielen Seiten nicht mehr. Es lohnt sich einfach nicht mehr, sich in die Kontrolle des IE einzuarbeiten.
Infos zum COM: https://de.wikipedia.org/wiki/Component_Object_Model
Infos zum IE: https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/aa752084(v=vs.85)?redirectedfrom=MSDN
Angenommen, Du schaffst es in einem anderen Browser die Suche durchzuführen. Was wird dann gefunden? Du gibst "Rambo" als Beispiel für einen Suchbegriff an. In Deiner zur Verfügung gestellten HTML-Datei gibt es dazu aber 4 Treffer und ich bezweifle, dass Du den ersten willst, denn das ist das Poster. Wie entscheidest Du, ob der richtige Eintrag gefunden wurde? Der zweite ist übrigens auch das Poster. Das ist nämlich der gleiche Link.
Angenommen Du findest den richtigen Eintrag. Du könntest auch den wieder nur mit Sendkeys() auslösen (Enter übermitteln). Was passiert denn danach? Du möchtest sicher Informationen aus der aufgerufenen Seite holen. Wie markierst Du den Text, den Du kopieren willst? Willst Du überhaupt nur Text oder auch andere Informationen? Z.B. Hyperlinks oder Bilder.
Unterm Strich funktioniert Dein Ansatz also nicht oder nur extrem kompliziert. Sei deshalb nicht niedergeschlagen, Du hast Dir ja Gedanken dazu gemacht und allein das ist schon sehr viel wert.
Wie solche Aufgaben angegangen werden
Wie gesagt, ist der IE aus dem Rennen. Um andere Browser zu automatisieren, gibt es ein Framework namens Selenium. Dieses steht für verschiedene Programmiersprachen zur Verfügung. Da VBA jetzt nicht zu den weit verbreiteten Sprachen für Web Scraping gehört, gibt es für VBA vom Selenium-Projekt selbst keine Lösung für diese Sprache. Aber mit SeleniumBasic hat sich jemand dieser Problemetik angenommen.
Da Du "nur" lokal vorliegende HTML-Dateien verarbeiten willst, wird vermutlich gar kein Browser benötigt. Denn eine andere Möglichkeit auf Webseiten zuzugreifen ist xhr (XML HTTP Request). Damit wird direkt auf die auf einem Webserver hinterlegten Recourcen zugegeriffen, bzw. man kann damit unter anderem auch HTML-Dateien laden. Die müssen nochmal in ein htmlFile-Objekt umgebettet werden aber dann kann man mit dem DOM (Document Object Model) direkt auf die Struktur des Dokuments zugreifen.
So, ich nehme an, von den letzten beiden Absätzen hast Du genau Null verstanden. Das liegt nicht daran, dass Du zu blöd dafür bist, sondern daran, dass Du von all diesen Dingen schlicht und ergreifend noch nie etwas gehört hast. Ich kann auch nicht richtig Kochen, weil ich davon nämlich auch noch nicht so richtig viel gehört habe. Würde ich das wollen, könnte ich es aber lernen. So kannst Du Dich auch in die notwendigen Dinge einarbeiten.
Wovon Du für Web Scraping mit VBA zumindest etwas Ahnung haben musst, sind folgende Bereiche:
- VBA (Das ist hier natürlich die Grundlage) z.B. https://www.vba-tutorial.de/
- HTML (Unumgänglich, um den Aufbau von Webseiten zu verstehen) https://wiki.selfhtml.org/
- JavaScript (Extrem nützlich, weil es die Sprache des Web ist und so ziemlich alles zum DOM in JS erklärt wird) https://wiki.selfhtml.org/
- CSS - Cascading Style Sheets (Wissen darum ist untergeordnet, für Web Scraping sollte aber bekannt sein, was CSS ist) https://wiki.selfhtml.org/
- xhr - XML HTTP Request (Für Fortgeschrittene. Sehr flexiebel einsetzbar, schnell) https://developer.mozilla.org/de/docs/Web/API/XMLHttpRequest
- DOM - Document Object Model (Struktur einer HTML-Seite als Baum) https://developer.mozilla.org/de/docs/Web/API/Element
- SeleniumBasic (funktioniert ähnlich wie das DOM, die Befehle sehen nur etwas anders aus und es gibt weitere Möglichkeiten) [Mehr im 2. der folgenden Link]
Vor einiger Zeit habe ich zwei Forenbeiträge geschrieben, in denen ich etwas näher auf manches eingehe. Aber natürlich auch nicht erschöpfend:
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1825794#1826500
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1831729#1831851
Ob Dir das jetzt alles irgendwie weiterhilft weiß ich nicht. Aber Du solltest eine ungefähre Vorstellung davon haben, in welche Richtung Du gehen musst. Du kannst aber auch überlegen das Ganze mit Python und der Bibliothek Beautiful Soup umzusetzen:
https://pypi.org/project/beautifulsoup4/
Grundlage dafür ist aber natürlich wiederum Python ;-)
https://www.python-kurs.eu/python3_kurs.php
Viele Grüße,
Zwenn
Anzeige
AW: In Html Datei suchen
30.06.2021 08:25:22
oraculix
Wauw das ist ja echt viel was Du da schreibst mit viel Anfängerrmühe für mich geschrieben.
Vielen Dank
Aber Selection = Target.Address
überschreibt mir ja die Werte in Spalte B das sollte nicht sein $B$13
Der Filmname soll erhalten bleiben!
Gibt es sowas wie Selection = Copy.Adress in Zwischenablage?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Reaktion auf Spalte B beschränken
If Not Intersect(Target, Range("B:B")) Is Nothing Then
'Zelladresse in der Adresse selbst ausgeben
Selection = Target.Address 'hier sollte kopiert werden in die zwischenablage
End If
ActiveWorkbook.FollowHyperlink Address:="file:///D:/EMDB/HTML/index.html"
End Sub

Anzeige
AW: In Html Datei suchen
30.06.2021 10:40:20
Zwenn
Moin oraculix,
das war nur ein kleines Beispiel, wie die Sache mit dem einen Mausklick in Spalte B funktioniert. Zusätzlich habe ich Dir ja unter anderem einen Link zur Verwaltung der Zwischenablage mit VBA gegeben. Was auf der Seite steht, musst Du entsprechend anwenden.
Aber wie ich auch ausgeführt habe, brauchst Du Deinen Ansatz nicht weiter verfolgen. Denn er wird nicht funktionieren.
Viele Grüße,
Zwenn

262 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige