Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Es ist zum Verzweifeln..

Frage Microsoft Microsoft Office

Mitglied: Exzel

Exzel (Level 2) - Jetzt verbinden

06.07.2008, aktualisiert 19:35 Uhr, 3669 Aufrufe, 2 Kommentare

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ß
Mitglied: bastla
06.07.2008 um 15:09 Uhr
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
Bitte warten ..
Mitglied: Exzel
06.07.2008 um 19:35 Uhr
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.
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (19)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (15)

Link von Penny.Cilin zum Thema Viren und Trojaner ...