Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Hyperlink verwirrung

Hyperlink verwirrung
05.06.2008 15:42:32
Tommi
Hallöchen,
ich habe irgendwie ein Verständnisproblem mit den Hyperlinks. Ich habe ein Tabellenblatt A (leer) und ein Tabellenblatt B in dem viele Zeilen untereinander stehen. Immer wieder kommt ein bestimmter Begriff in Spalte 1 vor 'Kapitel: Blafasel'.
Nun dachte ich sollte es einfach sein in Blatt A automatisch eine Art Inhaltsverzeichnis zu generieren. Aber gibt es dazu eine Funktion unter Excel oder muss man selber programmieren?
Der VBA Ansatz wäre vermutlich etwas im Stil von
x = 1
For zeile = 1 To MaxZeilenzahl
If Left(Cells(zeile, 1),8)="Kapitel:") Then
'setze Hyperlink mit Bezeichnung Mid(Cells(zeile, 1), 9, 99) in Blatt A in Cell(x, 1)
x = x + 1
End If
Next zeile
Nur irgendwie steige ich bei der Hilfe zu den Hyperlinks nicht so ganz durch, ist das so kompliziert?
LG,
Tommi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hyperlink verwirrung
05.06.2008 16:13:00
Björn
Hallo,
der Befehl den Du suchst heißt hyperlinks.add.
Such danach mal im Forum, da gibt es genügend.
Gruß
Björn

AW: Hyperlink verwirrung
05.06.2008 16:22:00
Rudi
Hallo,
ist das so kompliziert?


Ja!
{=HYPERLINK("#B!A"&KKLEINSTE(WENN(LINKS(B!$A$1:$A$100;7)="Kapitel";ZEILE($1:$100);"");ZEILE(A1)); WECHSELN(INDEX(B!$A$1:$A$100;KKLEINSTE(WENN(LINKS(B!$A$1:$A$100;7)="Kapitel";ZEILE($1:$100);""); ZEILE(A1)));"Kapitel: ";"")) }
Matrixformel!{} nicht eingeben, sondern Formel mit shift+strg+enter abschließen.
Gruß
Rudi

Frage zur Lösung
05.06.2008 17:08:00
Tobias
Hallo Rudi!
Wirklich eine schöne Lösung. Kannst Du mir verraten, warum ich mit Indirekt und Adresse nicht auf ein Ergebnis komme (siehe Zelle A1)? In Spalte B ist zu sehen, dass die Lösung eigentlich funktionieren sollte, aber sobald ich die Formel aus Spalte B in Spalte A kopiere geht etwas schief.
Ist Index schneller als Indirekt und Adresse?
Vielen Dank!
Tobias
A

 AB
1#WERT!Kapitel 1
2Kapitel 1.1Kapitel 1.1
32Kapitel 2

Formeln der Tabelle
ZelleFormel
A1{=HYPERLINK("#B!A"&KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A1)), INDIREKT(ADRESSE(KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A1)),1,,,"B")))}
B1{=INDIREKT(ADRESSE(KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A1)),1,,,"B"))}
A2{=HYPERLINK("#B!A"&KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A2)), B2)}
B2{=INDIREKT(ADRESSE(KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A2)),1,,,"B"))}
A3{=HYPERLINK("#B!A"&KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A3)), WECHSELN(INDEX(B!$A$1:$A$10000,KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A3))),"Kapitel ",""))}
B3{=INDIREKT(ADRESSE(KKLEINSTE(WENN(LINKS(B!$A$1:$A$10000,7)="Kapitel",ZEILE($1:$10000),""),ZEILE(A3)),1,,,"B"))}
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4

Anzeige
AW: Hyperlink verwirrung
05.06.2008 16:26:00
fcs
Hallo Tommi,
Anweisungen in VBA erfordern nun mal eine bestimmte Syntax. Hilfreich ist fast immer die gewünschte Funktion mit dem Recorder aufzuzeichnen und den den zusätzlichen Code drum herum zu "basteln".
Gruß
Franz

Sub aaKapitelHyperlinks()
Dim objWks As Worksheet, objWksA As Worksheet
Dim Maxzeilenzahl As Long, Zeile As Long, ZeileA As Long
Set objWks = ActiveSheet
Set objWksA = Worksheets("Blatt_A")
ZeileA = 1
With objWks
Maxzeilenzahl = .Cells(.Rows.Count, 1).End(xlUp).Row
For Zeile = 1 To Maxzeilenzahl
If Left(.Cells(Zeile, 1), 8) = "Kapitel:" Then
'setze Hyperlink mit Bezeichnung Mid(Cells(zeile, 1), 9, 99) in Blatt A in Cell(x, 1)
objWksA.Cells.Hyperlinks.Add Anchor:=objWksA.Cells(ZeileA, 1), Address:="", _
SubAddress:="'" & .Name & "'!" & .Cells(Zeile, 1).Address, _
TextToDisplay:=Mid(.Cells(Zeile, 1).Value, 9)
objWksA.Cells(ZeileA, 1).Value = Mid(.Cells(Zeile, 1).Value, 9)
ZeileA = ZeileA + 1
End If
Next Zeile
End With
End Sub


Anzeige
AW: Hyperlink verwirrung
06.06.2008 08:45:00
TommiH
Hallo Franz,
hmm, komisch, ich habe das mal angepasst aber es kam eine Fehlermeldung, TextToDisplay ist unbekannt. Ich habe das Teil mal rausgeworfen, was auch immer es gemacht hätte (Excel-Versionsproblem?)
Die _ sollen bedeuten, dass das alles in eine Zeile kann?
So habe ich es gemacht ... und ... es geht! Okay, dann muss ich mich mal näher mit dem Code beschäftigen um auch zu verstehen, was da passiert ;)
Danke!
LG,
Tommi

AW: Hyperlink verwirrung
06.06.2008 11:47:00
Tommi
Hmm,
nun habe ich wohl gemerkt was der rausgeworfene Teil prinzipiell machen sollte, nämlich dem Hyperlink einen Namen geben, wenn man mit dem Mauszeiger drauf kommt. Komisch, dass er das dann nicht akzeptiert hat...
Nunja, so ist es nicht so schön, aber es funktioniert zumindest.
LG,
Tommi

Anzeige
AW: Hyperlink verwirrung
06.06.2008 13:02:37
fcs
Hallo Tommi,
die Option "Text to Display" funktioniert erst in neueren Excel-Versionen. In 97 noch nicht; hatte ich übersehen.
Gruß
Franz

AW: Hyperlink verwirrung
06.06.2008 13:08:00
Tommi
Hai Franz,
naja, im Prinzip ist es ja auch so gegangen. Wobei die Frage ist, ob es da früher nicht was anderes gab, oder ob unter Ex97 dann immer nur der Link ansich angezeigt wird.
Was ich auch interessant finde ist, dass er das Verzeichnis mit anzeigt allerdings zum Glück anpasst, wenn man die Datei umkopiert. Hatte schon angst das wäre eine absolute Adressierung...
Nun muss ich nur noch schauen ob ich der HyperLinkliste irgendwie ein nettes Item (Kästechen/Kreis) vorgestellt bekomme, dass es ein bisserl hübscher aussieht, so listenmässig.
LG,
Tommi

Anzeige
AW: Hyperlink verwirrung
06.06.2008 13:54:16
fcs
Hallo Tommi,
das der Link in der Datei bleibt erreicht man dadurch, dass der Parameter Address auf "" gesetzt wird.
Was das Listenzeichen angeht, dann kannst du das in der Liste mit einem nicht druckbaren Zeichen als Kästchen machen oder halt auch ein kleines "o" plus Leerzeichen vor den Text setzen.
Beispiel:

'setze Hyperlink mit Bezeichnung Mid(Cells(zeile, 1), 9, 99) in Blatt A in Cell(x, 1)
objWksA.Cells.Hyperlinks.Add Anchor:=objWksA.Cells(ZeileA, 1), Address:="", _
SubAddress:="'" & .Name & "'!" & .Cells(Zeile, 1).Address
objWksA.Cells(ZeileA, 1).Value = Chr(1) & " " & Mid(.Cells(Zeile, 1).Value, 9)


Gruß
Franz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige