Hi GastFa !
Hast du einen besonderen Grund von der letzten Zeile bis Zeile16 abzufragen oder geht auch von 16 bis Ende ?
Sollen alle Zellen von F - B (B - F ?) leer sein oder nur eine davon ?
Hier mal ein kleines Beispiel, wie es gehen könnte :
Sub LeereSub LeereZeilenLöschen()
Application.Calculation = xlCalculationManual 'Vorsicht !!! Befehl steht erst ab Excel 2007 zur Verfügung
'- bei älterer Version bitte löschen !!! macht das Ganze aber
'bei vielen Zeilen das Ganze enorm schneller
For I = 26 To 16 Step -1 'Für 100 deine größte Zeile einfügen
'For I = 16 to 26 'alternativ!
A = "A" & I
Range(A).Select
ZelleInhalt = Range(A) 'Zelleninhalt von A(Zeile) sichern
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[1],RC[2],RC[3],RC[4],RC[5])" 'Hier wird die Summe aus B - F gebildet
If Range(A) = "" Then 'Wenn die Summe "" ist dann
B = I & ":" & I 'Hier wird die ganze Zeile markiert
Rows(B).Select
Selection.ClearContents 'und gelöscht
Else 'Mindestens eine Zelle war nicht leer
Range(A).Select
ActiveCell = ZelleInhalt 'Zeile nicht leer = Zelleninhalt von A(Zeile) zurückschreiben
End If
Next I
Application.Calculation = xlCalculationAutomatic 'Vorsicht !!! Befehl steht erst ab Excel 2007 zur Verfügung
'- bei älterer Version bitte löschen !!! macht das Ganze aber
'bei vielen Zeilen das Ganze enorm schneller
End Sub
Wenn du die Zellen B - F einzeln bewerten willst, mußt du sie auch einzeln abfragen.
Geht dann am Besten mit einer zusätzlichen Schleife : "For J = 1 to 5" - usw.
Das Ganze mußt du jetzt nur noch in ein Modul kopieren und kannst dann das Ganze mit nem Benutzerdefinierten Button laufen lassen.
Ich hoffe geholfen zu haben
Gruß
Eisbär
|