Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Hyperlink in TextBox?

Hyperlink in TextBox?
02.05.2016 16:08:26
Vincent
Hallo zusammen,
ich möchte dass der Path, der in einer Zelle beschrieben wird, in TextBox(gilt vllt. besser in Label?) dargestellt werden und anklickbar seien kann? Von Internet habe ich die folgende Lösung gefunden, die leider bei mir nicht funktioniert. Habe eine Laufzeitfehler '-2147024809 (80070057)' bekommen. Hat jemand eine Lösung bzw. einen Vorschlag?
LWPath: ist eine festgelegte Laufwerkadresse

UF:
Private Sub TextBox_PathOfFolder_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal  _
X As Single, ByVal Y As Single)
ThisWorkbook.FollowHyperlink Address:=LWPath & Worksheets(1).Cells(zeile,spalte).Value,  _
NewWindow:=True
End Sub
Mit freundlichen Grüßen
Vincent

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink in TextBox?
02.05.2016 16:27:36
ChrisL
Hi Vincent
Die Textbox muss den Namen "TextBox_PathOfFolder" haben.
Die Variablen "LWPath, zeile, spalte" müssen richtig definiert sein.
Zur Überprüfung der Variablen kannst du mal folgende Zeile testen:
Private Sub TextBox_PathOfFolder_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal  _
X As Single, ByVal Y As Single)
MsgBox LWPath & Worksheets(1).Cells(zeile, spalte).Value
End Sub
cu
Chris

Anzeige
AW: Hyperlink in TextBox?
02.05.2016 16:31:20
Vincent
Hi Chris,
du hast recht. Ich danke dir. Habe gerade eben den Variable LWPath einen Wert übergegeben und dann funktioniert. Dazu habe ich eine neue Post erstellt. Hättest du auch ne Idee für meine neu erstellte Frage?
Mit freundlichen Grüßen
Vincent

AW: Hyperlink in TextBox?
02.05.2016 16:42:17
ChrisL
Hi Vincent
Die Anschlussfrage verstehe ich nur halb. Ist doch irgendwie egal was genau angeklickt wird :)
Resp. frage ich mich sowieso, ob dies mit einer TextBox sinnvoll ist. Vielleicht doch eher ein Label.
So oder so, die TextBox kennt nur die Events, welche (rechts oben im VBA Editor) zur Auswahl stehen.
cu
Chris

Anzeige
AW: Hyperlink in TextBox?
02.05.2016 17:10:10
Vincent
Hallo Chris,
ich meine ob es geht NUR die Texte, die im TextBox stehen, anklickbar seinen kann, sondern nicht die ganze TextBox. Z.B. kann ich an einer Stelle im Rahmen des TextBox anklicken, die aber blank ist.
Ich habe auch überlegt, statt des TextBoxs ein Label zu verwenden. Allerdings kennt Label(soweit ich entdeckt habe) auch nur Events, die TextBox auch haben. Außerdem kann die Scrollbar von TextBox erforderlich falls mein Path zu lang ist. Bitte korrigiere mich falls ich was falsch geäußert habe. :)
Mit freundlichen Grüßen
Vincent

Anzeige
AW: Hyperlink in TextBox?
02.05.2016 17:18:45
Mullit
Hallo,
über die X- und Y-Parameter im MouseUp Event müsstest Du unterscheiden, an welcher Stelle Du in der Box den Click setzt...
Gruß, Mullit

AW: Hyperlink in TextBox?
03.05.2016 12:39:01
Vincent
Hallo Mullit,
das wäre ein Lösung für eine Link, aber ich habe mehrere Link, daher ist diese Lösung nicht so geeignet. Aber danke trotzdem.
MFG Vincent

Anzeige
AW: Hyperlink in TextBox?
02.05.2016 18:06:27
ChrisL
Hi Vincent
Mullit hat natürlich recht, die Cursor Position kann man abfragen. Ob man es aber in deinem Fall Pixel-genau hinbekommt, habe ich noch nie ausprobiert (und möchte ich ehrlich gesagt auch nicht).
Ist der Link immer gleich? Wenn ja, könntest ein Bild/Image machen und dann ganz exakt ausschneiden.
cu
Chris

Anzeige
AW: Hyperlink in TextBox?
03.05.2016 12:33:13
Vincent
Hallo Chris,
es gibt mehrere Links und sie sind unterschiedlich.
MFG
Vincent

AW: Hyperlink in TextBox?
02.05.2016 16:27:42
Vincent
hat sich erledigt. Mein LWPath hat keinen Wert übergegeben.
Aber die Codes die ich oben gepostet habe sind dafür, dass der ganze TextBox anklickbar ist. Gibt es eine Lösung, dass nur die Texte anklickbar seien könnte?
Mit freundlichen Grüßen
Vincent

Anzeige
AW: Hyperlink in TextBox?
03.05.2016 14:23:10
Vincent
Hallo zusammen,
meine Frage ist noch nicht erledigt. Im folgenden versuche ich meine Frage deutlicher zu formulieren:
hat jemand eine Lösung, dass ich die Texte, die ich jeweils in einer Zelle vom Arbeitsblatt definiert habe, in einzelne Link umwandeln, und anschließend den Name solcher Links(z.B.: Link ist www.xxx.com, der Name der Link ist xxx.) in einem Control(TextBox?Label?oder noch andere Möglichkeit) von UF anzeigen und anklickbar seien lassen kann.
Die Events wie MouseUp,MouseDown,DbClick usw. von TextBox und Label bringen mir in meinem Fall eher nichts, weil jede Link(jede Link ist unterschiedlich) anklickbar seien soll, sondern nicht der ganzen Bereich der Controls.
Hat jemand eine Lösung dafür?
Ein Beispiel Code wäre sehr nett.
Vielen Dank für eure Hilfe im Voraus.
Vinecnt

Anzeige
AW: Hyperlink in TextBox?
04.05.2016 10:22:21
ChrisL
Hi Vincent
Hier ein Work-Around...
https://www.herber.de/bbs/user/105391.xlsm
Die Excel-Datei muss in einem Verzeichnis mit Schreibrecht sein, da eine temporäre HTML Datei erzeugt wird.
Private Sub UserForm_Initialize()
Open ThisWorkbook.Path & "\Link.html" For Output As #1
Print #1, 'hier wird der HTML Code geschrieben
Close #1
WebBrowser1.Navigate ThisWorkbook.Path & "\Link.html"
End Sub

Private Sub UserForm_Terminate()
Kill ThisWorkbook.Path & "\Link.html"
End Sub

(Code lässt sich im Forum wegen HTML nicht sauber darstellen)
cu
Chris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Hyperlinks in TextBoxen erstellen


Schritt-für-Schritt-Anleitung

Um einen Hyperlink in einer TextBox in Excel anklickbar zu machen, folge diesen Schritten:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein UserForm hinzu:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt, wähle Einfügen und dann UserForm.
  3. Füge eine TextBox hinzu:

    • Ziehe eine TextBox aus der Toolbox in dein UserForm.
  4. Benenne die TextBox:

    • Stelle sicher, dass die TextBox den Namen TextBox_PathOfFolder hat.
  5. Füge den folgenden Code hinzu:

    Private Sub TextBox_PathOfFolder_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
       ThisWorkbook.FollowHyperlink Address:=LWPath & Worksheets(1).Cells(zeile, spalte).Value, NewWindow:=True
    End Sub
  6. Definiere die Variablen:

    • Stelle sicher, dass die Variablen LWPath, zeile und spalte korrekt definiert sind.
  7. Teste dein UserForm:

    • Schließe den VBA-Editor und teste dein UserForm, um sicherzustellen, dass der Link funktioniert.

Häufige Fehler und Lösungen

  • Laufzeitfehler '-2147024809 (80070057)':

    • Lösung: Überprüfe, ob LWPath, zeile und spalte korrekt definiert sind. Verwende zur Überprüfung einen MsgBox:
      MsgBox LWPath & Worksheets(1).Cells(zeile, spalte).Value
  • Die TextBox ist nicht anklickbar:

    • Stelle sicher, dass die TextBox den richtigen Namen hat und dass du den MouseUp-Event korrekt implementiert hast.

Alternative Methoden

Wenn du Excel-Links anklickbar machen möchtest, gibt es auch alternative Ansätze:

  1. Verwendung eines Labels:

    • Labels unterstützen keine Maus-Events wie TextBoxen, können aber durch einen Klick auf die gesamte Fläche einen Link öffnen.
  2. WebBrowser-Steuerelement:

    • Füge ein WebBrowser-Steuerelement zu deinem UserForm hinzu und lade eine HTML-Datei mit den Hyperlinks:
      Private Sub UserForm_Initialize()
      Open ThisWorkbook.Path & "\Link.html" For Output As #1
      Print #1, "<a href='URL'>Linktext</a>"
      Close #1
      WebBrowser1.Navigate ThisWorkbook.Path & "\Link.html"
      End Sub

Praktische Beispiele

Ein praktisches Beispiel könnte sein, dass du mehrere Links in einer TextBox darstellst. Hier ist ein einfacher Code, der dies ermöglicht:

Private Sub UserForm_Initialize()
    TextBox_PathOfFolder.Text = "www.example1.com, www.example2.com"
End Sub

Private Sub TextBox_PathOfFolder_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If X > 0 And X < 100 Then
        ThisWorkbook.FollowHyperlink Address:="http://www.example1.com"
    ElseIf X > 100 Then
        ThisWorkbook.FollowHyperlink Address:="http://www.example2.com"
    End If
End Sub

Tipps für Profis

  • Verwende HTML:

    • Wenn du viele Links hast, erwäge die Verwendung von HTML in einem WebBrowser-Steuerelement, um die Verwaltung zu erleichtern.
  • Positionserkennung:

    • Nutze die X- und Y-Parameter des MouseUp-Events, um zu bestimmen, welcher Link angeklickt wurde.
  • Dynamische Links:

    • Generiere die Links dynamisch aus einer Datenquelle, um Flexibilität zu erhalten.

FAQ: Häufige Fragen

1. Kann ich Links direkt in einer TextBox erstellen? Ja, aber es erfordert den Einsatz von VBA, um den Text anklickbar zu machen.

2. Ist es besser, ein Label oder eine TextBox zu verwenden? Das hängt von der Funktionalität ab. Eine TextBox ermöglicht Scrollen, während ein Label einfacher ist, wenn du nur einen Link darstellen möchtest.

3. Gibt es eine Möglichkeit, mehrere Links in einer TextBox zu haben? Ja, du kannst die Position des Mauszeigers verwenden, um unterschiedliche Links zu erkennen, abhängig davon, wo der Benutzer klickt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige