Hallo Leute,
ich habe eine globale Variable, in der ein systempfad hinterlegt ist. unter diesem ordner sind weitere daten gespeichert, auf die nur ein hyperlink verweist.
nun meine frage, sollte ich diese dateien und ordner verschieben, funktionieren diese links ja nicht mehr. allerdings ist dieser abgespeicherte pfad dynamisch und verweis wieder auf den neuen „lageplatz“ der dateien.
kann man das in dem hyperlink mit einbringen, dass er diesen pfad quasi als neuen quellpfad der dateien übernimmt ?
MfG Sebastian
Hi Sebastian,
was ist der Typ der Variablen, wie legst du den Wert fest?
Gruß
Reinhard
Hi Sebastian,
was ist der Typ der Variablen, wie legst du den Wert fest?
Gruß
Reinhard
Die variable ist ein ganz normaler public string, der in nem modul abgespeichert ist.
der string wird über ActiveWorkbook.FullName ausgelesen, um den dateinamen gekürzt und dann weiter verwendet, für andere variable.
Danke
Die variable ist ein ganz normaler public string, der in nem
modul abgespeichert ist.
der string wird über ActiveWorkbook.FullName ausgelesen, um
den dateinamen gekürzt und dann weiter verwendet, für andere
variable.
Hi Sebastian,
ich begreife immer noch nicht warum du dir den Stress machst aus .Fullnamen erst noch den fad herauszuschneiden, wenn dir doch .Path schon genau diesen Pfad liefert?
In dem Code wo du der Variablen einen Wert zuweist muss der nachfolgende Code mitrein.
With Worksheets("Tabelle1")
.Hyperlinks.Add Anchor:=.Range("a5"), \_
Address:=DeinePfadvariable & "\" & Dateiname.xls, \_
ScreenTip:="Lustige Datei", \_
TextToDisplay:=Dateiname.xls
End With
Gruß
Reinhard
okay, das erste hab ich geändert, war wohl etwas zu kompliziert gedacht.
so nun zu der anderen sache:
in diesem verzeichnis, in dem auch die excel datei liegt, liegen einige ordner, auf die aus den worksheets hyperlinks zeigen.
nun sollen diese aber auch noch funktionieren wenn ich die ordnerstruktur ändere, zb auf cd brenne. deswegen hab ich diesen pfad in einer variablen gespeichert und würde diese dann gerne hernehmen um die verknüpfungen ebenfalls anzupassen.
vielleicht ist es jetzt genau genug beschrieben und hilft dir meine gedanken zu verstehen 
MfG Sbeatsian
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi Sebastian,
du musst doch nur in meinem Code den Pfad zur Cd anzupassen usw., dann laufen lassen. Er ändert doch wie gewünscht die Hyperlinks.
Gruß
Reinhard
In dem Code wo du der Variablen einen Wert zuweist muss der
nachfolgende Code mitrein.
With Worksheets(„Tabelle1“)
.Hyperlinks.Add Anchor:=.Range(„a5“), _
Address:=DeinePfadvariable & „“ & Dateiname.xls, _
ScreenTip:=„Lustige Datei“, _
TextToDisplay:=Dateiname.xls
End With
Gruß
Reinhard
okay, das erste hab ich geändert, war wohl etwas zu
kompliziert gedacht.
so nun zu der anderen sache:
in diesem verzeichnis, in dem auch die excel datei liegt,
liegen einige ordner, auf die aus den worksheets hyperlinks
zeigen.
nun sollen diese aber auch noch funktionieren wenn ich die
ordnerstruktur ändere, zb auf cd brenne. deswegen hab ich
diesen pfad in einer variablen gespeichert und würde diese
dann gerne hernehmen um die verknüpfungen ebenfalls
anzupassen.
vielleicht ist es jetzt genau genug beschrieben und hilft dir
meine gedanken zu verstehen 
MfG Sbeatsian
In dem Code wo du der Variablen einen Wert zuweist muss der
nachfolgende Code mitrein.
With Worksheets(„Tabelle1“)
.Hyperlinks.Add Anchor:=.Range(„a5“), _
Address:=DeinePfadvariable & „“ & Dateiname.xls, _
ScreenTip:=„Lustige Datei“, _
TextToDisplay:=Dateiname.xls
End With
also sorry nochmal, ich versteh das jetzt echt nicht.
die sache is die, es befinden sich etwa80 links auf dieser seite mehreren seiten verteilt, ebenso werden ständig neue hinzugefügt.
muß ich das jetzt für jedes tabellenblatt, auf dem links enthalten sind programmieren?
was hat das range zu bedeuten?
adress = die adresse der datei oder des hyperlinks?
die anderen zwei sachen sind ja wohl nicht unbedingt nötig, oder?
sorry, aber weißt ja, es ist freitag, vielleicht kann ich einfach nicht mehr denken.
MfG Sebastian
Danke.
also sorry nochmal, ich versteh das jetzt echt nicht.
die sache is die, es befinden sich etwa80 links auf dieser
seite mehreren seiten verteilt, ebenso werden ständig neue
hinzugefügt.
muß ich das jetzt für jedes tabellenblatt, auf dem links
enthalten sind programmieren?
Hi Sebastian,
habs geändert für alle Blätter und alle Hyperlinks.
Option Explicit
Sub ttt()
Dim h As Hyperlink, NeuerPfad As String, Dateiname As String, ws As Worksheet
NeuerPfad = "G:\" 'Pfad zum CDRom
For Each ws In Worksheets 'alle Blätter
For Each h In ws.Hyperlinks 'alle hyperlinks des jeweligen Blattes
Dateiname = Mid(h.Address, InStrRev(h.Address, "\") + 1)
h.Address = NeuerPfad & Dateiname ' Ziel des Hyperlinks
h.TextToDisplay = Dateiname ' Anzeige in der zelle
Next h
Next ws
End Sub
Gruß
Reinhard