Es ist zum Verzweifeln..
Hallo zusammen,
eigentlich wollte ich nur ein einfaches Reservierungsprogramm schreiben, mit dem ich anhand einer vorgegebenen Sitzordnung, Plätze als belegt oder nicht belegt anzeigen lassen kann. Diese Daten werden mit den zugehörigen Namen dann hinterlegt.
Aber es gibt immer irgend einen Haken.
Im Tabellenblatt1 Modul habe ich folgenden Code hinterlegt.
Private Sub Platz_1_Click()
Call Modul1.auswertung("Platz_1")
End Sub
Das eben für jeden CommandButton, der einen Platz darstellt. Soweit so gut. Jetzt kommt das Modul1
*
Public platzname As String
Public plaetze(50) As String
Sub auswertung(platzname)
Static z As Integer
If ActiveSheet.OLEObjects(platzname).Object.BackColor = RGB(0, 255, 0) Then
ActiveSheet.OLEObjects(platzname).Object.BackColor = &HE0E0E0
Else
ActiveSheet.OLEObjects(platzname).Object.BackColor = RGB(0, 255, 0)
End If
plaetze(z) = platzname
z = z + 1
End Sub
*
Das wäre auch noch so weit in Ordnung. Aber leider muss durch einen zusätzlichen Button, den ich noch nicht programmiert habe, die Reservierung der Plätze mit Namen auf dem Tabellenblatt2 hinterlegt werden. Die Plätze (Buttons) werden erst angeklickt, weshalb sich diese grünlich färben, dann wird der Button Reservierung gedrückt und danach erscheint eine Inputbox für die Namen. Die Plätze und Namen, werden auf dem Tabellenblatt2 hinterlegt. Die nächsten Plätze werden nach dem gleichen Schema reserviert. Was ich einfach nicht hinbekomme ist die Feldvariable. Wenn ich eine statische Zählvariable verwende, kann ich diese nach einer Reservierung nicht zurücksetzen. Sie zählt dann einfach weiter. Wenn nach der ersten Reservierung 5 Plätze gebucht sind und die nächste nur zwei Plätze beinhaltet, wäre die Variable schon bei 7, was die Sache unnötig aufbläht.
Mit Redim Preserve bin ich auch gescheitert, da ich mit Redim plaetze(5), die ersten fünf Einträge wieder überschrieben werden, auch wenn die Reservierung noch nicht abgeschlossen ist.
Ich brauche irgendeine Lösung, bei der die Feldvariable die Platznamen der Reihe nach speichert und erst nach dem Klick auf Reservierung zurückgesetzt wird.
Bitte helft mir.
Gruß
eigentlich wollte ich nur ein einfaches Reservierungsprogramm schreiben, mit dem ich anhand einer vorgegebenen Sitzordnung, Plätze als belegt oder nicht belegt anzeigen lassen kann. Diese Daten werden mit den zugehörigen Namen dann hinterlegt.
Aber es gibt immer irgend einen Haken.
Im Tabellenblatt1 Modul habe ich folgenden Code hinterlegt.
Private Sub Platz_1_Click()
Call Modul1.auswertung("Platz_1")
End Sub
Das eben für jeden CommandButton, der einen Platz darstellt. Soweit so gut. Jetzt kommt das Modul1
*
Public platzname As String
Public plaetze(50) As String
Sub auswertung(platzname)
Static z As Integer
If ActiveSheet.OLEObjects(platzname).Object.BackColor = RGB(0, 255, 0) Then
ActiveSheet.OLEObjects(platzname).Object.BackColor = &HE0E0E0
Else
ActiveSheet.OLEObjects(platzname).Object.BackColor = RGB(0, 255, 0)
End If
plaetze(z) = platzname
z = z + 1
End Sub
*
Das wäre auch noch so weit in Ordnung. Aber leider muss durch einen zusätzlichen Button, den ich noch nicht programmiert habe, die Reservierung der Plätze mit Namen auf dem Tabellenblatt2 hinterlegt werden. Die Plätze (Buttons) werden erst angeklickt, weshalb sich diese grünlich färben, dann wird der Button Reservierung gedrückt und danach erscheint eine Inputbox für die Namen. Die Plätze und Namen, werden auf dem Tabellenblatt2 hinterlegt. Die nächsten Plätze werden nach dem gleichen Schema reserviert. Was ich einfach nicht hinbekomme ist die Feldvariable. Wenn ich eine statische Zählvariable verwende, kann ich diese nach einer Reservierung nicht zurücksetzen. Sie zählt dann einfach weiter. Wenn nach der ersten Reservierung 5 Plätze gebucht sind und die nächste nur zwei Plätze beinhaltet, wäre die Variable schon bei 7, was die Sache unnötig aufbläht.
Mit Redim Preserve bin ich auch gescheitert, da ich mit Redim plaetze(5), die ersten fünf Einträge wieder überschrieben werden, auch wenn die Reservierung noch nicht abgeschlossen ist.
Ich brauche irgendeine Lösung, bei der die Feldvariable die Platznamen der Reihe nach speichert und erst nach dem Klick auf Reservierung zurückgesetzt wird.
Bitte helft mir.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 91391
Url: https://administrator.de/contentid/91391
Ausgedruckt am: 25.11.2024 um 06:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo Exczel!
Versuch es so: Anstatt die Variable "z" innerhalb der Prozedur "auswertung" zu deklarieren, könntest Du sie (wie zB "platzname") im allgemeinen Deklarationsteil (nach Bedarf mit "Dim" oder "Public") festlegen und nach Abschluss der Reservierung einfach mit "z = 0" rücksetzen.
Grüße
bastla
Versuch es so: Anstatt die Variable "z" innerhalb der Prozedur "auswertung" zu deklarieren, könntest Du sie (wie zB "platzname") im allgemeinen Deklarationsteil (nach Bedarf mit "Dim" oder "Public") festlegen und nach Abschluss der Reservierung einfach mit "z = 0" rücksetzen.
Grüße
bastla