3.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,

ich habe folgendes Problem: Ich möchte in einem Arbeitsblatt bei Klick auf Hyperlink, welcher zu einer anderen Datei führt, die aktuelle Datei schließen.

Hierzu verwende ich den folgenden Code:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Application.DisplayAlerts = False
ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub

Nun habe ich das Problem, dass sich im Arbeitsblatt zwei Hyperlinks befinden, und nur bei einem der beiden soll die Datei geschlossen werden.

Kann ich einen genauen Hyperlink angeben, der die Datei schließt und gleichzeitig die neue öffnet?

Vielen Dank für jede Hilfe!

Herzliche Grüße

16 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

versuch es mal so:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Application.DisplayAlerts = False
'Falls der Hyperlink in Zelle A1 angeklickt wird, wird diese Arbeitsmappe geschlossen
If Target.Address = Range("A1") Then ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub

Die Adresse der betreffenden Zelle musst du natürlich auf deine Bedürfnisse anpassen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

vielen Dank für die Schnelle Antwort. Leider schließt die Datei jetzt nicht mehr...
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

hast du den Code entsprechend auf deine Datei angepasst? Bei meiner Testdatei funktioniert der Code nämlich.

Gruß

M.O.
0 Punkte
Beantwortet von
Der Code sieht bei mir nun folgendermaßen aus, da sich der Link in B9 befindet:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Application.DisplayAlerts = False
If Target.Hyperlink = Range("B9") Then ThisWorkbook.Close
Application.DisplayAlerts = True
End Sub


Oder muss ich den Namen oder Pfad des Links angeben?

Grüße
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

in deinem Code steht. Target.Hyperlink, richtig muss es aber Target.Address heißen.
Ändere das entsprechend und probiere dann noch mal den Code.

Gruß

M.O,.
0 Punkte
Beantwortet von
Ich habe den Code nun einfach kopiert, und "A1" in "B9" geändert.

Ich verstehe nicht, warum es nicht funktioniert.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

dann versuch es mal so:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

Application.DisplayAlerts = False
'Falls der Hyperlink in Zelle A1 angeklickt wird, wird diese Arbeitsmappe geschlossen
If Target.Range = "..\Deine Datei.xlsx" Then ThisWorkbook.Close

Application.DisplayAlerts = True
End Sub


Kopiere die Adresse aus den Eigenschaften des Hyperlinks (Hyperlink bearbeiten) in den Code (anstatt ..\Deine Datei.xlsx )

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo,

was genau funktioniert denn nicht? Überprüfe folgendes:

-Hast du nach Änderung von A1 in B9 und vor Schließen der Datei die Datei gespeichert?
-Hast du B9 innerhalb der Klammern auch in Anführungszeichen gesetzt?
-Sind evtl. deine Events ausgeschaltet? Führe dazu über ein anderes Makro
Application.EnableEvents=True aus oder starte Excel neu.
-Hast du den code von M.O. in das richtige SheetModul kopiert? Bei Verwendung des Moduls "DieseArbeitsmappe" muss der Makroname in Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
geändert werden.
-Beachte: Weiterer Code nach ThisWorkbook.Close kann nicht ausgeführt werden. Die DisplayAlerts-Eigenschaft wird nach Ende des Codes automatisch zurück auf True gesetzt.

Mr. K.
0 Punkte
Beantwortet von
Ich weiss einfach nicht, was verkehrt ist.

Ich bekomme die Fehlermeldung: Dieser Befehl beendet den Debugger
0 Punkte
Beantwortet von
Ergänzung:
Die Datei sollte bei Excel ab Version 2007 im Format .xlsm gespeichert werden.
...