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