Discussion:
Makro für Hyperlink einfügen
(zu alt für eine Antwort)
Youhoo.de
2006-06-07 13:32:21 UTC
Permalink
Hallo zusammen,

ich hoffe hier kann mir jemand helfen.

Ich bin auf der Suche nach einem Makro, das mir eine Art
"Datei-öffnen" Dialog aufmacht und die Datei die ich "öffne" soll als
Hyperlink in die aktive Zelle eingefügt werden!

Ich hab es mittlerweile mit sämtlichen (mir bekannten) Möglichkeiten
ausprobiert, aber leider komm ich keinen Schritt weiter... (Muss auch
dazu sagen, meine VBA Kenntnisse sind nicht die besten) Ebenfalls habe
ich es über den Makro Recorder probiert, nur leider wird dort keine
Ergebnis im Modul angezeigt.

Schon mal Vielen Dank im Voraus
Stephan Nawroth
2006-06-07 13:51:22 UTC
Permalink
Post by Youhoo.de
Hallo zusammen,
ich hoffe hier kann mir jemand helfen.
Ich bin auf der Suche nach einem Makro, das mir eine Art
"Datei-öffnen" Dialog aufmacht und die Datei die ich "öffne" soll als
Hyperlink in die aktive Zelle eingefügt werden!
Ich hab es mittlerweile mit sämtlichen (mir bekannten) Möglichkeiten
ausprobiert, aber leider komm ich keinen Schritt weiter... (Muss auch
dazu sagen, meine VBA Kenntnisse sind nicht die besten) Ebenfalls habe
ich es über den Makro Recorder probiert, nur leider wird dort keine
Ergebnis im Modul angezeigt.
Schon mal Vielen Dank im Voraus
Versuch einmal dieses:

Public Sub hyperlink()
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = False
.Show
End With
For Each SelFil In dlgOpen.SelectedItems
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=SelFil, TextToDisplay:=SelFil
Next
End Sub

Stephan
Youhoo.de
2006-06-08 09:12:30 UTC
Permalink
@ Stephan Nawroth: Vielen Dank für deinen VBA Code... Er funktioniert
Perfekt...
@ Sascha Hackmann: Es sollte aus VBA heraus funktionieren...

Vielen Dank für die Hilfe! Alleine wäre ich wahrscheinlich noch
verzweifelt :)

Gruß
Jörg

PS. Gibt es vielleicht noch eine Möglichkeit den Hyperlink in Excel
als UNC anzeigen zu lassen... Sprich anstatt Z:\Test\Test.xls als
\\Servername\Verzeichnisname\Test\Test.xls?

Wenn nicht, ist es auch nicht weiter schlimm...
Post by Stephan Nawroth
Post by Youhoo.de
Hallo zusammen,
ich hoffe hier kann mir jemand helfen.
Ich bin auf der Suche nach einem Makro, das mir eine Art
"Datei-öffnen" Dialog aufmacht und die Datei die ich "öffne" soll als
Hyperlink in die aktive Zelle eingefügt werden!
Ich hab es mittlerweile mit sämtlichen (mir bekannten) Möglichkeiten
ausprobiert, aber leider komm ich keinen Schritt weiter... (Muss auch
dazu sagen, meine VBA Kenntnisse sind nicht die besten) Ebenfalls habe
ich es über den Makro Recorder probiert, nur leider wird dort keine
Ergebnis im Modul angezeigt.
Schon mal Vielen Dank im Voraus
Public Sub hyperlink()
Dim dlgOpen As FileDialog
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = False
.Show
End With
For Each SelFil In dlgOpen.SelectedItems
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=SelFil, TextToDisplay:=SelFil
Next
End Sub
Stephan
Stephan Nawroth
2006-06-08 12:26:34 UTC
Permalink
Post by Youhoo.de
@ Stephan Nawroth: Vielen Dank für deinen VBA Code... Er funktioniert
Perfekt...
@ Sascha Hackmann: Es sollte aus VBA heraus funktionieren...
Vielen Dank für die Hilfe! Alleine wäre ich wahrscheinlich noch
verzweifelt :)
Gruß
Jörg
PS. Gibt es vielleicht noch eine Möglichkeit den Hyperlink in Excel
als UNC anzeigen zu lassen... Sprich anstatt Z:\Test\Test.xls als
\\Servername\Verzeichnisname\Test\Test.xls?
Wenn nicht, ist es auch nicht weiter schlimm...
Hallo Jörg,

Sascha hatte auch eine Lösung für VBA angegeben

Application.Dialogs(xlDialogInsertHyperlink).Show

diese lösung ist deutlich einfacher als meine. Ich konnte seinen Lösungsweg
leider nicht für dein Problem nutzen, aber meinen. Versuch einmal das

Private Declare Function WNetGetConnection Lib "mpr.dll" _
Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, _
ByVal lpszRemoteName As String, cbRemoteName As Long) As Long

Public Sub hyperlink()
Dim dlgOpen As FileDialog
Dim lwt As Byte
Dim HLUNCPath As String
Dim HLLength As Long
Dim HLNullPos As Integer
Dim HLResult As Long
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = False
.Show
End With
For Each SelFil In dlgOpen.SelectedItems
lwt = VBA.FileSystem.GetAttr(Left(SelFil, 2))
If lwt = 48 Then ' 48 ist ein Netzlaufwerk / 22 ein lokales
HLUNCPath = Space$(255)
HLLength = 255
HLResult = WNetGetConnection(Left(SelFil, 2), HLUNCPath, HLLength)
Select Case HLResult
Case 0
HLNullPos = InStr(HLUNCPath, Chr$(0))
UNCPathFromNetworkDrive = Left$(HLUNCPath, HLNullPos - 1)
End Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=UNCPathFromNetworkDrive & Mid(SelFil, 3, Len(SelFil)), _
TextToDisplay:=UNCPathFromNetworkDrive & Mid(SelFil, 3, _
Len(SelFil))
Else
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=SelFil, TextToDisplay:=SelFil
End If
Next
End Sub

Stephan
Youhoo.de
2006-06-12 07:30:36 UTC
Permalink
Hallo zusammen,

erstmal Sorry wegen meiner späten Antwort. Ich hatte die letzten paar
Tage leider mit Fieber zu kämpfen, deswegen hab ich hier nicht mehr
reingeschaut...

und um das Thema abzuschließen, die VBA Codes funktionieren perfekt.
Vielen Dank euch beiden.

Wäre ohne euch wahrscheinlich verzweifelt...

Gruß
Jörg
Post by Stephan Nawroth
Post by Youhoo.de
@ Stephan Nawroth: Vielen Dank für deinen VBA Code... Er funktioniert
Perfekt...
@ Sascha Hackmann: Es sollte aus VBA heraus funktionieren...
Vielen Dank für die Hilfe! Alleine wäre ich wahrscheinlich noch
verzweifelt :)
Gruß
Jörg
PS. Gibt es vielleicht noch eine Möglichkeit den Hyperlink in Excel
als UNC anzeigen zu lassen... Sprich anstatt Z:\Test\Test.xls als
\\Servername\Verzeichnisname\Test\Test.xls?
Wenn nicht, ist es auch nicht weiter schlimm...
Hallo Jörg,
Sascha hatte auch eine Lösung für VBA angegeben
Application.Dialogs(xlDialogInsertHyperlink).Show
diese lösung ist deutlich einfacher als meine. Ich konnte seinen Lösungsweg
leider nicht für dein Problem nutzen, aber meinen. Versuch einmal das
Private Declare Function WNetGetConnection Lib "mpr.dll" _
Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, _
ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
Public Sub hyperlink()
Dim dlgOpen As FileDialog
Dim lwt As Byte
Dim HLUNCPath As String
Dim HLLength As Long
Dim HLNullPos As Integer
Dim HLResult As Long
Set dlgOpen = Application.FileDialog(msoFileDialogOpen)
With dlgOpen
.AllowMultiSelect = False
.Show
End With
For Each SelFil In dlgOpen.SelectedItems
lwt = VBA.FileSystem.GetAttr(Left(SelFil, 2))
If lwt = 48 Then ' 48 ist ein Netzlaufwerk / 22 ein lokales
HLUNCPath = Space$(255)
HLLength = 255
HLResult = WNetGetConnection(Left(SelFil, 2), HLUNCPath, HLLength)
Select Case HLResult
Case 0
HLNullPos = InStr(HLUNCPath, Chr$(0))
UNCPathFromNetworkDrive = Left$(HLUNCPath, HLNullPos - 1)
End Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=UNCPathFromNetworkDrive & Mid(SelFil, 3, Len(SelFil)), _
TextToDisplay:=UNCPathFromNetworkDrive & Mid(SelFil, 3, _
Len(SelFil))
Else
ActiveSheet.Hyperlinks.Add Anchor:=Selection, _
Address:=SelFil, TextToDisplay:=SelFil
End If
Next
End Sub
Stephan
Sascha Hackmann
2006-06-07 14:21:03 UTC
Permalink
Post by Youhoo.de
Hallo zusammen,
ich hoffe hier kann mir jemand helfen.
Ich bin auf der Suche nach einem Makro, das mir eine Art
"Datei-öffnen" Dialog aufmacht und die Datei die ich "öffne" soll als
Hyperlink in die aktive Zelle eingefügt werden!
Ich hab es mittlerweile mit sämtlichen (mir bekannten) Möglichkeiten
ausprobiert, aber leider komm ich keinen Schritt weiter... (Muss auch
dazu sagen, meine VBA Kenntnisse sind nicht die besten) Ebenfalls habe
ich es über den Makro Recorder probiert, nur leider wird dort keine
Ergebnis im Modul angezeigt.
Schon mal Vielen Dank im Voraus
Soll der Hyperlink direkt aus Excel eigefügt werden, oder aus VBA heraus?
Direkt aus Excel: <STRG>+<k>
Via VBA: Application.Dialogs(xlDialogInsertHyperlink).Show
Lesen Sie weiter auf narkive:
Loading...