29.10.2020, 13:32 (Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2020, 13:37 von Thomas1969.)
Danke, ich schaue mir die Datei mit Power Query an, das könnte auch sehr interessant sein.
Welchen Code kann ich noch nutzen, um am Ende nach der "Umwandlung der Zahlen in Prozentsätze" den Spaltennamen Steuerkennzeichen umzubennen in Steuersatz? Ich habe den Code
Code:
Sub Thomas_Müller()
Dim i As Long, Spalte As Long, Suche As Range Dim MWSt As Double
With Worksheets("UMSATZ")
Set Suche = .Cells.Find(What:="Steuerkennzeichen", LookAt:=xlWhole) If Suche Is Nothing Then MsgBox "Keine Daten gefunden! Bitte Daten einfügen und erneut versuchen!": Exit Sub Spalte = Suche.Column
For i = 2 To .Cells(Rows.Count, Spalte).End(xlUp).Row Select Case .Cells(i, Spalte).Value Case 76: MWSt = 0.19 Case 78: MWSt = 0.16 Case 55, 101: MWSt = 0.07 Case 19: MWSt = 0.07 Case 53: MWSt = 0.05 End Select .Cells(i, Spalte) = MWSt .Cells(i, Spalte).Style = "Percent" Next i End With
Wenn ich noch neue Fragen habe, poste ich hier rein. Wie gesagt, wir haben Not in der Firma, die meisten können ein wenig Formeln, das wars aber auch schon. VBA oder Makros kann keiner, obwohl das auch nicht sehr schwierig ist. Ich habe ausprobiert, aber leider bin ich nicht so gut. Danke für die wirklich tolle Hilfe.
Habe heute sämtliche Listen damit ausprobiert, funktioniert 1A.
Dim i As Long, Spalte As Long, Suche As Range Dim MWSt As Double
With Worksheets("UMSATZ")
Set Suche = .Cells.Find(What:="Steuerkennzeichen", LookAt:=xlWhole) If Suche Is Nothing Then MsgBox "Keine Daten gefunden!": Exit Sub Spalte = Suche.Column
For i = 2 To .Cells(Rows.Count, Spalte).End(xlUp).Row Select Case .Cells(i, Spalte).Value Case 76: MWSt = 0.19 Case 78: MWSt = 0.16 Case 55, 101: MWSt = 0.07 Case 53: MWSt = 0.05 Case E2: MWSt = 0# Case E8: MWSt = 0#
End Select .Cells(i, Spalte) = MWSt .Cells(i, Spalte).Style = "Percent" Next i End With
30.10.2020, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2020, 14:50 von Thomas1969.)
Meine Steuerkennzeichen sind nicht nur zahlen, teilweise buchstabenkombinationen oder buchstabe mit zahlen, kannst du mir das so verändern, dass es endgültig funktioniert?
Vielen dank. Schönes Wochenende! Irgendwie erkennt der Code nicht, dass es ein buchstabe mit zahl ist...
30.10.2020, 19:34 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2020, 19:34 von MisterBurns.)
Zitat:Wenn ich
Code:
Code:
Case "E2": MWSt = 0# Case "E8": MWSt = 0#
Dann läuft alles wie es sein soll!
Schön, du hast selbst die Lösung gefunden! E2 ist keine Zahl und alles was keine Zahl ist, muss ergo Text sein. Text muss in VBA immer in Hochkommata gesetzt werden, ansonsten wäre es eine Variable. Verwende im VBA Editor unter Extras - Optionen den Punkt "Variablendeklaration erforderlich". Dann passiert sowas nicht, dann kriegst du nämlich eine Fehlermeldung.
Außerdem würde ich noch den Fall abhandeln, dass keines deiner im Code genannten Steuerkennzeichen zutrifft, zB so:
Code:
Select Case .Cells(i, Spalte).Value Case 76: MWSt = 0.19 Case 78: MWSt = 0.16 ... Case Else: MWSt = 100000 End Select
100000 fällt in der Tabelle sofort auf und kann händisch korrigiert werden.
03.11.2020, 15:59 (Dieser Beitrag wurde zuletzt bearbeitet: 03.11.2020, 16:09 von Thomas1969.)
Hallo, vielen Dank für deine Hilfe, das funktioniert wunderbar, ich habe diese Ergängung gemacht!
Ich möchte dennoch 2 Dinge optimieren.
1. Wenn ich die Daten aus unserem Programm exportiere, bildet das Programm eine Summe (Siehe Datei WEITERES_BEISPIEL). Man sieht die gelben Zellen. Wenn ich nun das Makro ausführe, dann schreibt er einen Prozentsatz in de Gelbe Zelle rein, aber warum? - Lösche ich alles raus, dann funktioniert das? - Ist da etwas unsichtbares drinn?
2. Wie kann ich den Makro auf alle geöffneten Excel Dateien ausführen, damit ich die Daten nicht hin und her kopieren muss?
Vielen Dank, wünsche euch einen schönen Abend! Kann man diesen Code so verändern, dass er einfach die Zelle leer ist, wenn kein Steuerkennzeichen drinn ist:
Case Else: MWSt = 100000
Also damit nicht 100000 kommt, sondern einfach leerzeichen z. B. damit die Zelle leer bleibt.