Betrifft: Dateien aus Unterordner öffnen
von: Klaus
Betrifft: AW: CMD>dir /s
von: 1713985.html
Geschrieben am: 19.09.2019 20:27:54
Hallo,
teste mal, ob
cmd:>dir /s c:\user\D\Documents\test\*.xls?
alle benötigten Dateien anzeigt. Falls ja, geht das auch direkt aus VBA.
Betrifft: AW: CMD>dir /s
von: 1713990.html
Geschrieben am: 19.09.2019 20:39:11
Hallo Fennek,
bekomme leider einen Syntaxfehler.
Das
>
nach dem
cmd:
wird mir markiert.
Betrifft: AW: VBA mit CMD>dir /s
von: 1713994.html
Private Declare Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As _
String) As Long
Public Function F_ASC_ANS(ByVal Text As String) As String
OemToCharA Text, Text
F_ASC_ANS = Text
End Function
Sub M_snb_dir()
Dim s$, a, d
' hier mit Schalter /s für Unterverzeichnisse
s = ASCIItoANSI(CreateObject("wscript.shell"). _
exec("cmd /c dir ""c:\users\d\Documents\Test\*.xls*"" /s/b/od") _
.stdout.readall)
a = Split(s, vbCrLf)
Debug.Print UBound(a) ' bei -1 war der String leer
For Each d In a
Debug.Print d
Next d
End Sub
mfg
Betrifft: AW: VBA mit CMD>dir /s
von: 1714000.html
Private Declare Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As _
_
String) As Long
Betrifft: AW: alles in eine Zeile
von: 1714001.html
Geschrieben am: 19.09.2019 21:51:11
lösche den "_",damit alles in einer Zeile steht
Betrifft: AW: Dateien aus Unterordner öffnen
von: 1713997.html
Sub FileSearch()
Dim strDir As String, objFSO As Object, objDir As Object
Set objFSO = CreateObject("scripting.filesystemobject")
strDir = "C:\Users\mina\Testordner\" 'Ordner anpassen
Set objDir = objFSO.GetFolder(strDir)
Dateienausgeben objDir
Set objDir = Nothing: Set objFSO = Nothing
End Sub
Sub Dateienausgeben(ByVal Ordner As Object)
Dim DatOrd As Variant, Datei As Object
For Each Datei In Ordner.Files 'Ordner
Debug.Print Datei.Name 'Dateiname im Direktfenster ausgeben
Next
For Each DatOrd In Ordner.SubFolders 'Unterordner
For Each Datei In DatOrd.Files
Debug.Print Datei.Name 'Dateiname im Direktfenster ausgeben
Next
Next
End Sub
Betrifft: AW: Dateien aus Unterordner öffnen
von: 1713999.html
Geschrieben am: 19.09.2019 21:43:14
Hi Piet,
habe den Code angepasst, bzw genauer gesagt eigentlich nur den richtigen Pfad eingefügt.
Läuft alles durch, spuckt mir allerdings gar nichts aus der Code.
mfg
Klaus
Betrifft: AW: Dateien aus Unterordner öffnen
von: 1714008.html
Betrifft: AW: Dateien aus Unterordner öffnen
von: 1714010.html
Betrifft: AW: FSO
von: 1714027.html
Betrifft: AW: FSO
von: 1714030.html
Betrifft: AW: Dateien aus Unterordner öffnen
von: 1714040.html
Geschrieben am: 20.09.2019 09:47:29
Hallo Klaus,
teste mal:
Option Explicit
Public Sub Beispiel()
Const FOLDER_PATH As String = "C:\Users\D\Documents\Test\" 'Anpassen
Dim astrFolders() As String, strFilename As String
Dim ialngFolders As Long
Dim objWorkbook As Workbook
astrFolders = GetFolders(FOLDER_PATH)
Application.ScreenUpdating = False
For ialngFolders = LBound(astrFolders) To UBound(astrFolders)
strFilename = Dir$(astrFolders(ialngFolders) & "*.xlsm")
Do Until strFilename = vbNullString
Set objWorkbook = Workbooks.Open(Filename:=astrFolders(ialngFolders) & strFilename)
Call Application.Run(Macro:=objWorkbook.Name & "!aktualisieren")
Call objWorkbook.Close(SaveChanges:=True)
strFilename = Dir$
Loop
Next
Application.ScreenUpdating = True
Set objWorkbook = Nothing
End Sub
Private Function GetFolders(ByVal pvstrPath As String) As String()
Dim astrFolders() As String
Dim strFolder As String, strPath As String
Dim ialngIndex1 As Long, ialngIndex2 As Long
Redim Preserve astrFolders(ialngIndex1)
astrFolders(ialngIndex1) = pvstrPath
ialngIndex1 = 1
ialngIndex2 = 1
strPath = pvstrPath
Do
strFolder = Dir$(PathName:=strPath & "*", Attributes:=vbDirectory)
Do Until strFolder = vbNullString
If strFolder <> "." And strFolder <> ".." Then
If GetAttr(PathName:=strPath & strFolder) And vbDirectory Then
Redim Preserve astrFolders(0 To ialngIndex1)
astrFolders(ialngIndex1) = strPath & strFolder & "\"
ialngIndex1 = ialngIndex1 + 1
End If
End If
strFolder = Dir$
Loop
If ialngIndex1 = ialngIndex2 Then Exit Do
strPath = astrFolders(ialngIndex2)
ialngIndex2 = ialngIndex2 + 1
Loop
GetFolders = astrFolders
End Function