VBA Summewenn abhängig von Spalten
Schritt-für-Schritt-Anleitung
-
Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
-
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsx)“ > „Einfügen“ > „Modul“.
-
Kopiere den VBA-Code: Verwende den folgenden Code, um die Summe abhängig von den Werten in den Spalten G und H sowie den Bedingungen in den Spalten M bis Q zu berechnen:
Sub summieren()
Dim i As Long, s As Long
For i = 1 To 45
If Cells(i, 13) > 0 Or Cells(i, 14) > 0 Or Cells(i, 15) > 0 Or Cells(i, 16) > 0 Or Cells(i, 17) > 0 Then
s = s + Cells(i, 7).Value + Cells(i, 8).Value
End If
Next
MsgBox s
End Sub
-
Führe das Makro aus: Drücke F5, um das Makro auszuführen und die Summe in einer MsgBox anzuzeigen.
Häufige Fehler und Lösungen
Alternative Methoden
Du kannst auch die SUMMEWENN-Funktion in Excel verwenden, um eine ähnliche Berechnung durchzuführen, ohne VBA zu nutzen. Zum Beispiel:
=SUMMEWENN(M1:Q1;">0";G1:H1)
Diese Formel summiert die Werte in den Zellen G1 und H1, wenn eine der Zellen in M1 bis Q1 größer als 0 ist.
Praktische Beispiele
Hier ist ein einfaches Beispiel zur Veranschaulichung:
Angenommen, du hast folgende Werte in Excel:
| G |
H |
M |
N |
O |
P |
Q |
| 4 |
0 |
1 |
0 |
0 |
0 |
2 |
| 0 |
4 |
0 |
0 |
0 |
0 |
0 |
| 2 |
0 |
0 |
0 |
0 |
0 |
3 |
Beim Ausführen des summieren-Makros wird die MsgBox den Wert 6 anzeigen, da die Zeile 1 und 3 Werte größer als 0 in M bis Q haben.
Tipps für Profis
- Verwende
Option Explicit: Setze am Anfang deines Moduls Option Explicit, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.
- Testen mit Debugging: Füge
Debug.Print-Anweisungen hinzu, um während der Ausführung von Makros zu sehen, welche Werte verarbeitet werden.
- Verwende benannte Bereiche: Wenn du oft mit den gleichen Bereichen arbeitest, nutze benannte Bereiche in Excel, um deine Formeln und VBA-Code übersichtlicher zu gestalten.
FAQ: Häufige Fragen
1. Wie kann ich den Code anpassen, um eine andere Anzahl von Zeilen zu verarbeiten?
Du kannst die Zahl 45 in der For i = 1 To 45-Schleife anpassen, um die gewünschte Anzahl von Zeilen zu verarbeiten.
2. Kann ich die SUMMEWENN-Funktion auch in VBA verwenden?
Ja, du kannst WorksheetFunction.SumIf oder WorksheetFunction.SumIfs verwenden, um ähnliche Summierungen in VBA durchzuführen.
3. Was mache ich, wenn ich mehrere Bedingungen überprüfen möchte?
Verwende die SUMMEWENNS-Funktion in Excel oder erweitere deinen VBA-Code, um die zusätzlichen Bedingungen zu berücksichtigen.