Clever-Excel-Forum

Normale Version: Bestimmte Werte durch andere Werte ersetzen?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
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

   Cells.Replace What:="Steuerkennzeichen", Replacement:="Steuersatz", LookAt _
        :=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2

End Sub
Zitat:Ich habe den Code
Und was gefällt dir daran nicht?

Ginge noch mit
Code:
.Cells(Suche.Row, Spalte) = "Steuersatz"
Dein Code ist prima, das funktioniert sehr sehr gut, ich bin so zufrieden, dass du uns so einen gefallen getan hast. Spitze bist du!
Vielen Dank für die Blumen!
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.
Ich habe noch ein kleines Problem mit dem 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!": 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


   Cells.Replace What:="Steuerkennzeichen", Replacement:="Mehrwertsteuersatz", LookAt _
        :=xlWhole, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False _
        , ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2

End Sub



Bei dem Steuerkennzeichen Case E2 und E8 macht er 5 % draus, obwohl ich 0 möchte, was mache ich hier falsch?
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! Confused

Irgendwie erkennt der Code nicht, dass es ein buchstabe mit zahl ist...
Wenn ich 

Code:
      Case "E2": MWSt = 0#
      Case "E8": MWSt = 0#
           


Dann läuft alles wie es sein soll!
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.
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. 

Danke!
Seiten: 1 2 3