Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Vielleicht CountA?

Vielleicht CountA?
08.11.2004 21:07:05
Fritz
Hallo, liebe Leute.
Um zu üben bastele ich an einem Zimmerbelegunsplan. In eine Textbox wird das Anfangsdatum geschrieben, in eine zweite das Enddatum. Ich bin ohne select :-)) soweit gekommen, dass beides wohl gefunden wird. Nun möchte ich wissen, ob zwischen "Anfang" und "Ende" in Spalte 2, 3 oder 4 eine oder mehrer Zellen belegt sind. Hier weiß ich nicht weiter. Mit ohne select kann ich nämlich noch nicht :-(
Hier mein code, soweit ich ihn habe. Die Frage steht noch mal in der MsgBox.
Wäre nett, wenn ich einen kleinen oder größeren Anschubser von Euch bekäme.

Sub Suchen()
Dim Datum1 As Date, Datum2 As Date, Anfang As Boolean
Dim Ende As Boolean, Zeile As Long, wks As Worksheet
Set wks = Sheets("Belegung")
Datum1 = CDate(frmMaske.txtvon.Value)
Datum2 = CDate(frmMaske.txtbis.Value)
For Zeile = 2 To 366
If Cells(Zeile, 1).Value = Datum1 Then
Anfang = True
Exit For
End If
Next Zeile
For Zeile = 2 To 366
If Cells(Zeile, 1).Value = Datum2 Then
Ende = True
Exit For
End If
Next Zeile
If Anfang And Ende Then
MsgBox "Anfang und Ende gefunden. Prima." & Chr(13) & _
"Wie erfahre ich aber nun, ob zwischen Anfang und Ende" & Chr(13) & _
"ein Wert in Spalte 1 steht?"
End If
End Sub

Mit Find habe ich es auch schon probiert. Geht auch. Aber am Ende habe ich dann wieder dasselbe Problem.
Danke,
Grüße, Fritz

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vielleicht CountA?
08.11.2004 21:20:32
Josef
Hallo Fritz!
Vieleicht so!

Sub Suchen()
Dim Datum1 As Date, Datum2 As Date, Anfang As Long
Dim Ende As Long, Zeile As Long, wks As Worksheet
Dim str As String
Set wks = Sheets("Belegung")
Datum1 = CDate(frmMaske.txtvon.Value)
Datum2 = CDate(frmMaske.txtbis.Value)
For Zeile = 2 To 366
If Cells(Zeile, 1).Value = Datum1 Then
Anfang = Zeile
Exit For
End If
Next Zeile
For Zeile = 2 To 366
If Cells(Zeile, 1).Value = Datum2 Then
Ende = Zeile
Exit For
End If
Next Zeile
If Anfang <> Ende Then
For Zeile = Anfang To Ende
If Cells(Zeile, 1) = "" Then str = str & Cells(Zeile, 1).Address & "; "
Next
If str <> "" Then
MsgBox "Zwischen " & Datum1 & " und " & Datum2 & vbLf & "sind noch Zeilen Frei!" & vbLf & _
"(" & Left(str, Len(str) - 2) & ")"
Else
MsgBox "Keine freien Zeilen"
End If
End If
End Sub

Gruß Sepp
Anzeige
Nein, aber....
Ramses
Hallo Fritz
sieht schon nicht schlecht aus :-)
Hier noch eine kleinere Optimierung

Sub Suchen()
Dim Datum1 As Date, Datum2 As Date
Dim wks As Worksheet
Dim fStart As Range, fEnde As Range
Dim i As Integer, fCounter As Integer
Set wks = Sheets("Belegung")
fCounter = 0
Datum1 = CDate(frmMaske.txtVon.Value)
Datum2 = CDate(frmMaske.txtBis.Value)
Set fStart = wks.Range("A2:A366").Find(what:=Datum1, LookIn:=xlValues)
'Set rng = wks.Cells.Find(what:=sFind, _
LookAt:=xlPart, LookIn:=xlFormulas)
Set fEnde = wks.Range("A2:A366").Find(what:=Datum2, LookIn:=xlValues)
If Not fStart And fEnde Is Nothing Then
MsgBox "Anfang und Ende gefunden. Prima." & Chr(13) & _
"Nun die Info wieviel Termine dazwischen gefunden wurden ;-)"
End If
For i = 2 To 366
With wks
If .Cells(i, 1) > Datum1 And .Cells(i, 1) < Datum2 Then
fCounter = fCounter + 1
End If
End With
Next i
MsgBox "Es wurden " & fCounter & " Termine gefunden ;-)"
End Sub

Gruss Rainer
Anzeige
AW: Ihr Beiden seid wieder so gut zu mir, freu!
08.11.2004 21:50:34
Fritz
Hallo Rainer, hallo Joseph.
Da macht das Lernen richtig Spaß. Ich gehe auf die Knie und knie mich rein.
vielen Dank.
Fritz

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige