exzel
Goto Top

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ß

Content-Key: 91391

Url: https://administrator.de/contentid/91391

Ausgedruckt am: 19.03.2024 um 05:03 Uhr

Mitglied: bastla
bastla 06.07.2008 um 15:09:16 Uhr
Goto Top
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
Mitglied: Exzel
Exzel 06.07.2008 um 19:35:59 Uhr
Goto Top
Hallo und danke für die Antwort,

anscheinend muss eine Variable als statisch deklariert werden, wenn diese innerhalb eines Moduls den Wert nach erneutem Aufruf des Moduls beibehalten soll.


Ich bin mit der Programmierung aber schon weitergekommen. Da ich aber leider unter Zeitdruck stehe, möchte ich diesen Thread als erledigt betrachten und einen neuen, sehr wichtigen eröffnen.