Oder über selbstgestrickte funktion:
Option Explicit
Sub Schaltfläche1_Klicken()
Dim rng As Range
Dim z As Long
For z = 1 To 1000 ' für suche bis zeile 1000 - ggf anpassen
If Cells(z, 1) <> "" Then 'Sucht nicht leere zeilen, in dem er prüft, ob spalte 1 leer oder nicht
a = Trim(Str(Cells(z, 5)))
If Trim(Str(Cells(z, 5))) = "68" Then
Cells(z, 1).EntireRow.Hidden = False ' blendet zeilen ein, wenn in "E" 68 drin
Else
Cells(z, 1).EntireRow.Hidden = True ' blendet zeilen aus, wenn in "E" nicht 68 drin
End If
End If
Next z
ActiveSheet.PrintOut 'druckt aus - ggf druckbereich festlegen
For z = 1 To 1000 ' für suche bis zeile 1000 - ggf anpassen
Cells(z, 1).EntireRow.Hidden = False: ' blendet alle zeilen ein
Next z
End Sub
Public Function PrüfSumme(ErgebnisSpalte As Long, SummierSpalte As Long, SuchMax As Long) As Variant
Application.Volatile
Dim sum, z, z2, w1, w2, ze, w0, zz
PrüfSumme = ""
ze = Range(Application.Caller.Address).Row
w1 = Cells(ze, ErgebnisSpalte)
zz = ze - 1: If ze = 1 Then zz = 1
w0 = Cells(zz, ErgebnisSpalte)
If VarType(w1) = vbBoolean And w1 And Not w0 Then
sum = Cells(ze, SummierSpalte)
For z = ze + 1 To ze + SuchMax
If Cells(z, ErgebnisSpalte) <> "" Then
w2 = Cells(z, ErgebnisSpalte)
If w2 Then
sum = sum + Cells(z, SummierSpalte)
Else
PrüfSumme = sum
Exit Function
End If
End If
Next z
End If
End Function
Aufruf:
=PrüfSumme(25;4;100)
------ 25 als Spalte mit Wahr/Falsch, 4 für Spalte mit Längen, 100 für max 100 Zeilen nach unten suchen, ob immer noch wahr
Einfach die Funktion in ein MODUL kopieren und du kannst sie in jeder Spalte einsetzen.
|