Hyperlinks dynamisch erstellen

Hallo zusammen.
Ich hab ein kleines „problem“… Und zwar würde ich gerne aus einer Excel Tabelle Hyperlinks erstellen. Nun sollen sich diese Hyperlinks so zusammensetzen, dass sie sich aktualisieren, wenn sich der Inhalt der Quell-Zelle ändert…

Im prinzip soll also eine auflistung erstellt werden, mit informationen aus einer Tabelle. Ich finde aber nur die Möglichkeit das per klickklickklick zu machen… nix mit dynamisch… Makro wäre mir auch noch recht, aber dazu ist mein wissen zu beschränkt… Für den Fall eines Makros wäre es eben interessant einen Link zu erstellen wie
link
(wie) Geht das?

Danke schon mal

Hi Munich,
ich bin mir absolut nicht sicher ob ich dich richtig verstanden habe.
Wenn du folgende Tabelle hast:

 A
1 www
2 wer-weiss-was
3 de

erscheint der Hyperlink http://www.wer-weiss-was.de in Zelle B1 wenn du in der Tabelle unten mit rechts auf den Tabellennamen klickst, dann mit links auf „Code anzeigen“ und dann den nachfolgenden Code dort reinkopierst.
Aber ich glaube mit
link
meinst du was anderes, was soll denn das ? und das = bedeuten?

Gruß
Reinhard

Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Column 1 Then Exit Sub ' 1=A, 2=B usw.
ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 2), Address:="http://" & \_
 Cells(1, 1).Value & "." & Cells(2, 1).Value & "." & Cells(3, 1)
End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hmmm…

Hi Munich,
ich bin mir absolut nicht sicher ob ich dich richtig
verstanden habe.
Wenn du folgende Tabelle hast:

A
1 www
2 wer-weiss-was
3 de

ich hab eher sowas:

 A B C
1 msn.com user ich
2 msn.com user du 
3 gmx.net trallala wert

erscheint der Hyperlink http://www.wer-weiss-was.de in Zelle
B1 wenn du in der Tabelle unten mit rechts auf den
Tabellennamen klickst, dann mit links auf „Code anzeigen“ und
dann den nachfolgenden Code dort reinkopierst.
Aber ich glaube mit
link
meinst du was anderes, was soll denn das ? und das = bedeuten?

das ? und = sind bestandteile der URL…
z.b. hat das aktuelle Dokument hier diese Url:
http://www.wer-weiss-was.de/cgi-bin/forum/writeartic…
du siehst, da sind auch ? & und = drin… ist halt scripting :wink:

> Private Sub Worksheet\_Change(ByVal Target As Range)  
> If Target.Column 1 Then Exit Sub ' 1=A, 2=B usw.  
> ActiveSheet.Hyperlinks.Add Anchor:=Cells(1, 2),  
> Address:="http://" & \_  
> Cells(1, 1).Value & "." & Cells(2, 1).Value & "." &  
> Cells(3, 1)  
> End Sub

damit befülle ich dann ein Makro, oder? Kann ich das auch automatisieren, so dass er nicht nur eine Zeile, sondern eine ganze Reihe von Spalten macht…? Und wenn ja, kann ich dann auch so machen, dass er einen Wert aus einer bestimmten, fixen Zelle holt also quasi ein $A$8?

Danke bis hierher

ich hab eher sowas:

A B C
1 msn.com user ich
2 msn.com user du
3 gmx.net trallala wert

damit befülle ich dann ein Makro, oder? Kann ich das auch
automatisieren, so dass er nicht nur eine Zeile, sondern eine
ganze Reihe von Spalten macht…? Und wenn ja, kann ich dann
auch so machen, dass er einen Wert aus einer bestimmten, fixen
Zelle holt also quasi ein $A$8?

Hi Munich,
habe den Code geändert für deine Tabelle. Kopier wie bechrieben den nachfolgenden Code.
Das Makro sorgt automatisch dafür dass bei Eingaben in Spalten A,B oder C immer gleich der Hyperlink in D angepasst wird, egal in welcher Zeile du was änderst.
A8 ist ungünstig da es im überwachten Bereich liegt, nimm lieber eine Zelle in Spalte E oder größer, z.B. F8, F8 entspricht Cells(8,6) [Syntax von Cells ist Cells(Zeile,Spalte)].
Gib also in F8 etwas ein und schau was passiert.
Gruß
Reinhard

Private Sub Worksheet\_Change(ByVal Target As Range)
If Target.Column \> 3 And Target.Address(0, 0) "F8" Then Exit Sub
r = Target.Row
If Target.Address(0, 0) = "F8" Then
 For n = 1 To Range("A65536").End(xlUp).Row
 Cells(n, 1) = Cells(n, 1)
 Next n
 Exit Sub
End If
If Cells(r, 1).Value & Cells(8, 6).Value & Cells(r, 3) "" Then
 ActiveSheet.Hyperlinks.Add Anchor:=Cells(r, 4), Address:="http://www." & \_
 Cells(r, 1) & "?" & Cells(8, 6) & "=" & Cells(r, 3)
Else
 Cells(r, 4) = ""
End If
End Sub

ich glaub ich bin zu doof
erst mal vielen Dank für Deine Mühen, aber wie mache ich das nun, dass es funktioniert?
Wenn ich ein Makro erstelle und dann im „Editor“ Deinen Code einfüge sehe ich es nicht mehr als Makro und er erstellt auch keinen Link, leider…

lasse ich das in der klammer weg (ByVal Target as Range) dann sehe ich es zwar wieder als Makro, aber es macht mir nen Fehler beim ausführen…

Ist auch irgendwie klar, weil er dann eben das objekt vermisst…

A8 ist ungünstig da es im überwachten Bereich liegt, nimm
lieber eine Zelle in Spalte E oder größer, z.B. F8, F8
entspricht Cells(8,6) [Syntax von Cells ist
Cells(Zeile,Spalte)].

ok, das ist kein Problem… aber erst mal müsste es funktionieren :wink:
Wo mach ich denn einen Fehler?

nee :smile:
Hi Munich,
es gibt mehrere Wege, nochmal der eine den ich dir beschrieb:

Mit rechter Maustaste in deinem Tabellenblatt unten auf den Namen desTabellenblattes klicken, dann mit linker Maustaste auf"Code anzeigen". F7 drücken.

Alternativ:
In Excel Alt+F11 betätigen, dann im VB-Editor links auf „Tabelle1(Tabelle1)“ doppelklicken. F7 drücken.
(Ggfs. anstatt Tabelle1 den Namen den du vergeben hast auswählen)

In beiden Fällen muss dann im VB-Editor links „Tabelle1(Tabelle1)“ farblich unterlegt sein.

Jetzt den kompletten Code dorthinein reinkopieren. Fertig
Gruß
Reinhard

erst mal vielen Dank für Deine Mühen, aber wie mache ich das
nun, dass es funktioniert?
Wenn ich ein Makro erstelle und dann im „Editor“ Deinen Code
einfüge sehe ich es nicht mehr als Makro und er erstellt auch
keinen Link, leider…

lasse ich das in der klammer weg (ByVal Target as Range) dann
sehe ich es zwar wieder als Makro, aber es macht mir nen
Fehler beim ausführen…

Ist auch irgendwie klar, weil er dann eben das objekt
vermisst…

A8 ist ungünstig da es im überwachten Bereich liegt, nimm
lieber eine Zelle in Spalte E oder größer, z.B. F8, F8
entspricht Cells(8,6) [Syntax von Cells ist
Cells(Zeile,Spalte)].

ok, das ist kein Problem… aber erst mal müsste es
funktionieren :wink:
Wo mach ich denn einen Fehler?

cool

)

Danke
jetzt klappts sogar… muss mir zwar zum Teil noch die Zellen richtig hinbiegen, aber ist auf jeden Fall praktisch sowas :smile:

das ist jetzt schon visual basic, oder?

Danke
jetzt klappts sogar… muss mir zwar zum Teil noch die Zellen
richtig hinbiegen, aber ist auf jeden Fall praktisch sowas :smile:
das ist jetzt schon visual basic, oder?

Hallo Munich,
ja, es ist Excel-VBA. Schau mal oben zum Thread von Julian da habe ich einene Link gepostet, da ist auch ein Grundlagenkurs zu Excel-VBA zum kostenlosen Download.
Ereignis-prozeduren wie Worksheet_Change sind da nicht erwähnt, aber, abgesehen von einigen Dingen sind sie auch nur SUB’s.
Um zu wissen weleche Ereignisse es so gibt, klicke wie oben beschrieben im VB-Editor auf „Tabelle1“ doppelt, dann dort wo in der Mitte „Allgemein“ steht, auf den Pfeil und wähle „Worksheet“ aus. dann rechts auf den Pfeil bei „Selection Change“. bei der Auswahl irgendeines Ereignisses wird es dann auch gleich in das Code fenster geschrieben:
z.B.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
Innerhalb der Sub kannst du dann Code einfügen zum Üben, z.B. das Ganze erweitern auf
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "Zelle: " & Target.Address & " Inhalt: " & Target.Value
End Sub
und beweg dich dann icn der Tabelle :smile:
Naja, war ja nur zum Üben *g
Übrigens Munich? = München? *weia* *sorry* am Samstag bin ich für Eintracht und gegen Lautern *hihi*
Naja, mit Ruhm bekleckert haben sich da im unteren Bereich kaum welche, aber als Lokalpatriot…
Gruß
Reinhard

1 „Gefällt mir“

:smile:))
nach bissl suchen hab ichs dann doch noch gefunden… Ist alles bissl kompliziert, aber es weckt das interesse noch mehr zu lernen *g*

Munich = München, ja aber nicht zwangsläufig (nur) Fussball… Wenn dann schlägt das Herz eh mehr rot und weniger blau - wenn dann rot/blau (Unterhaching) :wink: Die sind Sympathisch aber naja - nicht besonders erfolgreich leider…
Vielen Dank aber nochmal für die Geduld, auch wenn ich inzwischen schon mit dem fertig bin, was ich brauchte… Deine Version hat übrigens noch ne Schwäche, nämlich dass sie sich nicht aktualisiert wenn sich der Inhalt nochmal ändert :wink:
Naja ich habs dann mit Makro lösen können :smile:
thx