Hallo zusammen,
ich habe leider nur sehr minimalistische Kenntnisse bei der Programmierung mit VB und brauche dringend ein Lösung zu folgendem Problem:
In einem Ordner ( z.B. Dokumente ) befinden sich lauter doc-Dateien, welche in ihrer Bezeichnung eine "fortlaufende Nummer" haben ( z.B. xxxx-0001-xxxx-xxxxxx.doc ). Diese befindet sich wie im Beispiel zu sehen ab der 6ten Stelle ( Bindestrich mitgezählt ) und umfasst max. 4 Stellen.
In einem weiteren Ordner ( z.B. Formulare ) befinden sich nun pdf-Dateien welche nur mit dieser "fortlaufenden Nummer" gekennzeichnet sind ( z.B. 0001.pdf ).
Ich möchte nun, dass Excel die Bezeichnung der doc-Dateien nimmt und die entsprechende pdf-Datei ( lt. fortlaufender Nummer ) mit dieser Bezeichnung überschreibt.
Beispiel:
XXXX-0001-XXXX-XXXXXX.doc
0001.pdf => XXXX-0001-XXXX-XXXXXX.pdf
Bis jetzt habe ich es nur geschafft den Ordnerinhalt in Excel einlesen zu lassen
Hier mein Makro:
Sub test()
On Error Resume Next
Application.ScreenUpdating = False
Dim strLookIn As String, lngi As Long, strFileName As String, strTemp As String
Dim objFso As Object, objFolder As Object, objSubFolder As Object, objFile As Object
strLookIn = InputBox("Bitte Pfad angeben", , "Q:\Q1-Intranet")
strFileName = "*.pdf"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.getFolder(strLookIn)
Sheets("Tabelle1").Columns(1).ClearContents
For Each objSubFolder In objFolder.SubFolders
lngi = lngi + 1
Sheets("Tabelle1").Cells(lngi, 1) = objFso.GetBaseName(objSubFolder)
Next
For Each objFile In objFolder.Files
strTemp = objFso.GetFileName(objFile)
If strTemp Like strFileName Then
lngi = lngi + 1
Sheets("Tabelle1").Cells(lngi, 1) = strTemp
End If
strTemp = vbNullString
Next
Set objFso = Nothing
Set objFolder = Nothing
Application.ScreenUpdating = True
End Sub
( Es ist natürlich nicht nötig mein bis jetzt erstelltes Makro beizubehalten! )
Es würde mich sehr freuen wenn mir jemand bei diesem Problem helfen könnte!
Mfg,
Georg
ich habe leider nur sehr minimalistische Kenntnisse bei der Programmierung mit VB und brauche dringend ein Lösung zu folgendem Problem:
In einem Ordner ( z.B. Dokumente ) befinden sich lauter doc-Dateien, welche in ihrer Bezeichnung eine "fortlaufende Nummer" haben ( z.B. xxxx-0001-xxxx-xxxxxx.doc ). Diese befindet sich wie im Beispiel zu sehen ab der 6ten Stelle ( Bindestrich mitgezählt ) und umfasst max. 4 Stellen.
In einem weiteren Ordner ( z.B. Formulare ) befinden sich nun pdf-Dateien welche nur mit dieser "fortlaufenden Nummer" gekennzeichnet sind ( z.B. 0001.pdf ).
Ich möchte nun, dass Excel die Bezeichnung der doc-Dateien nimmt und die entsprechende pdf-Datei ( lt. fortlaufender Nummer ) mit dieser Bezeichnung überschreibt.
Beispiel:
XXXX-0001-XXXX-XXXXXX.doc
0001.pdf => XXXX-0001-XXXX-XXXXXX.pdf
Bis jetzt habe ich es nur geschafft den Ordnerinhalt in Excel einlesen zu lassen

Hier mein Makro:
Sub test()
On Error Resume Next
Application.ScreenUpdating = False
Dim strLookIn As String, lngi As Long, strFileName As String, strTemp As String
Dim objFso As Object, objFolder As Object, objSubFolder As Object, objFile As Object
strLookIn = InputBox("Bitte Pfad angeben", , "Q:\Q1-Intranet")
strFileName = "*.pdf"
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.getFolder(strLookIn)
Sheets("Tabelle1").Columns(1).ClearContents
For Each objSubFolder In objFolder.SubFolders
lngi = lngi + 1
Sheets("Tabelle1").Cells(lngi, 1) = objFso.GetBaseName(objSubFolder)
Next
For Each objFile In objFolder.Files
strTemp = objFso.GetFileName(objFile)
If strTemp Like strFileName Then
lngi = lngi + 1
Sheets("Tabelle1").Cells(lngi, 1) = strTemp
End If
strTemp = vbNullString
Next
Set objFso = Nothing
Set objFolder = Nothing
Application.ScreenUpdating = True
End Sub
( Es ist natürlich nicht nötig mein bis jetzt erstelltes Makro beizubehalten! )
Es würde mich sehr freuen wenn mir jemand bei diesem Problem helfen könnte!
Mfg,
Georg