Bedingungen mit Schleife

Bild

Betrifft: Bedingungen mit Schleife
von: Smilas
Geschrieben am: 20.04.2005 11:21:10
Hallo zusammen,
ich habe ein "kleines" Problem, welches ich selber nicht lösen kann. Ich hoffe von euch kann mir jemand helfen. :-))
Spalte A besteht aus Kostenstellen 100,200,.... (vertikal geschrieben)
Spalte B bis M besteht aus Monaten (horizontal in Zeile 1 geschrieben).
D.h. die range B2 bis M100 besteht aus Werten.
Wie kann ich nun die Zeilen löschen (lassen), bei denen in jedem Monat (also Spalte B bis M) eine "0" steht??
Der Trick, eine Gesamtsumme aus den 12 Monaten zu bilden und dann nur diesen Wert bei "0" löschen zu lassen, funktioniert zwar, birgt aber die Gefahr falsche Zeilen zu löschen. (z.B. Monat Januar 50,00 Euro und Februar -50,00 Euro)
Wie kann ich nun eine Bedingung mit Schleife bauen, die 12 Werte in einer Spalte überprüft und dann die Zeile löscht?
Wäre große-mega Klasse, wenn mir da jemand einen Tipp geben könnten.

Bild

Betrifft: AW: Bedingungen mit Schleife
von: Mac4
Geschrieben am: 20.04.2005 11:25:29
Hi,
nimm doch statt der Summe die Funktion Zählenwenn mit Kriterium 0!
Marc
Bild

Betrifft: AW: Bedingungen mit Schleife
von: Smilas
Geschrieben am: 20.04.2005 11:29:17
Ich hätte vielleicht dazu sagen sollen, dass ich es gerne mit VBA gelöst haben möchte...
@Marc: Danke für die Antwort
Bild

Betrifft: AW: Bedingungen mit Schleife
von: Mac4
Geschrieben am: 20.04.2005 11:34:05
Hi,
hatte vermutet, dass das mit VBA gut klar wäre - sorry!
So könnte es aussehen (ungetestet):

Sub test()
Dim i
For i = 1 To [A65536].End(xlUp).Row
    If WorksheetFunction.CountIf(Range(Cells(i, 2), Cells(i, 13)), 0) = 12 Then
    Dein Makro
    End If
Next
End Sub

Marc
Bild

Betrifft: AW: Bedingungen mit Schleife
von: Smilas
Geschrieben am: 20.04.2005 12:12:00
Die Idee ist klasse!!
Leider funktioniert das aber noch nicht. Ich denke das Problem liegt darin, dass die Spalte, wo er suchen soll nicht angegeben ist.
Hast du da noch den Tipp für mich?
Bild

Betrifft: AW: Bedingungen mit Schleife
von: Mac4
Geschrieben am: 20.04.2005 12:18:03
Hi,
verstehe ich nicht!

- mit "For i = 1 To [A65536].End(xlUp).Row"
geht das Makro alle Zeilen durch bis zum letzten Eintrag in Spalte A.
- mit "If WorksheetFunction.CountIf(Range(Cells(i, 2), Cells(i, 13)), 0) = 12 Then" überprüft das Makro Zeile für Zeile, ob in den Spalten 2-12 (B-M) die Anzahl der "0" = 12 ist - in diesem Fall sollte Dein Löschmakro folgen
Somit sind die Spalten doch vorgegeben!?
Marc
Bild

Betrifft: AW: Bedingungen mit Schleife
von: Smilas
Geschrieben am: 20.04.2005 14:48:01
Sorry, war mein gedanklicher Fehler
Vielen Dank auf jeden Fall.
Wenn ich jetzt mein Makro dort einsetze, funktioniert es leider trotzdem nicht.
Ich habs jetzt ein klein wenig modifiziert und nun funktioniert es mit zwei 2 Mehrschritten.
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Bedingungen mit Schleife"