19.02.2018, 11:52 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2018, 11:52 von Eiszwerg.)
Hallo zusammen,
ich würde gerne eine Parkplatzreservierung in Excel erstellen. Basis hierfür ist folgende Liste für jeden individuellen Parkplatz:
Spalte: C = #-Nr. D = Name E = Kennzeichen F = Anreise G = Abreise
Die Liste soll alle Reservierungen beinhalten, die im aktuellen Jahr vorgenommen werden. Um Doppelbelegungen zu vermeiden brauche eine Datenüberprüfung aller vorangegangenen Eingaben, die einen Fehler ausgibt, wenn der Parkplatz in dem Zeitraum bereits belegt ist. Gibt es hier eine Möglichkeit?
Die Belegungsdaten des Parkplatzes (#-Nr., Gastname, Kennzeichen, Anreise, Abreise) vom heutigen Tag sollen dann in einem anderen Exceltabellenblatt bzw. Excel-Datei ausgegeben werden.
in der TG-Liste hast Du doch mit der "#-Nr." Spalte eine Identifikation des Parkplatzes, so daß Du nicht für jeden Stellplatz ein eigenes Register brauchst. Oder ist die #-Nr. nicht die Parkplatz-Nummer?
19.02.2018, 14:32 (Dieser Beitrag wurde zuletzt bearbeitet: 19.02.2018, 14:33 von Eiszwerg.)
Hallo Rabe,
Danke für die schnelle Antwort und Entschuldigung, dass ich mich nicht klar genug ausgedrückt habe. Die Spalte #-Nr. bezeichnet die Hotelzimmer-Nummer des Gastes, nicht die PP-Nummer. Selbstverständlich hat jeder Parkplatz hat ebenfalls eine Nummer. Diese befinden sich an der Kopfseite des Parkplatzes z.B. die rote Nummer im folgenden Bild:
Wenn der Parkplatz belegt ist, wird er rot unterlegt, wenn er frei ist, bleibt die PP-Nummer grau. Im weißen Bereich des Parkplatzes sollte die Zimmernummer des Gastes, der Nachname des Gastes, das Kennzeichen des Autos auf dem PP, das Anreise- und das Abreisedatum stehen, wobei die Spalte # Name (siehe Bild oben) aus zwei Zellen verkettet wird.
Ich hatte nur gedacht, dass es einfacher ist Excel entscheiden zu lassen, ob der Parkplatz am heutigen Tag belegt ist, wenn ich für jeden Parkplatz eine eigene Liste anlege. Wenn die Datenprüfung anhand einer PP-ID und die anschließende Datenausgabe im TG-Plan vom heutigen Tag auch möglich ist, wenn alle Informationen in einer Liste stehen, wäre das natürlich umso besser :)
Mein Problem ist hauptsächlich die Überprüfung, ob der PP bereits reserviert ist. Wäre natürlich blöd, wenn ich z. B. im Mai eine PP Reservierung für den PP40 für 6.-12 Dezember vornehme und im August für den gleichen PP von 8.-10. Dezember. Es können ja keine zwei Autos im selben Zeitraum auf dem gleichen PP stehen. In dem Fall möchte ich, dass Excel mir die Nachricht gibt, dass die Reservierung nicht möglich ist, da der PP in diesem Zeitraum bereits belegt ist.
Warum nicht in den Spalten alle Parkplatznummern, in den Zeilen alle Tage. Falls eine Reservierung vorliegt, werden die Zellen markiert und mit den Detailangaben verlinkt.
Ich weiß nicht ganz genau, ob ich deine Idee richtig verstanden habe. Den TG Übersichtsplan habe ich beibelassen, da die Parkplätze aktuell nur intern Nummern haben und nicht beschriftet sind. Jedoch bin ich mit der Datenprüfung und Vermeidung von Doppelbelegungen immer noch nicht weiter gekommen.. Kann mir da jemand helfen?
nach ein paar Prüfungen könnte folgender Ansatz funktioniere:
im Blatt "Raster" echte xl Datumswerte verwenden
im Blatt "Datneingabe" per VBA (change_event) prüfen, ob ein Eingabe vollständig ist und dann diesen Zeitraum im Blatt Raster farbigmarkieren.
Die Makro sind machbar, aber nicht so ganz "basic". Der Zeitaufwand könnte bis zu einer Stunde betragen. Bevor ich ernsthaft damit anfange die Frage, ob so ein Ansatz für die in Frage kommt. Du solltest den Code verstehen und kleinere Änderungen vornehmen können.
20.02.2018, 13:13 (Dieser Beitrag wurde zuletzt bearbeitet: 20.02.2018, 13:13 von Rabe.)
Hi,
ich habe das Makro noch etwas erweitert um weitere Spalten (ND3 statt AG3) und einen Offset von 2 eingebaut (Anreise + 2, Abreise + 2), weil sonst die falschen Tage markiert würden.
PrivateSub Worksheet_Change(ByVal Target As Range) Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction If Intersect(Range("B4:G" & Cells(Rows.Count, 2).End(xlUp).Row), Target) IsNothingThenExitSub Ev = "counta(" & Range(Cells(Target.Row, 2), Cells(Target.Row, 7)).Address & ")" If Evaluate(Ev) = 6Then With Sheets("Raster") Anreise = WSF.Match(CLng(CDate(Cells(Target.Row, "F"))), .Range("C3:ND3"), 0) Abreise = WSF.Match(CLng(CDate(Cells(Target.Row, "G"))), .Range("C3:ND3"), 0) PP = WSF.Match(Cells(Target.Row, "B"), .Range("B1:B49"), 0) .Range(.Cells(PP, Anreise + 2), .Cells(PP, Abreise + 2)).Interior.Color = vbGreen EndWith EndIf EndSub
Ich hatte schon angefangen, das Rasterblatt zu transponieren, da ich es einfacher finde, nach unten zu scrollen, als nach rechts. Auch für einen Ausdruck ist das einfacher. Aber dazu muß dann auch noch das Makro umgeschrieben werden. @ TE: Auch der 29.02. für ein Schaltjahr fehlt noch im Raster.
Noch ein kleines Gemecker: Wie ist das im Schaltjahr mit dem 29.2.? Da stimmt die Monats-Rahmen- und Überschriften-Formatierung nicht und die Datumszeile muß bis ND gehen.