Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code bei MultiPage-Wechsel ausführen

Forumthread: Code bei MultiPage-Wechsel ausführen

Code bei MultiPage-Wechsel ausführen
05.07.2016 16:00:18
Hendrik
Hallo zusammen,
ich habe ein Userform mit einer MultiPage. Hier gibt es Seite0 und Seite1. Beim Wechsel auf Seite1 sollen die Textfelder auf Seite0 auf Plausibilität geprüft werden. Wenn Eingaben fehlen darf nicht auf Seite1 gewechselt werden.
Gibt es ein Event, dass ausgeführt wird, wenn ich Seite1 aufrufe und in das ich die Prüfungen schreiben kann? Wie würdet Ihr das regeln?
Danke und Grüße

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code bei MultiPage-Wechsel ausführen
05.07.2016 16:17:29
Nepumuk
Hallo,
im Modul des Userforms:
Option Explicit

Private Sub MultiPage1_Change()
    If MultiPage1.Value = 1 Then
        If TextBox1.TextLength = 0 Then
            Call MsgBox("Text fehlt.", vbExclamation, "Hinweis")
            Call Application.OnTime(Now, "Multipage")
        End If
    End If
End Sub

In einem Standardmodul:
Option Explicit
Option Private Module

Public Sub Multipage()
    UserForm1.MultiPage1.Value = 0
End Sub

Gruß
Nepumuk

Anzeige
AW: Code bei MultiPage-Wechsel ausführen
05.07.2016 16:54:30
Hendrik
Hey Nepumuk,
danke für die schnelle Antwort.
Was macht denn das
Application.OnTime(Now, "Multipage")
und wann wird
Public Sub Multipage()
aufgerufen?
Grüße

AW: Code bei MultiPage-Wechsel ausführen
05.07.2016 18:03:01
Nepumuk
Hallo,
die OnTime-Methode entkoppelt die Sub MultiPage von dem Event MultiPage1_Change. Wenn du das nicht machst, kannst du nicht zur 1. Seite zurückspringen, bzw. es scheint zwar die 1. Seite aktiv aber du siehst die Controls der 2. Seite.
Gruß
Nepumuk

Anzeige
AW: Code bei MultiPage-Wechsel ausführen
06.07.2016 08:55:17
Hendrik
Ah, super. Danke.
OnTime kannte ich nicht und habe ich noch nie gesehen.
;
Anzeige
Anzeige

Infobox / Tutorial

Code bei MultiPage-Wechsel ausführen


Schritt-für-Schritt-Anleitung

Um beim Wechsel zwischen den Seiten einer MultiPage die Eingaben zu prüfen, kannst Du den Change-Event der MultiPage verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Wähle Dein UserForm: Doppelklicke auf das UserForm, das die MultiPage enthält.

  3. Füge den Change-Event hinzu: Im Codefenster des UserForms füge den folgenden Code ein:

    Option Explicit
    
    Private Sub MultiPage1_Change()
        If MultiPage1.Value = 1 Then
            If TextBox1.TextLength = 0 Then
                MsgBox "Text fehlt.", vbExclamation, "Hinweis"
                Call Application.OnTime(Now, "Multipage")
            End If
        End If
    End Sub
  4. Erstelle die Rücksprung-Methode: Füge in ein Standardmodul den folgenden Code hinzu:

    Option Explicit
    
    Public Sub Multipage()
        UserForm1.MultiPage1.Value = 0
    End Sub

Damit wird beim Wechseln auf die zweite Seite die Eingabe in TextBox1 geprüft. Ist das Textfeld leer, wird der Wechsel zur ersten Seite zurückgerufen.


Häufige Fehler und Lösungen

Problem: Der Wechsel zur zweiten Seite funktioniert nicht.
Lösung: Stelle sicher, dass der Change-Event korrekt implementiert ist und dass der Name des Textfeldes übereinstimmt.

Problem: Die Controls der zweiten Seite sind sichtbar, obwohl die erste Seite aktiv sein müsste.
Lösung: Verwende die Application.OnTime-Methode, um die Rücksprung-Methode korrekt auszuführen.


Alternative Methoden

Eine alternative Methode, um Eingaben zu überprüfen, besteht darin, die BeforeUpdate-Ereignisse der Textfelder zu verwenden. Dadurch kannst Du sicherstellen, dass die Eingaben validiert werden, bevor der Fokus auf die MultiPage-Seiten gewechselt wird.


Praktische Beispiele

Hier ist ein Beispiel, wie Du mehrere Textfelder prüfen kannst:

Private Sub MultiPage1_Change()
    If MultiPage1.Value = 1 Then
        If TextBox1.TextLength = 0 Or TextBox2.TextLength = 0 Then
            MsgBox "Bitte alle erforderlichen Felder ausfüllen.", vbExclamation, "Hinweis"
            Call Application.OnTime(Now, "Multipage")
        End If
    End If
End Sub

In diesem Beispiel werden zwei Textfelder überprüft. Du kannst die Logik anpassen, um beliebig viele Felder zu überprüfen.


Tipps für Profis

  • Nutze UserForm_Initialize, um Standardwerte in Deinen Textfeldern festzulegen, damit der Benutzer eine klare Anweisung hat, was eingegeben werden soll.
  • Überlege, ob Du die Validierung nicht nur beim Seitenwechsel, sondern auch während der Eingabe durchführen möchtest, um eine bessere Benutzererfahrung zu bieten.
  • Experimentiere mit der vba userform multipage select page-Methode, um die Benutzeroberfläche ansprechend zu gestalten.

FAQ: Häufige Fragen

1. Was ist der Zweck der Application.OnTime-Methode?
Die Application.OnTime-Methode entkoppelt den Event-Handler von der eigentlichen Funktion, sodass Du die MultiPage zurücksetzen kannst, ohne dass es zu Darstellungsfehlern kommt.

2. Wie kann ich mehrere Seiten in einer MultiPage validieren?
Du kannst die Logik in den Change-Event erweitern, um alle relevanten Textfelder zu überprüfen, bevor Du den Wechsel zulässt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige