Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1312to1316
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Stückliste erstellen

Stückliste erstellen
23.05.2013 07:31:13
BlueJay
Einen schönen guten morgen an alle,
ich wollte um eine kleine Unterstützung bitten und zwar erstelle ich mit der folgenden Excel Routine automatisch eine Liste der PDF Dateien die in einem definierten
Pfad liegen. Mein Wunsch währe es wenn in der liste der bei uns typische dateiname des pdfs (983.00806_01-00-Support Plate) so aufgespitted würde, das der numersiche Teil in Spalte A mit Hyperlink eingetragen würde und der Name in Spalte B lade würde. Ist dieses möglich, kann mir einer von euch da weiter helfen?
Sub Hyperlink()
'Excel Dateien mit HyperlinkAuflisten
Const PFAD As String = "C:\Import VBA"
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(PFAD)
Range("A2:A" & Rows.Count).ClearContents
For Each objFile In objFolder.Files
If Left(Right(objFile.Name, Len(objFile.Name) _
- InStrRev(objFile.Name, ".") + 1), 4) = ".pdf" Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0), Address:=objFile.Path, _
TextToDisplay:=objFile.Name
End If
Next 'objFile
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
Ich bedanke mich jetzt schon mal im voraus für alle Hilfe
Danke
MFG

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
aufsplitten ist das richtige Stichwort...
23.05.2013 07:43:55
Marc
Moin!
im VBA gibt es die Funktion SPLIT, die einen String in Stückchen hackt und in ein Array schreibt.
Für dich sähe das so aus:
split("983.00806_01-00-Support Plate","-S")(0)
Ergebnis: 983.00806_01-00
split("983.00806_01-00-Support Plate","0-")(1)
Ergebnis Support Plate
Erklärung: Split("text","Trennstelle") beinhaltet alle von einander getrennten Textteile
(0) ist der erste Teil
(1) ist der zweite Teil
(2) würde auf Fehler laufen, da es nur 2 Teile gibt.
Gruß, MCO

AW: aufsplitten ist das richtige Stichwort...
23.05.2013 09:51:38
BlueJay
Danke für die gute Erklärung,
ich habe das soweit umsetzen können - nun die Frage habe schon in der Hilfe unter Split geschaut aber nichts dazu gefunden, kann man den Namen auch nach einer bestimmten Zeichendfolge (Zahl) Splitten z.B nach dem 15 Zeichen?
Danke noch mal

Anzeige
AW: aufsplitten ist das richtige Stichwort...
23.05.2013 09:59:47
Marc
Hallo!
Du mußt für die Hilfe zu VBA-Funktionen in den VBA-Editor (F11).
Weiter Text-teilen funktionen sind left, right, mid. Sie entsprechen den Tabellenfunktionen LINKS, RECHTS und TEIL.
Für dich hieße das mid("983.00806_01-00-Support Plate",15,99)
Gruß, MCO

AW: aufsplitten ist das richtige Stichwort...
23.05.2013 10:03:27
UweD
Hallo
dann mit left und mid
Sub tt()
txt = "983.00806_01-00-Support Plate"
T1 = Left(txt, 15)
T2 = Mid(txt, 16) ' oder 17, wenn das - weg soll
MsgBox T1
MsgBox T2
End Sub
Gruß UweD

AW: aufsplitten ist das richtige Stichwort...
23.05.2013 10:15:53
BlueJay
Vielen Dank,
durch die super erklärung habe ich mal wieder richtig was gelernt.
hier der Code wie ich es jetzt aussieht
Sub Import4PartsList()
'Excel Dateien mit HyperlinkAuflisten
Const PFAD As String = "C:\Import VBA"
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(PFAD)
ActiveSheet.UsedRange.ClearContents
For Each objFile In objFolder.Files
If Left(Right(objFile.Name, Len(objFile.Name) _
- InStrRev(objFile.Name, ".") + 1), 4) = ".pdf" Then
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Rows.Count, 1) _
.End(xlUp).Offset(1, 0), Address:=objFile.Path, _
TextToDisplay:=Left(objFile.Name, 15)
ActiveSheet.Hyperlinks.Add Anchor:=Cells(Rows.Count, 2) _
.End(xlUp).Offset(1, 0), Address:=objFile.Path, _
TextToDisplay:=Mid(objFile.Name, 17)
End If
Next 'objFile
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
Danke noch mal
MFG

Anzeige
Tipp
23.05.2013 10:26:06
Rudi
Hallo,
  If Split(objFile.Name, ".")(UBound(Split(objFile.Name, "."))) = "pdf" Then

finde ich übersichtlicher als
  If Left(Right(objFile.Name, Len(objFile.Name) _
- InStrRev(objFile.Name, ".") + 1), 4) = ".pdf" Then
Gruß
Rudi

AW: Tipp
23.05.2013 17:59:25
Tino
Hallo,
warum nicht einfach?
If Right(objFile.Name, 4) = ".pdf" Then
oder
If LCase(Right(objFile.Name, 4)) = ".pdf" Then
Gruß Tino

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige