Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pfadangabe als Hyperlink deklarieren

Pfadangabe als Hyperlink deklarieren
07.07.2016 08:24:59
Rookie
Hallo liebe Leute,
ich habe einen Code (dank eurer Hilfe!) mit dem ich bestimmte Dateien suchen und auflisten kann:
Sub ordner_auflisten_neu()
Dim vntRet As Variant, strTMP As String
Dim pfad As String, ausgabe$()
Dim i&, p&
pfad = Master.Range("StrQOrdner").Value
If Len(pfad)  "\" Then pfad = pfad & "\"
strTMP = CreateObject("wscript.shell").exec("cmd /c Dir """ _
& pfad & Master.Range("StrDatFil") & """ /s /b").stdout.readall
Call OemToCharA(strTMP, strTMP)
vntRet = Split(strTMP, vbCrLf)
If UBound(vntRet) > 0 Then
D_Liste.Cells.ClearContents
ReDim ausgabe(1 To UBound(vntRet) + 1, 1 To 1)
For i = 0 To UBound(vntRet)
ausgabe(i + 1, 1) = vntRet(i)
Next
If ausgabe(UBound(ausgabe), 1) = "" Then p = 1 Else p = 0
D_Liste.Range("B1").Resize(UBound(ausgabe) - p, 1) = ausgabe
ReDim vntRet(1 To UBound(ausgabe) - p, 0)
For i = 1 To UBound(vntRet): vntRet(i, 0) = i: Next
D_Liste.Range("A1").Resize(UBound(ausgabe) - p, 1) = vntRet
Master.Range("AnzDatein").Value = UBound(ausgabe) - p
Else
Master.Range("AnzDatein").Value = 0
End If
End Sub

Funktioniert super!
Das Sahnehäubchen wäre noch, wenn die angezeigten Pfade jetzt auch noch als Hyperlink funktionieren würden.
Habs leider nicht hinbekommen. Habt ihr vielleicht eine Idee?
Mit besten Grüßen
Stefan

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pfadangabe als Hyperlink deklarieren
07.07.2016 12:30:22
baschti007
Lad mal eine Beispiel Datei hoch weil so kann ich das Makro nicht testen mit fehlt ja die hälfte =D
Gruß Basti

AW: Pfadangabe als Hyperlink deklarieren
07.07.2016 12:42:32
Rookie
Hallo Basti,
hier die Beispieldatei:
https://www.herber.de/bbs/user/106835.xlsm
Gruß
Stefan

Anzeige
AW: Pfadangabe als Hyperlink deklarieren
07.07.2016 13:48:09
baschti007

Sub ordner_auflisten_neu()
Dim vntRet As Variant, strTMP As String
Dim pfad As String, ausgabe$()
Dim i&, p&
pfad = Master.Range("StrQOrdner").Value
If Len(pfad)  "\" Then pfad = pfad & "\"
strTMP = CreateObject("wscript.shell").exec("cmd /c Dir """ _
& pfad & Master.Range("StrDatFil") & """ /s /b").stdout.readall
Call OemToCharA(strTMP, strTMP)
vntRet = Split(strTMP, vbCrLf)
If UBound(vntRet) > 0 Then
D_Liste.Cells.ClearContents
ReDim ausgabe(1 To UBound(vntRet) + 1, 1 To 1)
For i = 0 To UBound(vntRet)
ausgabe(i + 1, 1) = vntRet(i)
Next
If ausgabe(UBound(ausgabe), 1) = "" Then p = 1 Else p = 0
D_Liste.Range("B1").Resize(UBound(ausgabe) - p, 1) = ausgabe
ReDim vntRet(1 To UBound(ausgabe) - p, 0)
For i = 1 To UBound(vntRet): vntRet(i, 0) = i: Next
D_Liste.Range("A1").Resize(UBound(ausgabe) - p, 1) = vntRet
Master.Range("AnzDatein").Value = UBound(ausgabe) - p
Else
Master.Range("AnzDatein").Value = 0
End If
'-----Text wird in Hyperlink umgewandelt
Dim x As Long
For x = 1 To i - 1
With D_Liste
.Hyperlinks.Add Anchor:=.Range("B" & x), Address:=.Range("B" & x).Value, ScreenTip:=.Range("B"  _
& x).Value, TextToDisplay:=Right(.Range("B" & x).Value, InStr(1, StrReverse(.Range("B" & x).Value), "\") - 1)
End With
Next x
'-----Text wird in Hyperlink umgewandelt
End Sub

Guck mal ob das so reicht ?

Anzeige
AW: Pfadangabe als Hyperlink deklarieren
07.07.2016 13:57:57
UweD
Hallo
hab es eingebaut...
Sub ordner_auflisten_neu()
  
  Dim vntRet As Variant, strTMP As String
  Dim pfad As String, ausgabe$()
  Dim i&, p&
  Dim Rng As Range, Zelle
  pfad = Master.Range("StrQOrdner").Value
  If Len(pfad) < 5 Then MsgBox "Kein Pfad gewählt": Exit Sub
  
  If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
  
  strTMP = CreateObject("wscript.shell").exec("cmd /c Dir """ _
     & pfad & Master.Range("StrDatFil") & """ /s /b").stdout.readall
  Call OemToCharA(strTMP, strTMP)
  vntRet = Split(strTMP, vbCrLf)
  
  If Ubound(vntRet) > 0 Then
    D_Liste.Cells.ClearContents
    Redim ausgabe(1 To Ubound(vntRet) + 1, 1 To 1)
    For i = 0 To Ubound(vntRet)
      ausgabe(i + 1, 1) = vntRet(i)
    Next
    If ausgabe(Ubound(ausgabe), 1) = "" Then p = 1 Else p = 0
    Set Rng = D_Liste.Range("B1").Resize(Ubound(ausgabe) - p, 1)
    Rng = ausgabe
    '---als Hyperlink 
    Rng.Hyperlinks.Delete
    For Each Zelle In Rng
        Zelle.Hyperlinks.Add Anchor:=Zelle, Address:=Zelle.Value _
        , TextToDisplay:=Zelle.Value
    Next
    '--- 
    Redim vntRet(1 To Ubound(ausgabe) - p, 0)
    For i = 1 To Ubound(vntRet): vntRet(i, 0) = i: Next
    D_Liste.Range("A1").Resize(Ubound(ausgabe) - p, 1) = vntRet
    Master.Range("AnzDatein").Value = Ubound(ausgabe) - p
   Else
    Master.Range("AnzDatein").Value = 0
  End If
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Gruß UweD

Anzeige
AW: Pfadangabe als Hyperlink deklarieren
07.07.2016 15:43:27
Rookie
Vielen vielen Dank! Funktioniert wunderbar!
Es ist echt beneidenswert, dass Ihr VBA so gut versteht!
Herzlichen Dank nochmal!
Gruß
Stefan

AW: gern geschehen owt
07.07.2016 15:58:07
UweD
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige