Abend alle miteinander,
als Abschluss zu VBA sollen wir nun 2 Programme ineinander „vermischen“, allerding krieg ich das nicht ganz hin und brauch eure hilfe…
und zwar soll nach dem klicken auf die checkbox ein vorher programmiertes Programm aufgerufen werden, wo ein Platz reserviert werden kann…
ich hab das bisher so probiert…
Private Sub Chk\_Ja\_Click()
vba\_24.xls.Activate
frm\_Karte.PrintForm
End Sub
Private Sub Chk\_Nein\_Click()
Unload Me
frm\_Kino.Show
End Sub
über Verbesserungsvorschläge würde ich mich sehr freuen
mfg
ivi
Hi Ivi,
und zwar soll nach dem klicken auf die checkbox ein vorher
programmiertes Programm aufgerufen werden, wo ein Platz
reserviert werden kann…
durch Klicken auf eine Chechbox ein Programm aufzurufen ist machbar *denk*, aber welcher „Platz“ soll da wo reserviert werden *nicht versteh*
Private Sub Chk_Ja_Click()
vba_24.xls.Activate
frm_Karte.PrintForm
End Sub
Private Sub Chk_Nein_Click()
Unload Me
frm_Kino.Show
End Sub
den Nein.klick verstehe ich, da wird irgendwas (ich benutze „Me“ nie, ist mir zu undeutlich) geschlosen und die Userform „frm_Kino“ angezeigt.
Im Ja-Klick sehe ich dass da eine Datei „vba_24.xls“ aktiviert wird und dann an der Userform „frm_Karte“ die methode „printForm“ angewandt wird. K.A. was jetzt PrintForm ist, wahrscheinlich wird da was ausgedruckt.
Soweit dazu wie ich den Code kapiere, jetzt zu deiner Anfrage, wo sollen da denn 2 Programme vermischt werden?
über Verbesserungsvorschläge würde ich mich sehr freuen
Gerne, aber mir fehlt noch sehr der overlooking was zu tun ist.
Warum wurde deine Anfrage eigentlich vom Moderator geändert?
Wenn es schändlicherweise aus Verstoß gegen kommerzielle Angebote war, dann mail mir, dann lese ich dir die AGBs von hier vor, oder so ähnlich *smile*
Gruß
Reinhard
Hallo Reinhard,
Warum wurde deine Anfrage eigentlich vom Moderator geändert?
Pre-Tag eingefügt und VBA in die Titelzeile geschrieben, nix schlimmes.
Gruß, Rainer
Hallo,
verstehe zwar Deine Frage nicht (vermischen? hä?), aber eventuell hilft Dir der folgende Tipp:
vba_24.xls.Activate
WORKBOOKS(„vba_24.xls“).Activate
Gruß, Bernd
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hallo Reiner,
was ist den ein Pre-Tag??
gruß
Hallo Ivi,
was ist den ein Pre-Tag??
ist Dir aufgefallen, daß Dein Quellcode jetzt besser lesbar ist, weil Deine Einrückungen sichtbar sind? Das macht der Pre-Tag.
Um den im Forum sichtbar darstellen zu können, verwende ich mal noch Prehtml …
Dein Code
nächste Zeile eingerückt,
Ende Code
Was an der Stelle ‚Dein Code‘ steht, wird so dargestellt, wie Du es in Deiner Entwicklungsumgebung getippt hast. Dadurch wird der Code besser lesbar und die anderen Mitglieder können Dir leichter helfen.
Gruß, Rainer
hallo,
also beim clicken auf ja soll eine excel datei aufgerufen werden, ich hab das mit „workbooks“ probiert doch es funktioniert nicht, dieser teil wird dann gelb angestrichen…
würd mich über eine antwort heute abend freuen, da die aufgabe bis morgen erledigt sein muss
gruß ivi
also beim clicken auf ja soll eine excel datei aufgerufen
werden, ich hab das mit „workbooks“ probiert doch es
funktioniert nicht, dieser teil wird dann gelb
angestrichen…
Hi ivi,
ich kann in deinem Code nix mit „Workbooks“ entdecken. Poste mal den kompletten Code so wie er jetzt aussieht. Existiert denn diese Datei und bist du im richtigen Verzeichnis?
Was ergibt denn
msgbox thisworkbook.path
msgbox dir(„Dateiname.xls“)
usw.
?
Und immer noch, was meinst du mit Platz?
Gruß
Reinhard
Hallo Reinhard,
ich hab nicht so ganz verstanden was du geschrieben hat…
aber hier ist der ganze code…
Option Explicit
Dim wahl As Byte
Dim film As String
Private Sub cmd\_Titel\_Click()
lbl\_Film1 = Worksheets("Filme").Cells(2, 3)
lbl\_Film2 = Worksheets("Filme").Cells(3, 3)
lbl\_Film3 = Worksheets("Filme").Cells(4, 3)
lbl\_Film4 = Worksheets("Filme").Cells(5, 3)
lbl\_Film5 = Worksheets("Filme").Cells(6, 3)
lbl\_Film6 = Worksheets("Filme").Cells(7, 3)
txt\_Wahl.SetFocus
End Sub
Private Sub cmd\_OK\_Click()
'Einlesen
wahl = txt\_Wahl.Text
'Plausibilitätskontrolle
If txt\_Wahl.Text "" Then
If wahl = 1 Then
film = Worksheets("Filme").Cells(2, 3)
ElseIf wahl = 2 Then
film = Worksheets("Filme").Cells(3, 3)
ElseIf wahl = 3 Then
film = Worksheets("Filme").Cells(4, 3)
ElseIf wahl = 4 Then
film = Worksheets("Filme").Cells(5, 3)
ElseIf wahl = 5 Then
film = Worksheets("Filme").Cells(6, 3)
Else: film = Worksheets("Filme").Cells(7, 3)
End If
frm\_Karte.lbl\_Film.Caption = film
frm\_Karte.Show
Else: MsgBox ("Sie müssen ein Film aussuchen")
End If
End Sub
Private Sub cmd\_Ende\_Click()
Unload Me
End Sub
dies ist die erste UserForm und dann wierd diese aufgerufen
Option Explicit
Private Sub Chk\_Ja\_Click()
Workbooks("vba\_24").Open
frm\_Karte.PrintForm
End Sub
Private Sub Chk\_Nein\_Click()
Unload Me
frm\_Kino.Show
End Sub
allerdings funktioniert dieser teil nicht, das die datei vba\_24 nicht aufgerufen wird....
und das ist der code aus vba\_24
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
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
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
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")
End If
End Sub
Function existenz() As Boolean
If txt\_Reihe \> 50 Or txt\_Sitz \> 10 Then
MsgBox ("Dieser Platz existiert garnicht!!")
existenz = False
Exit Function
Else: existenz = True
End If
End Function
Private Sub feld\_leeren()
txt\_Reihe.Text = ""
txt\_Sitz.Text = ""
txt\_Reihe.SetFocus
End Sub
Private Sub cmd\_Ende\_Click()
Unload Me
End Sub
ivi
[MOD] Pre-Tags eingefügt.
Hi Ivi,
ich hab nicht so ganz verstanden was du geschrieben hat…
tja nu, du erwähnst im Ausgangsposting was von „Platz“ ich frage nach was damit gemeint ist, keine Antwort.
Ich frage was bei „msgbox irgendwas“ angezeigt wird, keine Antwort.
ch frage nach ob die Datei in dem aktuellen Verzeichnis überhaupt existiert, keine Antwort.
Nun sagst du du hast meine Nachfragen nicht verstanden, habe da jetzt keinen Plan wie ich es erneut bzw. anders formulieren sollte.
Ich gehe davon aus du weißt wie man „msgbox“ oder „dir“ einsetzt, insofern verstehe ich dein Unverständnis meiner Nachfragen nicht.
Zu deinem Code, ElseIf ist unübersichtlich, nimm select case.
Private Sub cmd\_OK\_Click()
'Einlesen
wahl = txt\_Wahl.Text
'Plausibilitätskontrolle
If txt\_Wahl.Text "" Then
Select Case wahl
Case 1 To 5
film = Worksheets("Filme").Cells(wahl + 1, 3)
Case Else
film = Worksheets("Filme").Cells(7, 3)
End Select
frm\_Karte.lbl\_Film.Caption = film
frm\_Karte.Show
Else
MsgBox ("Sie müssen einen Film aussuchen")
End If
End Sub
Und benutze bitte unbedingt den pre-Tag wenn du hier Code postest.
Und warum soll sich die Datei vba_24 .xls öffnen wenn du eine völlig andre Datei namens „vba_24“ mit
Workbooks(„vba_24“).Open
öffnen willst. Sie bleibt mit Recht sehr verschlossen 
Gruß
Reinhard
Hallo ivi,
bei Deinem Problem kann ich Dir leider nicht helfen, von VBA habe ich keine Ahnung.
Gruß, Rainer