Automatisches Verschieben von Rechnungen in Excel
Schritt-für-Schritt-Anleitung
Um Rechnungen basierend auf bestimmten Wortteilen automatisch in verschiedene Tabellen zu verschieben, kannst du die folgenden VBA-Makros verwenden. Diese sind speziell für eine Excel-Rechnungsverwaltung konzipiert und ermöglichen das Verschieben von Rechnungen in die Tabellen „bezahlte Rechnung“ und „Mahnung“.
- Öffne deine Excel-Datei mit der Rechnungsverwaltung.
- Öffne den VBA-Editor mit
ALT + F11.
- Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (deine Datei)“ > Einfügen > Modul.
- Kopiere und füge den folgenden Code in das Modul ein:
Sub Move_bezahlte()
Dim Zeile As Long, ZeileZiel As Long
Dim wks_Q As Worksheet
Dim wks_Z As Worksheet
Set wks_Q = Worksheets("Rechnungsverwaltung")
Set wks_Z = Worksheets("bezahlte Rechnung")
With wks_Z
ZeileZiel = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
With wks_Q
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(Zeile, 10) = "bezahlt" Then
ZeileZiel = ZeileZiel + 1
.Range(.Cells(Zeile, 1), .Cells(Zeile, 11)).Copy Destination:=wks_Z.Cells(ZeileZiel, 1)
With wks_Z
With .Range(.Cells(ZeileZiel, 1), .Cells(ZeileZiel, 11))
'Formeln durch Werte ersetzen
.Value = .Value
End With
End With
.Range(.Cells(Zeile, 1), .Cells(Zeile, 7)).ClearContents
.Range(.Cells(Zeile, 9), .Cells(Zeile, 9)).ClearContents
End If
Next Zeile
End With
End Sub
Sub Move_Mahnung()
Dim Zeile As Long, ZeileZiel As Long
Dim wks_Q As Worksheet
Dim wks_Z As Worksheet
Set wks_Q = Worksheets("Rechnungsverwaltung")
Set wks_Z = Worksheets("Mahnung")
With wks_Z
ZeileZiel = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
With wks_Q
For Zeile = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
If .Cells(Zeile, 10) = "offen" And .Cells(Zeile, 11) = "Erinnerung schicken" Then
ZeileZiel = ZeileZiel + 1
.Range(.Cells(Zeile, 1), .Cells(Zeile, 11)).Copy Destination:=wks_Z.Cells(ZeileZiel, 1)
With wks_Z
With .Range(.Cells(ZeileZiel, 1), .Cells(ZeileZiel, 11))
'Formeln durch Werte ersetzen
.Value = .Value
End With
End With
.Range(.Cells(Zeile, 1), .Cells(Zeile, 7)).ClearContents
.Range(.Cells(Zeile, 9), .Cells(Zeile, 9)).ClearContents
End If
Next Zeile
End With
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Führe die Makros aus, indem du
ALT + F8 drückst und die gewünschten Makros auswählst.
Häufige Fehler und Lösungen
Alternative Methoden
Wenn du mit VBA nicht vertraut bist, kannst du auch die Filter- und Sortierfunktionen in Excel verwenden. Damit kannst du Daten manuell in die richtigen Tabellen verschieben. Alternativ kannst du auch Power Query nutzen, um Daten zu transformieren und zu laden.
Praktische Beispiele
- Beispiel 1: Du hast eine Rechnungstabelle mit dem Wortteil „bezahlt“ in Spalte J. Das Makro „Move_bezahlte“ verschiebt diese Rechnungen in die „bezahlte Rechnung“-Tabelle.
- Beispiel 2: Rechnungen mit dem Wortteil „Erinnerung schicken“ in Spalte K werden mit „Move_Mahnung“ in die Mahnungstabelle verschoben.
Tipps für Profis
- Verwende Variablen für die Spaltennummern, um den Code flexibler zu gestalten.
- Kommentiere den Code gut, damit du auch später nachvollziehen kannst, was jeder Schritt bewirken soll.
- Nutze die Möglichkeit, mehrere Bedingungen in den If-Anweisungen zu kombinieren, um spezifischere Anforderungen zu erfüllen.
FAQ: Häufige Fragen
1. Wie kann ich die Makros speichern?
Aktiviere die Makros in den Excel-Optionen und speichere die Datei im Format „Excel Macro-Enabled Workbook“ (.xlsm).
2. Was ist ein anderes Wort für verschieben in Excel?
In Excel wird oft das Wort „übertragen“ oder „kopieren“ verwendet, wenn es um das Verschieben von Daten in andere Tabellen geht.
3. Wie kann ich einen bestimmten Wortteil erkennen?
Du kannst die Funktionen SEARCH oder FIND in Excel verwenden, um nach bestimmten Wortteilen in Zellen zu suchen.