Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

MultiPage.Value ändern durch MsgBox

MultiPage.Value ändern durch MsgBox
26.08.2007 14:21:00
Thomas
Hallo,
eine MsgBox vbYesNo soll bei 'Yes' die Seite einer MultiPage ändern.
Dim Mldg As String
Mldg = MsgBox("Meldung"), _
vbYesNo + vbExclamation, _
"Titel")
If Mldg = vbYes Then
MultiPage1.Value = 11
End If
Es wird zwar der Reiter der Page markiert, aber die alte Seite bleibt erhalten. Es wird also nicht wirklich umgeblättert. Um dies zu erreichen, muß ich nächträglich eine andere Seite wie die bereits gewählte anklicken und dann wieder die Seite 11 wählen.
Kann mir jemand sagen, wie ich das in einem Schritt, mittels der MsgBox hinbekomme?
Gruß Thomas

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MultiPage.Value ändern durch MsgBox
26.08.2007 14:28:00
Hajo_Zi
Halllo Thomas,
hast Du es schon mal mit doevents versucht?

AW: MultiPage.Value ändern durch MsgBox
26.08.2007 14:43:05
Thomas
Hallo Hajo,
nein, kannst Du mir bitte sagen, wie ich 'doevents' einbinden muß, damit es funktioniert?
Gruß Thomas

AW: MultiPage.Value ändern durch MsgBox
26.08.2007 14:47:00
Hajo_Zi
Hallo Thomas,
einfach nach dem Wechsel shreiben in die nächste Zeile.
Gruß Hajo

AW: MultiPage.Value ändern durch MsgBox
26.08.2007 14:52:00
Thomas
Hallo Hajo,
also, da steht jetzt:
If Mldg = vbYes Then
MultiPage1.Value = 11
DoEvents
End If
aber es tut sich nichts. :-(
Gruß Thomas

Anzeige
Nicht nachvollziehbar...
26.08.2007 14:55:00
{Boris}
Hi Thomas,

Private Sub CommandButton1_Click()
If MsgBox("Auf Page2 wechseln?", vbYesNo) = vbYes Then
Me.MultiPage1.Value = 1
End If
End Sub


funktioniert bei mir einwandfrei.
Grüße Boris

AW: Nicht nachvollziehbar...
26.08.2007 14:59:00
Hajo_Zi
Hallo Boris,
das Problem wird wohl sein das ein Nachbau meist nicht so aussieht wie das Original.
Gruß Hajo

AW: Nicht nachvollziehbar...
26.08.2007 15:07:00
Thomas
Hallo Hajo, Hallo Boris,
kann es denn sein, daß es klappt, wenn es von einem CommandButton aufgerufen wird, nicht aber, wenn die MsgBox in einem normalen Sub steht, so wie bei mir?
Nun kann ich dafür leider keinen extra CommandButton einbauen.
Gruß Thomas

Anzeige
Das muss auch so gehen...
26.08.2007 15:15:45
{Boris}
Hi Thomas,
das geht auch so:

Sub geht_auch_so()
UserForm1.Show
If MsgBox("Auf Page2 wechseln?", vbYesNo) = vbYes Then
UserForm1.MultiPage1.Value = 1
End If
End Sub


Das Form muss natürlich ungebunden sein.
Grüße Boris

AW: Das muss auch so gehen...
26.08.2007 15:32:00
Thomas
Hallo Boris,
ich habe das Verhalten der UserForm von 'ShowModal = True' auf False und wieder zurück probiert und in keinem der Fälle hat es funktioniert.
Gibt es denn so etwas wie ein 'Refresh' auch für MultiPages?
Gruß Thomas

Boris: es ist nach neun - seit sieben .....
26.08.2007 16:00:00
WF
..... Stunden wolltest Du mit mir powern ?
WF

Anzeige
MultiPage.Value ändern durch MsgBox
26.08.2007 17:17:20
Thomas
Hallo,
nachgefragt:
a) gibt es denn eine Art 'Refresh' für MultiPages?
b) wie bekomme ich einen Blattwechsel bei einer Multipage mittels SendKeys hin?
Gruß Thomas

AW: MultiPage.Value ändern durch MsgBox
26.08.2007 18:02:49
Thomas
Hallo,
nochmal nachgefragt:
UserForm-Verhalten-ShowModal 'True' oder 'False' (auch wenn es nichts bringt)?
Könnte man hinterher einen Blattwechsel mittels SendKeys erzwingen?
Bringt es etwas, wenn ich die Abfrage der MsgBox anstelle in der UserForm, in einem Modul starte?
Gruß Thomas

AW: MultiPage.Value ändern durch MsgBox
26.08.2007 21:24:43
Nepumuk
Hallo Thomas,
es geht aus dem ganzen Thread nicht hervor, wodurch die Msgbox aufgerufen wird. Ich finde nur Codefragmente. Kläre uns doch erst einmal über die Zusammenhänge auf. Also das Userform wird gestartet und dann?
Gruß
Nepumuk

Anzeige
AW: MultiPage.Value ändern durch MsgBox
27.08.2007 14:09:01
Thomas
Hallo Nepumuk,
vielen Dank für die Nachfrage, also ausführlich:
UserForm wird gestartet und initialisiert. Dabei wird die Multipage auf Seite 1 also Value 0 gesetzt.

Sub UserForm_Initialize()
MultiPage1.Value = 0
Erster_Aufruf = True
End Sub


was untenstehendes Change-Ereignis aufruft, in welchem u.A. kontrolliert wird, wie alt die Datensicherung ist.


Sub MultiPage1_Change()
If ((Erster_Aufruf = True) And (Cells(12, 5) > 30)) Then
Call Warnung_Datensicherung_Ersatzrecher
End If
End Sub


Wenn die Bedingung erfüllt ist wird schließlich die MsgBox mir der Frage aufgerufen


Sub Warnung_Datensicherung_Ersatzrecher()
Dim Mldg As String
Erster_Aufruf = False
Mldg = MsgBox("Die letzte Daten-Sicherung auf " & _
"einen " & vbCrLf & "Ersatzrechner liegt " & _
Cells(13, 5) & " Tage zurück!" & _
vbCrLf & vbCrLf & _
"Soll das Menue 'Datensicherung'" & vbCrLf & _
"jetzt sofort aufgerufen werden?" & vbCrLf, _
vbYesNo + vbExclamation, _
" Die Daten-Sicherung ist überfällig!")
If Mldg = vbYes Then
Me.MultiPage1.Value = 11
End If
End Sub


Wird diese Frage bejat, ist der Value auf 11 und der Reiter der Page ist markiert, aber es bleibt die alte Seite erhalten, es wird also nicht wirklich umgeblättert.
Um dies nachträglich zu ereichen, muß ich von der gewählten Multipage eine andere anklicken und dann wieder zurück, dann ist sie vollständig.
Gruß Thomas

Anzeige
AW: MultiPage.Value ändern durch MsgBox
27.08.2007 14:45:00
Nepumuk
Hallo Thomas,
da Problem ist, dass du den Seitenwechsel durch einen Seitenwechsel auslosen willst. Das geht nur, indem du Hajo's Tipp mit DoEvents benutzt. Beispiel:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Erster_Aufruf As Boolean

Private Sub UserForm_Activate()
    MultiPage1.Value = 0
    Erster_Aufruf = True
End Sub

Private Sub MultiPage1_Change()
    DoEvents
    If Erster_Aufruf Then Call Warnung_Datensicherung_Ersatzrecher
End Sub

Sub Warnung_Datensicherung_Ersatzrecher()
    Erster_Aufruf = False
    If MsgBox("Die letzte Daten-Sicherung auf " & _
        "einen " & vbLf & "Ersatzrechner liegt " & _
        Cells(13, 5) & " Tage zurück!" & vbLf & vbLf & _
        "Soll das Menue 'Datensicherung'" & vbLf & _
        "jetzt sofort aufgerufen werden?" & vbLf, _
        vbYesNo + vbExclamation, _
        " Die Daten-Sicherung ist überfällig!") = vbYes Then _
        UserForm1.MultiPage1.Value = 11
End Sub

Gruß
Nepumuk

Anzeige
AW: MultiPage.Value ändern durch MsgBox
27.08.2007 15:25:00
Thomas
Hallo Nepumuk,
es klappt! Vielen Dank!
Jetzt habe ich das verstanden. Besonders klug war das wohl nicht einen Seitenwechsel durch einen Seitenwechsel auszulösen, nicht wahr?
Aber zum Glück bin ich ja nicht alleine!
Nochmals Dank
Gruß Thomas

Ich power auch...
26.08.2007 17:34:00
{Boris}
Hi WF,
...und komm nachher auch noch für ein paar Stunden zu Dir. Ging heut nicht anders.
Bis nachher!
Gruß Boris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige