Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

Link automatisch öffnen

Link automatisch öffnen
03.06.2022 01:55:39
Max_Danger
Hallo zusammen,
ich habe eine weitere Frage zu meinem kleinem Projekt. :)
Wenn eine Datenabfrage erfolgreich war, erscheint in "Tabelle 1 C9" ein Link.
Gibt es eine Möglichkeit diesen bei erscheinen, automatisch zu öffnen, ohne dass ich diesen anklicken muss?
Mein Makro sieht aktuell so aus:

Sub StartMakro()
Dim dblPruefung As Double
Neustart:
dblPruefung = WorksheetFunction.Sum(Range("C10:H10"))
Datenactual
PivotRefresh
If WorksheetFunction.Sum(Range("C10:H10")) 
Vielen Dank im vorraus.
Grüße
Max

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Link automatisch öffnen
03.06.2022 18:52:42
Max_Danger
Hallo Thorsten,
vielen Dank für die Tipps.
Ich habe bei der Forensuche nach "Links" gestern nichts passendes gefunden.
Die Lösungsanszätze funktionieren, bei mir so leider nicht, da es sich nicht um einen "festen Hyperlink" handelt.
Der Hyperlink wird wenn das Makro einen passenden Datensatz gefunden hat erstellt.
Anschließend würde ich diesen gerne direkt automatisch öffnen, ohne dass ich Ihn erst manuell betätigen muss.
Es handelt sich um Links welche auf meinem Netzwerklaufwerk liegen. (.lnk) Files.
Wenn ich es richtig gelesen habe, ist so etwas anscheinend leider nicht möglich.
Viele Grüße
Max
Anzeige
AW: Link automatisch öffnen
03.06.2022 19:57:28
Oberschlumpf
Hi,
und wenn ich deine Antwort richtig verstehe, hast du meine Idee nicht verstanden :-)
im Link https://www.herber.de/forum/archiv/464to468/467432_VBA_String_aus_Hyperlink_auslesen.html
wird beschrieben, wie man den Hyperlink (Internetadresse) aus einer beliebigen Excel-Zelle auslesen kann.
Als Beispiel wird die Zelle B4 genannt.
Anstelle B4 wäre das für dich umgestellt = die Zelle "Tabelle 1 C9"
Sowohl für B4 als auch "Tabelle 1 C9" ist egal, welcher Hyperlink da drin steht - denn dieser wird aus der Methode .Hyperlinks(1).Address ausgelesen.
Jetzt war noch "spannend", ob und wie man diese ausgelesene, variable Adresse ohne weiteres (Klick)Zutun in einem Web-Browser aufrufen kann.
Und dafür hab ich dann den anderen Link gefunden: https://www.herber.de/forum/archiv/408to412/410272_Mit_VBA_eine_Website_URL_oeffnen.html
Und anstelle von (fest vorgebene Inet-Adresse)...

wshshell.Run "www.herber.de/"
...für deine Zwecke angepasst, hätte der Aufruf lauten könnten

wshshell.Run Sheets("Tabelle 1").Range("C9").Hyperlinks(1).Address
.
.
.
Aber Aber!!! Hyperlink? Webbrowser?!! Ich will doch eine .lnk-Datei öffnen!!!
Kann es sein, dass dir diese Wörter die ganze Zeit durch den Kopf gehen? :-)
Ok, dann sollten wir vielleicht über Begrifflichkeiten kommunizieren :-)
Als ich in deiner ersten Anfrage das Wort "Link" las, dachte ich sofort/und auch an nix anderes, als an Hyperlinks, oder eben Internetadressen, die man in Firefox, Chrome, etc aufruft.
Als ich aber nun in deiner Antwort an mich die Dateierweiterung ".lnk" las, dachte ich "Ohhhhh! DAS kenn zumindest ich in der Windows-Welt als Datei-Verknüpfung.
Die Bezeichnung "Link" für lnk-Dateien mag zwar durchaus hier und da und dort Verwendung finden, ist bzw war aber mir bis heute als solches nicht bekannt :-)
Nun denn, unabhängig davon...wenn du in meinem 2. Link weiterliest, weist auch der dortige Beitragsersteller darauf hin, dass er keine Internetadressen, sondern lokal gespeicherte Dateien öffnen will.
Ja, ich weiß, er möchte HTM-Dateien im Webbrowser öffnen, und deine lnk-Dateien sind nicht lokal sondern im NAS gespeichert.
Aber :-) - der Befehl lautet ja nur wshshell.RUN "pfad/Datei"
Vielleicht ist dem Run-Befehl "egal", welche Datei er starten soll, weil einfach das richtige Programm mit startet.
So, und egal ob lokal oder NAS, wenn du eine Nertzwerkfreigabe eingerichtet hast, dann beginnt auch diese mit "LW:\..."
(LW = Laufwerksbuchstabe für den NAS-Pfad)
So, jetzt bist wieder - du - dran! :-)
Ciao
Thorsten
Anzeige
AW: Link automatisch öffnen
04.06.2022 02:53:43
Max_Danger
Hallo Thorsten,
zu erst einmal vielen Dank für die viele Arbeit die Du in deine Hilfestellungen steckst.
Das ist wirklich großartig!
Ich komme aber einfach nicht dahinter, was ich wieder einmal falsch mache. :D
Ich habe alles so umgesetzt wie in dem entsprechenden Beitrag beschrieben.
Jedoch springt bei mir der Debugger an und meckert über folgenden Eintrag...

wshshell.Run Sheets("Dashboard").Range("C9").Hyperlinks(1).Address
Dieser ist Teil meines Moduls "link"

Sub link()
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run Sheets("Dashboard").Range("C9").Hyperlinks(1).Address
End Sub
...und diesen habe ich meiner Routine hinzugefügt...

Sub StartMakro()
Dim dblPruefung As Double
Neustart:
dblPruefung = WorksheetFunction.Sum(Range("C10:H10"))
Datenactual
PivotRefresh
If WorksheetFunction.Sum(Range("C10:H10")) 
Weißt Du vielleicht was ich falsch gemacht habe?
Es sollte doch eigentlich alles passen...
VG
Max
Anzeige
HUCH! :-O
04.06.2022 08:32:17
Oberschlumpf
Moin :-)
"HUCH! :-O" hatte ich im ersten Moment gedacht "funktioniert all das - doch nicht - so, wie ich zuvor beschrieben hatte?"
zumal ich ja meine "Behauptung" ...
Vielleicht ist dem Run-Befehl "egal", welche Datei er starten soll, weil einfach das richtige Programm mit startet.
...selbst gar nicht getestet hatte! :-)
Macht aber nix, is trotzdem nich meine Schuld, wenn's nich geht, weil ich ja den Satz mit "Vielleicht" begonnen hatte :-)
Nun denn, ich wollte es trotzdem wissen!
Aber...mist...JETZT hatte ich das mit "wshshell.Run Sheets(...usw" ausprobiert, und auch ich erhielt genau in der Codezeile einen Laufzeitfehler...
Egal...erst mal :-)...wofür gibt es Google, wenn nicht extra für EXCEL-FANS!!!! :-)
a) gefunden hab ich https://www.herber.de/forum/archiv/1396to1400/1396099_Verknuepfung_lnk_mit_VBA_starten.html
b) die Lösung ist: der Parameter hinter wshshell.Run muss mit Anführungszeichen beginnen und auch enden, z Bsp so:

wshshell.Run Chr(34) & Sheets("Dashboard").Range("C9").Hyperlinks(1).Address & Chr(34)
die "-Zeichen sind die beiden Befehle Chr(34)
Wenn du deinen Befehl nun so umbaust, reicht dir das vielleicht schon als Antwort von mir.
Aber da ich ja getestet habe, hab ich auch eine Testdatei:
https://www.herber.de/bbs/user/153416.xlsm
Damit diese Datei, bzw die Links darin auch bei dir funktionieren, musst du unbedingt die Hinweise ab Zelle C18 beachten!
So, wenns nun bei dir noch immer nicht klappt, dann geh Häkeln! :-PP :-)
Ciao
Thorsten
Anzeige
AW: HUCH! :-O
04.06.2022 16:48:44
Max_Danger
Hallo Thorsten,
vielen Dank für Deine umfassende und gute Erläuterung.
Ich werde mich wohl dennoch dem Häckeln widmen müssen. :(
In deiner Testdatei funktioniert natürlich, wie erwartet, alles spitzenmäßig.
In meiner Datei natürlich nicht. :D
Kann es vlt. wieder daran liegen, dass sich der Link dynamisch berechnet und erst dann "erscheint"?
Ich glaube es handelt sich um das gleiche Phänomen, wie "damals" mit der Formel worksheet.change, welche nur funktioniert, wenn etwas manuell eingetragen wird.
Wenn der Link erscheint, öffnet er sich bei mir leider nicht automatisch.
Wenn ich anschließend in die Zelle klicke um den Link manuell zu betätigen, meldet sich der Debugger...
"Lauzeitfehler 9"
Index außerhalb des gültigen Bereichs
Code in Tabelle "Dashboard"

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$9" Then
link
End If
End Sub
Modul "Link"

Option Explicit
Sub link()
Dim wshshell As Object
Set wshshell = CreateObject("WScript.Shell")
wshshell.Run Chr(34) & Sheets("Dashboard").Range("C9").Hyperlinks(1).Address & Chr(34)
End Sub
Mein Hauptmakro, habe ich jetzt unverändert gelassen, das ist doch richtig, oder?

Sub StartMakro()
Dim dblPruefung As Double
Neustart:
dblPruefung = WorksheetFunction.Sum(Range("C10:H10"))
Datenactual
PivotRefresh
If WorksheetFunction.Sum(Range("C10:H10")) 
Es ist echt zum verzweifeln. :D
Vlt. findet sich ja noch eine Lösung.
Vielen Dank
VG
Max
Anzeige
AW: HUCH! :-O
04.06.2022 17:20:46
Oberschlumpf
Hi,
...es heißt nicht Häckeln, sondern Häkeln... - finde den Unterschied
(aber das nur am Rande)
Ja, sorry, jetzt weiß ich auch nicht mehr weiter - vllt hast du recht, dass der Code ins Calculate-Ereignis muss - das ist aber kein weiterer Tipp von mir, sondern nur "laut gedacht" - ich weiß nix mehr.
Ciao
Thorsten
AW: Link automatisch öffnen
03.06.2022 07:40:16
oraculix
Hallo
Da ich deine Arbeitsmappe nicht habe vermute ich das es so gehen könnte!

Sub StartMakro()
Dim dblPruefung As Double
Neustart:
dblPruefung = WorksheetFunction.Sum(Range("C10:H10"))
Datenactual
PivotRefresh
If WorksheetFunction.Sum(Range("C10:H10")) 
Gruß
Oraculix
Anzeige
AW: Link automatisch öffnen
03.06.2022 18:58:57
Max_Danger
Hallo Oraculix,
vielen Dank für Deinen Lösungsvorschlag.
Leider funktioniert es nicht wie gewünscht. Der Debugger meldet sich.
Der Ansatz ist denke ich richtig.
Zum Ablauf
Das Makro durchläuft die Datensätze so lange bis ein passendes Ergebnis gefunden wurde.
Aus dem passenden Datensatz erstelle ich mit einer Formel den Hyperlink zu einer (".lnk") Datei.
Der Hyperlink liegt in einem separaten Ordner auf meinem Netzwerkspeicher.
Wenn ich es manuell betätige klappt es problemlos.
Jetzt ist die Frage, ob es mit Excel überhaupt möglich ist bei einem solchem Aufbau den Link automatisch zu öffnen.
VG
Max
Anzeige
AW: Link automatisch öffnen
04.06.2022 05:11:34
oraculix
Versuch das mal!

Sub StartMakro()
On Error GoTo Fehlerbehandlung
Dim dblPruefung As Double
Neustart:
dblPruefung = WorksheetFunction.Sum(Range("C10:H10"))
Datenactual
PivotRefresh
If WorksheetFunction.Sum(Range("C10:H10")) 
Gruß
Oraculix
AW: Link automatisch öffnen
04.06.2022 20:02:19
Max_Danger
Hi Oraculix,
vielen Dank für Deine Rückmeldung.
Ich habe aber kein Sub "Fehlerbehandlung".
Was soll dort passieren?
Wenn ich es so umsetze, springt direkt der Debugger an und das Makro startet erst gar nicht...
VG
Max
AW: Link automatisch öffnen
04.06.2022 20:49:53
oraculix
Hallo
Du hast geschrieben das sich dein Debugger sich einschaltet deshalb Error Code.
Weil
If WorksheetFunction.Sum(Range("C10:H10")) nur funktioniert wenn du was eingibst in C9 daher kommt der Fehler weil keine Eingabe erfolgt.
Ich habe meinen Code in einer neuen Arbeitsmappe getestet und er funktioniert Prima.

Sub Link()
Cells(9, 3).Hyperlinks(1).Follow
End Sub
On Error GoTo Fehlerbehandlung
Der Fehler wird ausgeschaltet was ja eigentlich kein Fehler ist sondern es hat keine neue Eingabe in C9 gegeben.
Nur wenn Du einen neuen Eintrag hast in C9 sollte der Link geöffnet werden.
Gruß
Oraculix
Anzeige
AW: Link automatisch öffnen
05.06.2022 01:28:11
Max_Danger
Hallo Oraculix,
vielen Dank!!!
Deine Lösung funktioniert soweit, zumdindest wenn ein fester Link in der Zeile vorhanden ist.
Wenn dieser aber über die Hyperlink Formel erst gebildet wird, klappt es leider nicht.
Ich denke es liegt daran, dass der Link noch nicht verfügbar ist, wenn das Makro versucht diesen zu öffnen.
Ist es vlt. möglich einen Loop einzubauen, der es mehrfach versucht?
Ich denke damit könnte man das Problem beseitigen. :)
VG
Max
AW: Link automatisch öffnen
04.06.2022 21:17:54
Oberschlumpf
Hi,
ersetz im gezeigten Code mal...

Fehlerbehandlung
...durch

Fehlerbehandlung:
Oraculix, oder wie er heißt, hat als letztes Zeichen den Doppelpunkt vergessen.
Ob damit dein eigtl Problem erledigt ist, weiß ich nicht, aber zumindest "springt" der Debugger nicht mehr sofort an, so wie du es beschrieben hattest.
Ciao
Thorsten
Anzeige
AW: Link automatisch öffnen
05.06.2022 01:30:53
Max_Danger
Hallo Thorsten,
vielen Dank.
Daran hat es gelegen. :)
Das Makro funktioniert jetzt auch soweit.
Zumindest so lange der Link schon vorhanden ist.
Wenn dieser erst über die Hyperlink Formel gebildet werden muss, klappt es leider nicht.
Ich vermute es liegt daran, dass der Link noch nicht vorhanden ist, wenn das Makro versucht es zu öffnen.
Könnte man das vlt. mit einem Loop/Wiederholung umgehen?
Also dass er es mehrfach versucht, bis es funktioniert?
Danke nochmal für Deinen tollen Einsatz!!
VG
Max
AW: Link automatisch öffnen
05.06.2022 02:09:48
Oberschlumpf
Hi,
ich hatte dich doch schon in meiner anderen Antwort um 17:20:46 informiert, dass ich nix weiter weiß.
Hier hatte ich nur "nachgeholfen", weil eben "nur" ein Doppelpunkt fehlte.
Ciao
Thorsten
AW: Link automatisch öffnen
05.06.2022 03:04:48
Max_Danger
Hi Thorsten,
das stimmt.
Ich dachte nur, weil es jetzt ein anderer Lösungansatz ist, der für mein Szenarion soweit funktioniert.
Meiner Meinung nach jedoch wiederholt werden muss, bis der Link auch aufgebaut ist.
Wollte dich nicht nerven. :)
VG
Max
AW: Link automatisch öffnen
06.06.2022 02:00:15
Max_Danger
Hallo zusammen,
ich habe jetzt alles ausprobiert was ich ausprobieren konnte und bin nun endlich auf den Fehler gestoßen.
Anscheinend erkennt VBA erstellte Hyperlinks über die Hyperlink Formel nicht als Hyperlink an.
Das hätte ich nun wirklich nicht erwartet.
Nach langem googlen, bin ich auf einen Codeschnipsel gestoßen, mit dem man das Problem lösen sollte.
Leider meckert der Debugger bei folgendem Eintrag: "If Dir(addr) "" Then"
Meine VBA Kenntnisse sind leider zu schlecht um es ans laufen zu bekommen.
Kann mir vielleicht jemand helfen, wie ich meine erstellten Hyperlinks in "Tabelle1" "C9:H9" in richtige Hyperlinks mit dem entsprechenden Code umwandeln kann?

Sub HperlinkformelInHyperlink()
Dim fc As Range, addr, tmp
For Each fc In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
If InStr(fc.Formula, "=HYPERLINK(") > 0 Then
tmp = Split(fc.Formula, ",") 'trennen adresse und fr. name
addr = Split(tmp(0), """")(1)
If Dir(addr)  "" Then
fc.ClearContents
ActiveSheet.Hyperlinks.Add Anchor:=fc, Address:=addr, _
TextToDisplay:=Dir(addr)
Else
MsgBox "Hyperlinkpfad in " & fc.Address & " stimmt nicht."
End If
addr = ""
End If
Next
End Sub
Vielen Vielen Dank
Grüße
Max
AW: Link automatisch öffnen
06.06.2022 20:29:29
Max_Danger
Hallo zusammen,
Thema kann geschlossen werden.
Ich habes es schlussendlich mit ein bisschen Trickserei hinbekommen. :)
Vielen Dank nochmal an alle Helfer!!
Grüße
Max

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige