Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bestimmte Werte durch andere Werte ersetzen?
#21
Hallo Thomas,

In diesem Fall vielleicht MWSt als Variant deklarieren:

Code:
Sub SteuerkennzeichenZuMWSt()

'Ersetzt Steuerkennzeichen durch entsprechenden Mehrwertsteuersatz.
'Version Wann       Wer        Was
'1       02.11.2020 CEF        Erste Version
'2       03.11.2020 Thomas     ...

Dim i As Long, Spalte As Long, Suche As Range
Dim MWSt As Variant

With Worksheets("TEST")
   
    Set Suche = .Range("1:1").Find(What:="Steuerkennzeichen", LookAt:=xlWhole)
    If Suche Is Nothing Then
        Call MsgBox("Spaltentitel Steuerkennzeichen nicht gefunden!" & vbCrLf & _
                "Bitte Daten für Umsatz-Nachweis einfügen und" & vbCrLf & _
                "erneut versuchen!", vbOKOnly, "Fehler")
        Exit Sub
    End If
    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: MWSt = 0.07
            Case 53: MWSt = 0.05
            Case 12, 14, 94 To 97, "E2", "E8": MWSt = 0#
            Case Else: MWSt = ""
        End Select
        .Cells(i, Spalte) = MWSt
    Next i
    Suche.EntireColumn.Style = "Percent"
    Suche.Replace What:="Steuerkennzeichen", Replacement:="Mehrwertsteuer", LookAt:=xlWhole
   
End With
              
End Sub
Ich würde im ernsthaften Betrieb auch immer Versionen führen, damit jeder weiß, ob er die neueste Version einsetzt.
Antworten Top
#22
Okay, das habe ich verstanden und das funktioniert noch deutlich besser als zuvor. Wir haben uns hier so reingesteigert, dass es auf alle fälle jetzt deutlich sicherer funktioniert.

1 Problem besteht: 

Code:
With Worksheets("TEST")


Ich möchte, dass das Makro auf alle geöffneten Dateien ausgeführt wird, kann ich das machen?
Antworten Top
#23
Ich hoffe, Du hast alle zu ändernden Daten in derselben Excel Instanz:

Code:
Sub SteuerkennzeichenZuMWSt()

'Ersetzt Steuerkennzeichen durch entsprechenden Mehrwertsteuersatz.
'Version Wann       Wer        Was
'1       02.11.2020 CEF        Erste Version
'2       04.11.2020 Sulprobil  Für alle offenen Workbooks dieser Excel Instanz alle Sheets durchgehen.

Dim i As Long, Spalte As Long, Suche As Range
Dim MWSt As Variant
Dim wb As Workbook
Dim ws As Worksheet

For Each wb In Application.Workbooks
    For Each ws In wb.Sheets
       
        Set Suche = ws.Range("1:1").Find(What:="Steuerkennzeichen", LookAt:=xlWhole)
        If Suche Is Nothing Then
            Call MsgBox("Spaltentitel Steuerkennzeichen nicht gefunden!" & vbCrLf & _
                    "Bitte Daten für Umsatz-Nachweis einfügen und" & vbCrLf & _
                    "erneut versuchen!", vbOKOnly, "Fehler")
            Exit Sub
        End If
        Spalte = Suche.Column
      
        For i = 2 To ws.Cells(Rows.Count, Spalte).End(xlUp).Row
            Select Case ws.Cells(i, Spalte).Value
                Case 76: MWSt = 0.19
                Case 78: MWSt = 0.16
                Case 55: MWSt = 0.07
                Case 53: MWSt = 0.05
                Case 12, 14, 94 To 97, "E2", "E8": MWSt = 0#
                Case Else: MWSt = ""
            End Select
            ws.Cells(i, Spalte) = MWSt
        Next i
        Suche.EntireColumn.Style = "Percent"
        Suche.Replace What:="Steuerkennzeichen", Replacement:="Mehrwertsteuer", LookAt:=xlWhole
       
    Next ws
Next wb
              
End Sub
Antworten Top
#24
Thumbs Up 
Klasse, vielen Dank, das funktioniert einwandfrei. Sehr gut, ich nutze das Makro jeden Tag!
Antworten Top
#25
Hallo, 

ich habe noch die Range verändert, also 1:10, dann wandelt er den namen "steuerkennzeichen" nicht in "Mehrwertsteuersatz", um, was mache ich falsch?
Antworten Top
#26
Hallöchen,

- warum 1:10? Weißt Du nicht, in welcher Zeile Deine Überschrift steht?
- steuerkennzeichen und Steuerkennzeichen ist nicht dasselbe
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#27
Das war eine Rückkfrage, aber kann ich als erledigt betrachten, das funktioniert gut.

Wenn ich z. B. 11,5 Prozent habe, wandelt er das in 12 % um,
Antworten Top
#28
Funktioniert das auch so:

Suche.EntireColumn.NumberFormat = "0.00%"
Antworten Top
#29
Hallo,

mein VBA Code geht wunderbar. 

Könnt ihr mir helfen, damit es auf alle Tabellenblätter funktioniert und nicht nur im Tabellenblatt "Umsatz-nachweiss"

Code:
Sub TEST ()


Dim i As Long, Spalte As Long, Suche As Range
Dim MWSt As Variant

With Worksheets("UMSATZ-NACHWEIS")
   
    Set Suche = .Range("1:1").Find(What:="Steuerkennzeichen", LookAt:=xlWhole)
    If Suche Is Nothing Then
        Call MsgBox("Keine Daten für Umsatz-Nachweis gefunden!" & vbCrLf & _
                "Bitte Daten für Umsatz-Nachweis einfügen und" & vbCrLf & _
                "erneut versuchen!", vbOKOnly, "Fehler")
        Exit Sub
    End If
    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: MWSt = 0.07
            Case 53: MWSt = 0.05
            Case 74: MWSt = 0.107
            Case 24: MWSt = 0#
            Case 30: MWSt = 0#
            Case 99: MWSt = 0#
            Case 12, 14, 94 To 97, "E2", "E8": MWSt = 0#
            Case Else: MWSt = ""
           
        End Select
        .Cells(i, Spalte) = MWSt
    Next i
    Suche.EntireColumn.NumberFormat = "0.00%"
    Suche.Replace What:="Steuerkennzeichen", Replacement:="Mehrwertsteuer", LookAt:=xlWhole
   
End With
             
End Sub


Danke.
Antworten Top
#30
Hallöchen,

da wäre die Frage, wo.
Wenn Du das jeweils aktive Blatt nehmen willst dann ersetze
Worksheets("UMSATZ-NACHWEIS")
durch
ActiveSheet
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste