Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1188to1192
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
Kann man Hyperlinks aud Listbox starten
Jockel
Hallo,
ich mal wieder mit meinen Hyperlinks :-)
In einer Excel mappe habe ich in der Spalte B viele Hyperlinks. Nun habe ich mir dazu eine Suchmaske gebaut. Eine Userform mit einem Textfeld zur Eingabe für die Suche , ein Button und eine Listbox.
So, wenn ich nun in die Textbox einen Begriff eingebe, dann den Button klicke, (siehe Code unten) , dann werden mir alle Hyperlinks in der Spalte B angezeigt, die den eingegebene Begrif enthalten.
Private Sub CommandButton1_Click()
With UserForm1
.ListBox1.Clear
Sheets("Links").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
.ListBox1.Column(1, e) = Cells(i, 2).Value
.ListBox1.Column(2, e) = Cells(i, 3).Value
e = e + 1
Else
End If
Next i
End With
End Sub
So, ich würde nun gerne einen zweiten Button einbauen, der , wenn ich in der Listbox einen Eintrag angeklickt habe, diesen Hyperlink öffnet.
Geht das ? Wenn ja, wie ?
Danke mal
Jockel
AW: Kann man Hyperlinks aud Listbox starten
14.12.2010 11:18:19
Tino
Hallo,
schau Dir mal die 'Workbook.FollowHyperlink-Methode' an.
Gruß Tino
AW: Kann man Hyperlinks aud Listbox starten
14.12.2010 11:46:08
Jockel
Hallo Tino,
wenn ich das FollowHyperlink Ereignis in der Hilfe richtig verstehe, dann brauche ich aber für jeden Hyperlink , den ich öffnen will, die entsprechende Zieladresse.
Die habe ich in dem Moment aber nicht.
Also, nochmal zur Verdeutlichung: alle Dokumente , die ich per Hyperlink eingebunden habe, liegen lokal im gleichen Verzeichnis. Wenn ich mir über mein Suchfeld Datensätze in der Listbox anzeigen lasse, ist das doch in dem Moment reiner Text, oder.
Wie komme ich nun an die Adresse oder an den Dateiname, die im Hyperlink steht, um die lokale Datei aufzurufen ? das ist mir nicht klar.
Danke
Jockel
Anzeige
FollowHyperlink
14.12.2010 12:04:50
Rudi
Hallo,
nicht das Ereignis, die Methode.
Wie ich das sehe, schreibst du ja in Spalte 2 der LB den Hyperlink.
Activeworkbook.followhyperlink Listbox1.Column(1)
Gruß
Rudi
AW: FollowHyperlink
14.12.2010 13:08:50
Jockel
Hallo Rudi,
ah danke.
Also, wenn der Link direkt auf eine einzelne Datei weist, dann funktioniert es. Ich habe da nur noch ein kleines Problem:
Ich habe nicht nur einzelne Dateien, sondern ich habe auch ein html Dokument, da stehen ziemlich viele Daten drin.
Wenn ich den Hyperlink
"LinkAblage.htm#Prüfen ob der Link funktioniert"
direkt in der Excel Zelle anklicke, dann öffnet sich das Dokument LinkAblage.htm und der Curser springt nach unten genau an die Stelle "Prüfen ob der Link funktioniert"
Wenn ich das gleiche über die Listbox mache, dann kommt es zu einer Fehlermeldung, ich nehme an, wegen der Sprungmarke.
Kann man das irgend wie umgehen, das sich auch mit der Sprungmarke das Dokument öffnet und der Curser an die richtige Stelle springt ?
Danke Jockel
Anzeige
Lies die Hilfe owT
14.12.2010 13:20:19
Rudi
AW: Lies die Hilfe owT
14.12.2010 13:39:58
Jockel
Hallo Rudi,
ich habe die Hilfe gelesen, da habe ich folgendes gefunden:
SubAddress Optionaler Variant-Wert. Die Position innerhalb des Zieldokuments. Der Standardwert ist eine leere Zeichenfolge.
Ich nehme an, SubAddress ist da die richtige Option. ABER, wie komme ich an die Position innerhalb des Dokuments, ich habe doch für jedes Dokument prakrisch eine andere Position.
Gruß
Jockel
... mit dem Makrorecorder...
14.12.2010 13:49:25
Christian
Jockel,
Bsp:
        Debug.Print Cells(3, 4).Hyperlinks(1).Address
Debug.Print Cells(3, 4).Hyperlinks(1).SubAddress

Gruß
Christian
Anzeige
AW: ... mit dem Makrorecorder...
14.12.2010 13:55:57
Jockel
Hallo Christian,
gehen wir mal davon aus, es handelst sich hier tatsächlich um die Option SubAddress.
Dann müsste ja mein Code so aussehen :
ActiveWorkbook.FollowHyperlink ListBox1.Column(1).SubAddress
Das funktioniert auch nicht. Entweder ist der Aufruf falsch oder die Option stimmt nicht. Einrichtigers Beispiel gibt die Hilfe für SubAddress leider nicht her.
Gruß
Jockel
nee...
14.12.2010 14:00:59
Christian
... die Listbox.Column hat keine Subaddress.
die Subaddress holst du dir vorher, beim Auslesen des Hyperlinks.
siehe mein Bsp.
Christian
Sorry, ich blicks gerade garnicht mehr ..
14.12.2010 14:15:17
Jockel
Hi Christian,
Sorry, nun blick ich garnichts mehr vor lauter Code. Vertshe ich das richtig, mit diesen Zeilen wird die Adresse und die Subadresse ausgelesen ? :
Debug.Print Cells(3, 4).Hyperlinks(1).Address
Debug.Print Cells(3, 4).Hyperlinks(1).SubAddress
Wenn ja, wie erfolgt dann der Aufruf meiner markierten Zeile in der Listbox
Gruß
Jockel
Anzeige
AW: Sorry, ich blicks gerade garnicht mehr ..
14.12.2010 14:23:21
Christian
ja,
schreib die Hyperlinks(1).Address und Hyperlinks(1).Subaddress in deine Listbox.
Mit der 'Workbook.FollowHyperlink-Methode' fogst du damm dem Link, aber das kennst du ja schon Tino.
Gruß
Christian
Sorry, ich blicks gerade garnicht mehr ..
14.12.2010 14:16:25
Jockel
Hi Christian,
Sorry, nun blick ich garnichts mehr vor lauter Code. Verstehe ich das richtig, mit diesen Zeilen wird die Adresse und die Subadresse ausgelesen ? :
Debug.Print Cells(3, 4).Hyperlinks(1).Address
Debug.Print Cells(3, 4).Hyperlinks(1).SubAddress
Wenn ja, wie erfolgt dann der Aufruf meiner markierten Zeile in der Listbox
Gruß
Jockel
Sorry, ich blicks gerade garnicht mehr ..
14.12.2010 14:17:03
Jockel
Hi Christian,
Sorry, nun blick ich garnichts mehr vor lauter Code. Verstehe ich das richtig, mit diesen Zeilen wird die Adresse und die Subadresse ausgelesen ? :
Debug.Print Cells(3, 4).Hyperlinks(1).Address
Debug.Print Cells(3, 4).Hyperlinks(1).SubAddress
Wenn ja, wie erfolgt dann der Aufruf meiner markierten Zeile in der Listbox
Gruß
Jockel
Anzeige
Auf Tastatur eingeschlafen...?! ;-> orT
14.12.2010 17:48:08
Luc:-?
Gruß Luc :-?
AW: FollowHyperlink
14.12.2010 14:15:44
Rudi
Hallo,
versuchs mal mit
Dim vntAddress
vntAddress = Split(Listbox1.Column(1), "#")
ActiveWorkbook.FollowHyperlink Address:=vntAddress(0), SubAddress:=IIf(UBound(vntAddress) = 1, vntAddress(1), "")

Gruß
Rudi
AW: FollowHyperlink
14.12.2010 14:28:36
Jockel
Hallo Rudi,
da kommt die Fehlermeldung, Index ausserhalb des gültigen Bereichs.
Nicht das ich vorher was falsch erklärt habe:
Also nochmal zur Übersicht. in meiner Excel tabelle habe ich zwei Spalten
Spalte A: dort stehen nur Kategorien drin (nur Text)
Spalte B: dort stehen die Hyperlinks drin.
Wenn ich nun auf meiner Userform einen Begriff suche, werden dort alle Datensätze aufgelistet, die den Begriff in Spalte B meiner Excel Tabelle entsprechen.
Die Listbox ist unterteilt in zwei Spalten. Wenn Daten in die Listbox geladen wurden, stehen in der ersten Spalte wieder die Kategorieren und in der zweiten die Hyperlinks als Text:
Private Sub CommandButton1_Click()
With UserForm1
.ListBox1.Clear
Sheets("Links").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
.ListBox1.Column(1, e) = Cells(i, 2).Value
.ListBox1.Column(2, e) = Cells(i, 3).Value
e = e + 1
Else
End If
Next i
End With
End Sub

Geht Dein jetziger Code davon aus, die Listbox hat bei mit nur eine Spalten und deswegen die Fehlermeldung ?
Gruss
Jockel
Anzeige
AW: FollowHyperlink
14.12.2010 15:51:06
Rudi
Hallo,
komm jetzt auch nicht weiter. Beispieldatei?
Gruß
Rudi
AW: FollowHyperlink
14.12.2010 19:44:06
Jockel
Hallo Rudi,
ich mach morgen mal eine Beispieldatei.
Gruß
Jockel
Hier ist eine Beispieldatei
15.12.2010 08:18:47
Jockel
Hallo
hier ist die Beispieldatei.
- ablegen in C:\test
- xls öffnen
- in Spalte B sind 3 Hyperlinks zu sehen. die ersten beiden weisen auf die Datei ABLAGE und haben Sprungmarken. Das dritte Dokument ist einfach ein Einzeldokument. Alle drei Hyperlinks sollten funktionieren, wenn man sie direkt anklickt.
- dann mal den Button SUCHEN klicken
- Suchbegriff "ÖFFNEN" eingeben
- Button SUCHEN klicken.
alle drei Hyperlinks sollten in der Listbox zu sehen sein.
- dann mal über den Button "Dokument öffnen" versuchen, ein Dokument zu öffnen. Da kommt dann der Fehler.
Achtung: Beim öffnen der Dokumente aus der Listbox heraus sollten beide Dokumente aufgehen.
https://www.herber.de/bbs/user/72686.zip
Danke
Gruß
Jockel
Anzeige
AW: Hier ist eine Beispieldatei
15.12.2010 10:43:39
Rudi
Hallo,
Private Sub UserForm_Initialize()
With UserForm1.ListBox1
.ColumnCount = 4
.ColumnWidths = "100;300;0;0"
End With
End Sub

Private Sub CommandButton1_Click()
'Suchen-Funktion
With UserForm1
.ListBox1.Clear
Sheets("Makros").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
.ListBox1.Column(1, e) = Cells(i, 2).Value
.ListBox1.Column(2, e) = Cells(i, 3).Value
.ListBox1.Column(3, e) = Cells(i, 2).Hyperlinks(1).Address _
& IIf(Cells(i, 2).Hyperlinks(1).SubAddress  "", "#" _
& Cells(i, 2).Hyperlinks(1).SubAddress, "")
e = e + 1
Else
End If
Next i
End With
End Sub

Private Sub CommandButton2_Click()
Dim vntAddress
vntAddress = Split(ListBox1.Column(3), "#")
If UBound(vntAddress) > 0 Then
ActiveWorkbook.FollowHyperlink Address:=vntAddress(0), SubAddress:=vntAddress(1)
Else
ActiveWorkbook.FollowHyperlink Address:=vntAddress(0)
End If
End Sub

Gruß
Rudi
Anzeige
Hallo Rudi, super, vielen vielen Dank owT
15.12.2010 11:30:55
Jockel
Sorry, noch ne kleine Frage..
15.12.2010 11:55:59
Jockel
Die Suchfunktion soll erst ab Zeile 25 losgehen, was muss ich da ändern ?
danke
'Suchen-Funktion
With UserForm1
.ListBox1.Clear
Sheets("Makros").Activate
e = 0
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If InStr(LCase(Cells(i, 2).Value), LCase(.TextBox1.Value)) > 0 Then
.ListBox1.AddItem Cells(i, 1).Value
.ListBox1.Column(1, e) = Cells(i, 2).Value
.ListBox1.Column(2, e) = Cells(i, 3).Value
.ListBox1.Column(3, e) = Cells(i, 2).Hyperlinks(1).Address _
& IIf(Cells(i, 2).Hyperlinks(1).SubAddress <> "", "#" _
& Cells(i, 2).Hyperlinks(1).SubAddress, "")
e = e + 1
Else
End If
Next i
End With
Jockel
Anzeige
AW: Sorry, noch ne kleine Frage..
15.12.2010 12:27:01
Rudi
Hallo,
ersetze
For i = 2 To ActiveSheet.UsedRange.Rows.Count
durch
for i=2 to cells(rows.count, 2).end(xlup).Row
Gruß
Rudi
Korrektur
15.12.2010 12:27:31
Rudi
Hallo,
ersetze
For i = 2 To ActiveSheet.UsedRange.Rows.Count
durch
for i=25 to cells(rows.count, 2).end(xlup).Row
Gruß
Rudi
Supi, danke owT
15.12.2010 16:44:45
Jockel

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige