Offset
04.02.2004 01:39:08
Fritz Sanne
ich bastele an einem Terminkalender. In Spalte Ab A2 stehen die Datumsanzeigen, ab B2 die Wochentage =Wochentage(A2) als Zahl formatiert.
Die Spalten ab C1 haben jeweils die Uhrzeit in Stundenschritten ab 7:00.
Ich suche über eine Textbox ein Datum und möchte, nachdem es gefunden wurde, rechts die erste freie Zelle finden. Bis dahin klappt alles so, wie ich mir das vorstelle.
Also es steht z.B. in der Schnittmenge C65 (für 7:00) bereits der Name Müller, dann wird, wie es sein soll, D65 markiert und teilt mir über eine weitere Textbox mit, dass ich um 8:00 einen freien Termin hätte. Wenn aber mein Partner zu dieser Zeit keine Zeit hat, will ich über einen Button und ActiveCell.Offset(0, 1).Selection derselben Zeile den nächsten freien Termin schrittweise suchen. Dabei sollen belegte Zellen übersprungen werden.
Das versuchte ich zu lösen wie folgt:
Sub NächsteFreie()
If IsEmpty(ActiveCell.Offset(0, 1)) Then
ActiveCell.Offset(0, 1).select
Else
if Not IsEmpty(ActiveCell.Offset(0, 1)) Then ActiveCell.End(xlToRight).Offset(0, 1).Select
End If
End Sub
.Das Ganze funktioniert teilweise. Beim ersten Suchen wird das offset erledigt. Bewege ich dann die Eingabemarke jeweils eine Zelle weiter, wenn die rechte Nebenzelle leer ist, funktioniert das auch. Gerate ich aber nach einigen leeren Zellen an mehrere volle Zellen rechts neben der aktiven Zelle, wird die erste volle Zelle übersprungen und die zweite (auch volle) belegt und erst im zweiten Anlauf funktioniert ...End(xlToRight).Offset(0, 1).Select.
Kann man verstehen, was ich meine?
Für Hilfe wäre ich dankbar. Muss aber nicht mehr heute nacht sein - ich hab Urlaub.
Fritz