26.02.2024, 14:45
Hallo Zusammen
Ich habe einen kleinen VBA Code, der diverse Exceldateien in einem Ordner stapelartig Öffnen, aktualisieren und wieder speichern/schließen soll. Der Rest des Codes sind Zähler und Meldungen,... glaube nicht wichtig für das Problem.
Seitdem ich dieses Makro nutze wird in den zu bearbeitenden Dateien bei Geldbeträgen € anstatt des Buchhalterformates zB -100€ immer das benutzerdefinierte Format € (100) ausgegeben. Wenn ich das ändere ist spätestens das beim nächsten Makrostart wieder überschrieben.
Wenn ich die Datei händisch (ohne das Makro zu nutzen) öffne, speichere und schließe. Bleibt das Buchhalterformat erhalten! Wie es soll
Hat jmd eine Idee, woran das liegen könnte? (Ich habe die vermeintlich markanten Stellen im Code mal Fett hervorgehoben)
Anbei der Code:
Private Sub CommandButton1_Click()
Dim Pfad As String
Dim Datei As String
Dim Wb As Workbook
Dim AnzahlBearbeitet As Long
Dim Pfad1 As String
' Zeige die Anzahl der gefundenen Dateien in einer Zelle an
ThisWorkbook.Sheets("Tabelle1").Range("BY22").Value = 0
' Zeige eine Ja/Nein-Meldungsfeld an
Dim Antwort As Integer
Antwort = MsgBox("Möchten Sie das Makro ausführen?", vbQuestion + vbYesNo, "Bestätigung")
' Wenn der Benutzer "Ja" auswählt, führe den Rest des Codes aus
If Antwort = vbYes Then
' Den Pfad aus der Zelle BX3 holen
Pfad1 = ActiveSheet.Range("BX3").Value
' Passe den Pfad zum Ordner an, in dem sich deine Dateien befinden
Pfad = Pfad1
'Pfad = "C:\Users\PC\Desktop\Neuer Ordner (2)\Neue ExcelTool Variante TEST\"
' Schleife durch alle Dateien im Ordner
Datei = Dir(Pfad & "*.xlsb")
Do While Datei <> ""
Set Wb = Workbooks.Open(Pfad & Datei, UpdateLinks:=True)
' Speichere die Datei
Wb.Close SaveChanges:=True
Datei = Dir
' Erhöhe den Zähler für bearbeitete Dateien
AnzahlBearbeitet = AnzahlBearbeitet + 1
' Zeige die Anzahl der bearbeiteten Dateien in einer anderen Zelle an
ThisWorkbook.Sheets("Tabelle1").Range("BY22").Value = AnzahlBearbeitet
Loop
' Nachdem die Schleife beendet ist, färbe eine Zelle grün
ThisWorkbook.Sheets("Tabelle1").Range("BZ22:BZ23").Interior.ColorIndex = 4 ' 4 entspricht der Farbe Grün
End If
End Sub
Danke für den support
Grüße
Manfred
Ich habe einen kleinen VBA Code, der diverse Exceldateien in einem Ordner stapelartig Öffnen, aktualisieren und wieder speichern/schließen soll. Der Rest des Codes sind Zähler und Meldungen,... glaube nicht wichtig für das Problem.
Seitdem ich dieses Makro nutze wird in den zu bearbeitenden Dateien bei Geldbeträgen € anstatt des Buchhalterformates zB -100€ immer das benutzerdefinierte Format € (100) ausgegeben. Wenn ich das ändere ist spätestens das beim nächsten Makrostart wieder überschrieben.
Wenn ich die Datei händisch (ohne das Makro zu nutzen) öffne, speichere und schließe. Bleibt das Buchhalterformat erhalten! Wie es soll
Hat jmd eine Idee, woran das liegen könnte? (Ich habe die vermeintlich markanten Stellen im Code mal Fett hervorgehoben)
Anbei der Code:
Private Sub CommandButton1_Click()
Dim Pfad As String
Dim Datei As String
Dim Wb As Workbook
Dim AnzahlBearbeitet As Long
Dim Pfad1 As String
' Zeige die Anzahl der gefundenen Dateien in einer Zelle an
ThisWorkbook.Sheets("Tabelle1").Range("BY22").Value = 0
' Zeige eine Ja/Nein-Meldungsfeld an
Dim Antwort As Integer
Antwort = MsgBox("Möchten Sie das Makro ausführen?", vbQuestion + vbYesNo, "Bestätigung")
' Wenn der Benutzer "Ja" auswählt, führe den Rest des Codes aus
If Antwort = vbYes Then
' Den Pfad aus der Zelle BX3 holen
Pfad1 = ActiveSheet.Range("BX3").Value
' Passe den Pfad zum Ordner an, in dem sich deine Dateien befinden
Pfad = Pfad1
'Pfad = "C:\Users\PC\Desktop\Neuer Ordner (2)\Neue ExcelTool Variante TEST\"
' Schleife durch alle Dateien im Ordner
Datei = Dir(Pfad & "*.xlsb")
Do While Datei <> ""
Set Wb = Workbooks.Open(Pfad & Datei, UpdateLinks:=True)
' Speichere die Datei
Wb.Close SaveChanges:=True
Datei = Dir
' Erhöhe den Zähler für bearbeitete Dateien
AnzahlBearbeitet = AnzahlBearbeitet + 1
' Zeige die Anzahl der bearbeiteten Dateien in einer anderen Zelle an
ThisWorkbook.Sheets("Tabelle1").Range("BY22").Value = AnzahlBearbeitet
Loop
' Nachdem die Schleife beendet ist, färbe eine Zelle grün
ThisWorkbook.Sheets("Tabelle1").Range("BZ22:BZ23").Interior.ColorIndex = 4 ' 4 entspricht der Farbe Grün
End If
End Sub
Danke für den support
Grüße
Manfred