Discussion:
Do until Schleife von Zeile 1 bis 350
(zu alt für eine Antwort)
jr.zidane
2007-01-26 15:02:18 UTC
Permalink
Hallo zusammen,
ich habe folgende Schleife programmiert:

Sub ausblenden_ab_heute()
Range("H11").Select

Do Until IsEmpty(ActiveCell.Value)
If ActiveCell.Value >= Date Then
Selection.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

Mein Problem ist, dass der Schleifenausdurchlauf abgebrochen wird
sobald eine Zeile, btw. Zelle leer ist.
Das liegt natürlich an der Anweisung "IsEmpty(ActiveCell.Value)".
Könnt Ihr mir sagen, wie ich folgendes programmiere:
Do Until von Zeile 1 bis Zeile 350
If...

Schonmal viele Dank im Voraus!

Grüße
jr.zidane
Reiner Wolff
2007-01-26 15:21:18 UTC
Permalink
Moin Zidane,
Post by jr.zidane
Sub ausblenden_ab_heute()
Range("H11").Select
Do Until IsEmpty(ActiveCell.Value)
If ActiveCell.Value >= Date Then
Selection.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub
Mein Problem ist, dass der Schleifenausdurchlauf abgebrochen wird
sobald eine Zeile, btw. Zelle leer ist.
Das liegt natürlich an der Anweisung "IsEmpty(ActiveCell.Value)".
Do Until von Zeile 1 bis Zeile 350
If...
Sub ausblenden_ab_heute()
Dim i as Long
i = 1
Do Until i >= 350
If Cells(i, 8).Value >= Date Then
Rows(i).Hidden = True
End If
i = i + 1
Loop
End Sub

Einfacher wäre es allerdings mit einer For..Next-Schleife:
Sub ausblenden_ab_heute()
Dim i as Long
For i = 1 To 350
If Cells(i, 8).Value >= Date Then
Rows(i).Hidden = True
End If
Next i
End Sub
Post by jr.zidane
Schonmal viele Dank im Voraus!
Ich hoffe, es hilft.

Gruß aus Kiel
Reiner
--
Ich sei, gewähret mir die Bitte, in eurem Netzwerk der Dritte.
(frei nach Schiller)
Melanie Breden
2007-01-26 15:30:22 UTC
Permalink
Hallo,

"jr.zidane" <***@atmosmed.de> schrieb :
ich habe folgende Schleife programmiert:

Sub ausblenden_ab_heute()
Range("H11").Select

Do Until IsEmpty(ActiveCell.Value)
If ActiveCell.Value >= Date Then
Selection.EntireRow.Hidden = True
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
End Sub

Mein Problem ist, dass der Schleifenausdurchlauf abgebrochen wird
sobald eine Zeile, btw. Zelle leer ist.
Das liegt natürlich an der Anweisung "IsEmpty(ActiveCell.Value)".
Könnt Ihr mir sagen, wie ich folgendes programmiere:
Do Until von Zeile 1 bis Zeile 350
If...
<<<<

versuchs mal ohne zu selektieren:

Dim lngCell As Long

For lngCell = 11 To Range("H65536").End(xlUp).Row
Rows(lngCell).Hidden = Cells(lngCell, "H").Value >= Date
Next lngCell



Mit freundlichen Grüssen
Melanie Breden
--
- Microsoft MVP für Excel -
www.melanie-breden.de
Loading...