Hilfe

hey alle zusammen,

ich hab da ein problem, der code funktionier nicht…wär nett wenn da jemand drauf gucken könnte und den fehler finden könnte. ich mein der fehler müsste irgendwo bei Private Sub existenz() liegen…
wir sollten arrays benutzen, fall die jemand einbauen kann, wär das super…

Option Explicit
Dim j As Byte
Dim i As Byte
Dim Matrix(5 To 54, 5 To 12) As Integer

Private Sub cmd_Buchung_Click()
textfelder_prüfen

existenz

einlesen

If Worksheets(„Kino“).Cells(i + 4, j + 2) = „“ Then
Worksheets(„Kino“).Cells(i + 4, j + 2) = „X“
MsgBox („Der Platz ist für Sie reserviert!“)
Else: MsgBox („Der Platz ist schon besetzt!“)
End If

feld_leeren
End Sub

Private Sub cmd_Stornierung_Click()
textfelder_prüfen

existenz

einlesen

If Worksheets(„Kino“).Cells(i + 4, j + 2) = „X“ Then
Worksheets(„Kino“).Cells(i + 4, j + 2) = „“
MsgBox („Ihre Buchung wurde storniert!“)
Else: MsgBox („Der Platz wurde garnicht reserviert!“)
End If

feld_leeren
End Sub

Private Sub einlesen()
i = txt_Reihe.Text
j = txt_Sitz.Text
End Sub

Private Sub textfelder_prüfen()
If txt_Reihe.Text = „“ Or txt_Sitz.Text = „“ Then
MsgBox („Sie müssen die Reihe und den Sitz eingeben“)
Exit Sub
End If
End Sub

Private Sub existenz()
If txt_Reihe > 50 Or txt_Sitz > 10 Then
MsgBox („Dieser Platz existiert garnicht!!“)
Exit Sub
End If
End Sub

Private Sub feld_leeren()
txt_Reihe.Text = „“
txt_Sitz.Text = „“
txt_Reihe.SetFocus
End Sub

Private Sub cmd_Ende_Click()
Unload Me
End Sub

vielen dank

ivi

Hallo ivi,

also ich hba mir den Code mal angeschaut, aber… es waere nicht so muehsam ohne Backgroundinfos den Fehler zu finden. Du moenntest mal ein paar naehere Angabe zu deinem Problem machen:
Welche Umgebung
Welche Fehlermeldung, bei welcher Aktion.

Auserdem findet man Fehler meist schneller wenn man die Funktionen mit einer Fehlerbehandlung versieht( On Error Goto … Select case err.number) dann kann man mit dem Step-Debugger durchgehen und sieht was wirklich abgeht.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

hallo Peter,

in eine UserForm soll der Sitz und die Reihe eingegeben werde, um den Sitz zu buchen bzw. zu stornieren. die buchung soll so gekennzeichnet werden, dass ein „X“ in der Exceltabelle in der entsprechenden Zelle eingefügt wird, doch vorher soll noch geprüft werden, ob dieser Platz überhaupt exsistiert.
und dort liegt dann auch der fehler, denn es erscheinen auch „X“ wo keine Plätze sind, zudem wird

j=txt_Sitz.text

gelb angestrichen.

es wär nett von dir wenn du dir nochmal die mühe machen könntest dir den code anzuschauen.

vielen dank

ivi

Hallo Ivi,
das Problem liegt darin, dass Du zwar erkennst, dass der Platz nicht existiert, aber die Prozedur (cmd_Buchung_Click) trotzdem weiterläuft. Mein Vorschlag wäre: Wandle die Existenz-Prüfung zu einer Funktion um. Der Code könnte in etwa so aussehen:

Private Sub cmd\_Buchung\_Click()
textfelder\_prüfen

If existenz = True Then
 einlesen

 If Worksheets("Kino").Cells(i + 4, j + 2) = "" Then
 Worksheets("Kino").Cells(i + 4, j + 2) = "X"
 MsgBox ("Der Platz ist für Sie reserviert!")
 Else: MsgBox ("Der Platz ist schon besetzt!")
 End If
End If

feld\_leeren
End Sub

Function existenz() As Boolean
If txt\_Reihe \> 50 Or txt\_Sitz \> 10 Then
 MsgBox ("Dieser Platz existiert garnicht!!")
 existenz = False
Else: existenz = True
End If
End Function

Private Sub cmd\_Stornierung\_Click()
textfelder\_prüfen

If existenz = True Then
 einlesen
 If Worksheets("Kino").Cells(i + 4, j + 2) = "X" Then
 Worksheets("Kino").Cells(i + 4, j + 2) = ""
 MsgBox ("Ihre Buchung wurde storniert!")
 Else: MsgBox ("Der Platz wurde garnicht reserviert!")
 End If
End If
feld\_leeren
End Sub

Die anderen Prozeduren kannst Du so belassen wie sie sind.
Hoffe, konnte weiterhelfen.

Grüße Wolfgang

hallo Wolfgang,

vielen Dank, so funktioniert es. kannst du mir vllt noch sagen, ob da ein array vorkommt, ich bin mir da nicht so sicher, doch dies war die aufgabe…

mfg

ivi