folgendes Problem:
ich habe ein Makro, das folgendes macht:
1) Anwender wählt den Quellordner aus
2) Anwender wählt den Zielordner aus
3) Alle Dateien im Quellordner werden aktualisiert (dabei wird auf ein Excel Addin zugegriffen) und wenn in gewissen Zellen Zielwerte überschritten werden, werden die Tabellenblätter als PDF exportiert.
Das Marko läuft seit Jahren problemlos, nun gibt es aber einen Änderungswunsch:
Derzeit werden die Daten aus dem Quellordner in alphabetischer Reihenfolge abgearbeitet, es wäre aber besser wenn die Dateien nach den Änderungsdatum (aufsteigend) abgearbeitet würden.
So schaut der VBA Code derzeit aus:
Public Sub Update_And_PrintPDF(control As IRibbonControl)
Dim strVerzeichnis As String
Dim ZielVerzeichnis As String
Dim druckVerzeichnis As String
Dim StrDatei As String
Dim StrTyp As String
Dim Dateiname As String
Dim count As Integer
Dim countprint As Integer
Dim Anzahl As Integer
Dim fso As New Scripting.FileSystemObject
'Dim name As String
StrTyp = "*.xls*"
count = 0
countprint = 0
Anzahl = 0
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
.AllowMultiSelect = False
.Title = "Bitte Quellordner auswählen"
.InitialFileName = ""
.InitialView = msoFileDialogViewThumbnail
.ButtonName = "Auswählen"
If .Show = -1 Then
strVerzeichnis = .SelectedItems(1)
Else: MsgBox "Kein Ordner ausgewählt! Prozess wird abgebrochen."
Exit Sub
End If
End With
With Application.FileDialog(msoFileDialogFolderPicker)
.InitialFileName = "C:\"
.AllowMultiSelect = False
.Title = "Bitte Zielordner auswählen"
.InitialFileName = ""
.InitialView = msoFileDialogViewThumbnail
.ButtonName = "Auswählen"
If .Show = -1 Then
ZielVerzeichnis = .SelectedItems(1)
Else: MsgBox "Kein Ordner ausgewählt! Prozess wird abgebrochen."
Exit Sub
End If
End With
strVerzeichnis = strVerzeichnis & "\"
StrDatei = Dir(strVerzeichnis & StrTyp, vbDirectory)
Do While StrDatei ""
Anzahl = Anzahl + 1
StrDatei = Dir
Loop
Dateiname = Dir(strVerzeichnis & StrTyp)
Do While Dateiname ""
count = count + 1
Application.StatusBar = "Update in progress. File " & count & " of " & Anzahl
Application.ScreenUpdating = False
Workbooks.Open Filename:=strVerzeichnis & Dateiname
Dim i As Integer
For i = 1 To Sheets.count Step 1
Sheets(i).Activate
Application.Run ("ImportWorksheet")
Next i
If Sheets("OPI_Ges").Cells(8, 2).Value = "EUR" Then
If Sheets("OPI_Ges").Cells(27, 9).Value > 40 And Sheets("OPI_Ges").Cells(27, 9). _
Value 100 Then
Sheets(Array("OPI_Ges", "KFR_KZ_Ges", "BIL_Ges")).Select
Sheets("OPI_Ges").Activate
countprint = countprint + 1
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ZielVerzeichnis & "\" _
_
_
_
& fso.GetBaseName(ActiveWorkbook.name), Quality:=xlQualityStandard, IgnorePrintAreas:=False, _
_
_
OpenAfterPublish:=False
End If
End If
Sheets(1).Activate
Excel.Application.DisplayAlerts = False
ActiveWorkbook.Close True
Dateiname = Dir
Loop
Application.StatusBar = "Update finished."
MsgBox count & " Excel files processed. " & countprint & " Excel files converted to PDF"
End Sub
Hat jemand eine Idee wie ich das hinbekommen, dass die Dateien eben in gewünschter Reihenfolge abgearbeitet werden?
Danke schonmal im Voraus!
Grüße
Martin