um mich zu entspannen, excele ich ein bißchen herum. Ich möchte meiner Kneipenwirtin einen Zimmerbelegungsplan basteln. Teile davon sind auch fertig. Mit dem folgenden Code wird gesucht, ob das Zimmer in einem bestimmten Zeitraum belegt ist und an welchen Tagen. Das klappt so weit. Jetzt müsste ich diesen Code für insgeamt 15 Zimmer schreiben. Um das zu vermeiden, wollte ich mal nachfragen, ob es da nicht eine elegantere Lösung gibt. Es wäre nett, wenn Ihr nicht nur antworten würdet :" Ja, gibt es!" :-)) , sondern mir vielleicht bißchen weiter helfen könntet. Liege ich z.B. einigermaßen richtig, wenn ich statt Cells(r, 1) oder so mit Activecell.Offset arbeiten würde und dann das Makro für jedes Zimmer in einer Schleife unterbrächte?
Danke für Eure Mühe.
Fritz
Sub Suchen1()
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, 2) = "" Then str = str & Cells(Zeile, 1).Value & Chr(13) 'Address & Chr(13)
Next
If str <> "" Then
frmMaske.Label1.Caption = Left(str, Len(str) - 1) & Chr(13)
Else
frmMaske.Label1.Caption = ""
End If
With frmMaske
If .Label1 = "" Then
.cmd1.Locked = True
.cmd1.BackColor = vbRed
Else
.cmd1.Locked = False
.cmd1.BackColor = vbYellow
End If
End With
End If
End Sub