Thema Datum  Von Nutzer Rating
Antwort
Rot Mit einem VBA Code den Hyperlink automaitsch setzen
17.09.2014 12:07:51 Christian
Solved

Ansicht des Beitrags:
Von:
Christian
Datum:
17.09.2014 12:07:51
Views:
1381
Rating: Antwort:
 Nein
Thema:
Mit einem VBA Code den Hyperlink automaitsch setzen
Hallo zusammen, ich habe dieses Makro geschrieben. Es bewirkt, dass der Hyperlink gesucht wird und in Spalte 10 (J) geschrieben wird. --------------------------------------------------- Public Sub setHyperlinkToPDF_xlph() ' sucht im Ordner und fügt Hyperlink ein *** Dim strFolderPath As String Dim strFile As String Dim strPdfFile As String Dim strPdfFilePath As String Dim colPdfFiles As Collection Dim strArtNr As String Dim lngRow As Long Dim FSO As Object strFolderPath = "O:\" ' Anpassen ***** Set colPdfFiles = New Collection ' Alle PDF-Dateinamen einlesen *** Set FSO = CreateObject("Scripting.FileSystemObject") Call GetSubFolders_Files(FSO, colPdfFiles, strFolderPath) Set FSO = Nothing ' ArtikelNrn durchlaufen und Hyperlinks setzen, hier mit Angabe des Pfades *** With ActiveSheet For lngRow = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row strArtNr = CStr(.Cells(lngRow, 1).Value) If Len(strArtNr) > 0 Then strPdfFilePath = getPdfFile(colPdfFiles, strArtNr) If Len(strPdfFilePath) > 0 Then .Hyperlinks.Add .Cells(lngRow, 10), strPdfFilePath, , strArtNr, strPdfFilePath ' Hier ist der Pfad *** .Cells(lngRow, 10).Font.Size = 9 ' Hier ist der Pfad *** End If End If Next End With Set colPdfFiles = Nothing End Sub Public Function getPdfFile(ByRef col As Collection, ByVal strArtNr As String) As String Dim varItem As Variant strArtNr = LCase$(strArtNr) For Each varItem In col If LCase$(varItem(0)) Like strArtNr & "*.pdf" Then getPdfFile = varItem(1) & "\" & varItem(0): Exit For End If Next End Function Public Sub GetSubFolders_Files(FSO, colFiles As Collection, strPath As String) Dim FO As Object, FU As Object, F As Object, Fi As Object Set FO = FSO.GetFolder(strPath) Set FU = FO.SubFolders On Error Resume Next For Each Fi In FO.Files If LCase$(Fi.Name) Like "*.pdf" Then ' Debug.Print Fi.Name, strPath colFiles.Add Array(Fi.Name, strPath) End If Next For Each F In FU Call GetSubFolders_Files(FSO, colFiles, F.Path) Next End Sub ---------------------------------------------------------------------- Meine Ordner in dem Laufwerk O:\ sind wie folgt beschriftet: Hauptordner: Kd.-Nr.(Spalte B) LEERZEICHEN Kunde Unterordner: M+H Art.Nr.(Spalte A) Datei: M+H Art.Nr.(Spalte A) LEERZEICHEN Bilder LEERZEICHEN blablabla Ich möchte jetzt aber folgendes, weil mein Code zu fehlerhaft ist: 1. Der Code muss so geändert werden, dass erst der richtige Hauptordner (gemäß Spalte B) gefunden wird und dann der richtige Unterordner (gemäß Spalte A) gefunden wird und dann das richtige PDF (gemäß Spalte A zzgl. dem Wort Bilder). Es gibt nämlich mehrere Kunden die dieselbe Artikelnummer bekommen. 2. Darüber hinaus brauche ich in einem weiteren Modul die Möglichkeit, dass nach PDF, WORD und HLW gesucht wird. Danke für eure Hilfe. Ich kann auch eine Musterdatei per Mail senden.

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Mit einem VBA Code den Hyperlink automaitsch setzen
17.09.2014 12:07:51 Christian
Solved