1.6k Aufrufe
Gefragt in Tabellenkalkulation von
Hey ich stehe gerade vor der Frage Excel zu sagen diese beiden befehle in einen zu packen kennt jemand die lösung wie man bei

If Cells(i, 4).Value = 0 And Not IsEmpty(Cells(i, 4))
für die stelle 4 einen zellbereich also z.b. von spalte 4 bis 10 angeben kann ???


Sub Dezember()
Dim i As Long

For i = Range("D1000").Row To 1 Step -1
If Cells(i, 4).Value = 0 And Not IsEmpty(Cells(i, 4)) Then
Rows(i).Hidden = True
Else
Rows(i).Hidden = False
End If
Next i

End Sub

Sub November()
Dim i As Long

For i = Range("E1000").Row To 1 Step -1
If Cells(i, 5).Value = 0 And Not IsEmpty(Cells(i, 5)) Then
Rows(i).Hidden = True
Else
Rows(i).Hidden = False
End If
Next i

End Sub

Sub Oktober()
Dim i As Long

For i = Range("F1000").Row To 1 Step -1
If Cells(i, 6).Value = 0 And Not IsEmpty(Cells(i, 6)) Then
Rows(i).Hidden = True
Else
Rows(i).Hidden = False
End If
Next i

End Sub




Danke^^

4 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

du kannst über mehrere Wege lösen:

Sub Beispiel1()
Dim zeile, spalte As Long

For zeile = 1000 To 1 Step -1
For spalte = 4 To 10
If Cells(zeile, spalte).Value = 0 And Not IsEmpty(Cells(zeile, spalte)) Then
Rows(zeile).Hidden = True
Else
Rows(zeile).Hidden = False
End If
Next spalte
Next zeile

End Sub

Sub Beispiel2()
Dim bereich, rng As Range

Set bereich = Range("d1:j1000")

For Each rng In bereich

If rng.Value = 0 And Not IsEmpty(rng) Then
rng.Rows.Hidden = True
Else
rng.Rows.Hidden = False
End If

Next rng

End Sub


Da dabei aber Zeilen ggf. mehrfach ein- und ausgeblendet werden, hier noch eine andere Lösung:

Sub Beispiel3()
Dim zeile, spalte As Long
Dim ab As String

For zeile = 1000 To 1 Step -1
For spalte = 4 To 10
If Cells(zeile, spalte).Value = 0 And Not IsEmpty(Cells(zeile, spalte)) Then
ab = "ja"
Else
ab = "nein"
End If
Next spalte

If ab = "ja" Then
Rows(zeile).Hidden = True
Else
Rows(zeile).Hidden = False
End If

Next zeile

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
wow danke für die schnelle Antwort
0 Punkte
Beantwortet von
hallo eine frage habe ich noch

ich glaube er blendet nicht nur die zeilen in denen der wert 0 steht aus

ist das so wenn ja gibt es eine möglichkeit das nur die zeilen ausgeblendet werden in denen von spalte 5 bis 15 überall der wert null steht mfg


das soll heissen wenn in einer spalte von 5 bis 15 ein wert größer null steht soll diese zeile nicht ausgeblendet werden
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

das hatte ich vergessen zu fragen :-(.

Probier mal den folgenden Code:

Sub Beispiel3()
Dim zeile, spalte As Long
Dim ab As String

For zeile = 1000 To 1 Step -1
For spalte = 4 To 10
If Cells(zeile, spalte).Value = 0 And Not IsEmpty(Cells(zeile, spalte)) Then
ab = "ja"
Else
ab = "nein"
Exit For
End If
Next spalte

If ab = "ja" Then
Rows(zeile).Hidden = True
Else
Rows(zeile).Hidden = False
End If

Next zeile

End Sub


Gruß

M.O.
...