Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Hyperlink setzen über VBA

Hyperlink setzen über VBA
24.01.2005 17:07:19
Christoph
Hallo,
ich möchte einen Hyperlink auf eine andere Datei einfügen. Leider muss dies über VBA geschehen. In XLS funktioniert das wunderbar über "XLS - insert - hyperlink". Gibt es dies auch als Methode in VBA?
Hintergrund:
Von einem Formular aus soll der Anwender nämlich die Datei auswählen (z.B. mit FileDialog). Mit VBA will ich nun diese Datei als Hyperlink in eine Zelle schreiben. Das Problem ist, ich bräuchte den link relativ und nicht absolut. Wenn ich den XLS-Schritt als Makro aufnehme kommt folgendes raus:
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"Sim_Run_8000motors_Files/_Start.htm", TextToDisplay:= _
"Sim_Run_8000motors_Files\_Start.htm"
Wie ich diesen Pfad aber mit VBA nachbilde weiß ich leider nicht.
Wer kann mit hierfür einen Tipp geben.
Vielen DANK für Eure Hilfe
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink setzen über VBA
Ramses
Hallo
ungetestet
Dim srcName As STring
srcName = Application.GetOpenFilename
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
srcName, TextToDisplay:= srcName
Was du allerdings mit relativ und absolut meinst, weiss ich nicht
Gruss Rainer
AW: Hyperlink setzen über VBA
25.01.2005 10:26:25
Christoph
Hallo,
ersteinmal herzlich Dank für die Hilfe. Doch Dein Vorschlag erzeugt mir zwar wunderbar einen link, aber der Pfad wird "absolut" angegeben, d.h. C:/../... .
Die links müssen aber auf beliebigen Computer funktionieren und auf diesen Computern kann eben nur noch der "relative" Pfad garantiert werden kann. Also von der eigenen XLS Datei befindet sich der link z.B. im Unterordern "links". Dies würde dann bedeutet:
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
"links/_Start.htm", TextToDisplay:= _
"links\_Start.htm"
Um zu diesem relativen Pfad zu kommen müsste ich also vielleicht einfach nur die aktuelle Pfad-Position der XLS Datei vom dem absoluten link-Pfad "abziehen". Also...
C:/programme/tests/ - C:/programme/tests/links/test.htm = links/test.htm
also ungefähr....
[ ?curDir oder so] - [Application.GetOpenFilename] = ...
..nur wie genau das geht... bin noch ein wenig überfragt. Vielleicht kannst Du oder Ihr mir nochmals helfen.
Vielen Dank und schöne Grüße
Christoph
Anzeige
AW: Hyperlink setzen über VBA
Ramses
Hallo
Kein Problem
Dim srcName As STring
srcName = Application.GetOpenFilename
srcName = Right(src, Len(src) - InStrRev(srcName, "\", -1))
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:= _
ThisWorkbook.Path & "\" &srcName, TextToDisplay:= srcName
Gruss Rainer
Anzeige
AW: Hyperlink setzen über VBA
25.01.2005 13:52:30
Christoph
Vielen Dank für die Hilfe, aber leider funktioniert das auch nicht so wie es soll.
Wenn Du in Excel über insert hyperlink eine Datei verlinks, dann wird der link folgendermaßen angeben:
Verzeichnis_unter_Workbook\test.html
(falls "Verzeichnis_unter_Workbook" ein Verzeichnis unterhalb des Workbooks ist)
oder
..\Verzeichnis_Über_Workbook\test.htm
(falls "Verzeichnis_über_Workbook" ein Verzeichnis über dem Workbook ist)
oder
..\..\2Verzeichnisse_Über_Workbook\test.htm
(falls "2Verzeichnisse_über_Workbook" ein Verzeichnis 2xüber dem Workbook ist)
Kannst es ja einfach mal in Excel ausprobieren was ich meine.
Falls es aber keine geeignete Methode für relative Pfad Beziehungen zwischen 2 Dateien gibt, dann werden ich die Dateien wohl einfach nachträglich über insert - hyperlink einfügen müssen.
Trotzdem vielen herzlichen Dank für Deine Hilfe!!!
Einen schönen Tag und nochmals herzlichen Dank
Christoph
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Hyperlink einfügen in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um einen Hyperlink in Excel über VBA zu erstellen, kannst du die Methode ActiveSheet.Hyperlinks.Add verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).

  2. Erstelle ein neues Modul (Rechtsklick auf "VBAProject" > Einfügen > Modul).

  3. Füge folgenden Code ein, um einen Hyperlink zu einer Datei einzufügen:

    Sub HyperlinkEinfügen()
       Dim srcName As String
       srcName = Application.GetOpenFilename("HTML Dateien (*.html), *.html")
       If srcName <> "False" Then
           ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=ThisWorkbook.Path & "\" & srcName, TextToDisplay:=srcName
       End If
    End Sub
  4. Schließe den VBA Editor und gehe zurück zu Excel.

  5. Wähle die Zelle aus, in die der Hyperlink eingefügt werden soll.

  6. Führe das Makro aus (ALT + F8, wähle HyperlinkEinfügen und klicke auf "Ausführen").


Häufige Fehler und Lösungen

  • Problem: Der Hyperlink wird mit einem absoluten Pfad erstellt.

    • Lösung: Stelle sicher, dass du den relativen Pfad korrekt festlegst. Verwende ThisWorkbook.Path, um den Pfad des aktuellen Arbeitsbuchs zu erhalten.
  • Problem: Der Hyperlink führt nicht zur gewünschten Datei.

    • Lösung: Überprüfe, ob der Dateipfad korrekt ist. Stelle sicher, dass die Datei existiert und der Pfad richtig angegeben ist.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, wie du einen Hyperlink in Excel einfügen kannst:

  1. Direktes Einfügen über die Excel-Oberfläche:

    • Gehe zu Einfügen > Link > Link einfügen.
    • Wähle die Datei aus und klicke auf "OK".
  2. Verwendung von Formeln:

    • Du kannst auch die HYPERLINK-Funktion in Excel verwenden:
      =HYPERLINK("links/_Start.htm", "Link zu Start")

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du Hyperlinks über VBA erstellen kannst.

  1. Hyperlink zu einer HTML-Datei:

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="links/_Start.htm", TextToDisplay:="Start"
  2. Hyperlink zu einer Datei im übergeordneten Verzeichnis:

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="..\test.htm", TextToDisplay:="Testdatei"

Tipps für Profis

  • Verwende Selection.Address, um den Link dynamisch an die Auswahl anzupassen.
  • Nutze On Error Resume Next, um Fehler beim Einfügen der Hyperlinks zu ignorieren und die Benutzererfahrung zu verbessern.
  • Experimentiere mit der TextToDisplay-Eigenschaft, um ansprechende Anzeigenamen für deine Hyperlinks zu erstellen.

FAQ: Häufige Fragen

1. Wie kann ich einen Hyperlink zu einer externen Webseite erstellen? Du kannst einfach die URL in der Address-Eigenschaft angeben, z.B.:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="http://www.example.com", TextToDisplay:="Example Webseite"

2. Wie kann ich mehrere Hyperlinks gleichzeitig einfügen? Du kannst eine Schleife verwenden, um mehrere Hyperlinks zu erstellen. Beispiel:

Dim i As Integer
For i = 1 To 5
    ActiveSheet.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="links/file" & i & ".htm", TextToDisplay:="Datei " & i
Next i

3. Wie kann ich einen Hyperlink entfernen? Du kannst den Hyperlink mit folgendem Befehl entfernen:

ActiveSheet.Hyperlinks(1).Delete

Ersetze 1 durch die entsprechende Indexnummer des Hyperlinks.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige