Passer d'une page à une autre d'un UserForm Multipage par bouton commande

Bonjour,

Après qlqs échecs je me tourne vers vous :)

Contexte : Je souhaite créer un UserForm Multipage où chaque page est une catégorie de données à remplir par l'utilisateur.

Objectif : Je veux pouvoir passer d'une page (disons Page1) de l'UF à une autre page (disons Page2) à l'aide d'un bouton (disons CommandeButton1), une fois que l'utilisateur a rempli les cases de la Page1.

Voici ce que j'ai essayé en plaçant CommandButton1 dans la page1 :

Private Sub CommandButton1_Click()
    Load Page2
    Page2.Show
End Sub

Mais cela ne fonctionne pas (erreur d'exécution 424 : Objet requis).

Avez vous des pistes de solution svp ?

Bonjour,

Dans la boîte à outil des userforms il existe des contrôles onglet et contrôles multipages

Bonjour,

Pouvez-vous essayer :

Private Sub CommandButton1_Click()
with me.multipage1
    .Value = iif(.pages.count > .value + 1, .value + 1, 0)
end with
End Sub

Ca permet théoriquement de passer à la page suivante, puis de retourner à la première.

Cdlt,

Bonjour,

Mettre :

Me.MultiPage1.Value = 1 'pour activer la page 2
Me.MultiPage1.Value = 0 'pour activer la page 1

A+

EDIT : Hei ! on a frisé la collision...

Bonjour 3GB,

Merci pour ta réponse. Cela résout mon souci en partie

Car je voudrais que l'utilisateur ne puisse accéder à la page suivante seulement s'il a rempli les textbox de la page actuelle (textbox non vide en gros avec un If)

bonjour hamza-arif,

Vous donnez la réponse dans votre question

Voici une petite formation si nécessaire https://www.excel-pratique.com/fr/vba/conditions

A+

Bonjour BrunoM45,

Je sais qu'il faut utiliser une condition If (et je sais à peu près l'utiliser) mais ce qui me manque c'est les commandes permettant d'accéder aux propriétés des checkbox etc

d'où ma question :)

Re,

"Me" définissant l'objet conteneur qu'est l'UserForm

If Me.Textbox1 <> "" Then
 ' On peut passer à l'autre page
End If

A+

Bonjour à tous,

Et pour prolonger l'idée de Bruno (que je salue !), au cas où il y aurait une multitude de TB :

Private Sub CommandButton1_Click()
with me.multipage1
    for each ctrl in .pages(.value).controls 'pour chaque ctrl de la page en cours
        if typename(ctrl) = "TextBox" then    'si le ctrl est une TB
            if ctrl.value = "" then msgbox "Saisie incomplète": exit sub 'si elle est vide, on sort (avant chgt de page)
        end if
    next ctrl
    .Value = iif(.pages.count > .value + 1, .value + 1, 0) 'chgt page
end with
End Sub

Cdlt,

Re,

Désolé pour les contributeurs, mais monsieur devait être pressé et à fait du cross posting

Bonjour,

Merci bcp, grâce à vous j'ai trouvé une solution qui fonctionne.

Bonjour,

Il serait bien de mettre la solution également sur ce forum...
mais c'est peut-être trop compliqué pour vous

Re,

Désolé pour les contributeurs, mais monsieur devait être pressé et à fait du cross posting

Qu'est-ce que je les hais ces cross posteurs...

Je n'étais pas au courant que demander de l'aide sur plusieurs forum était considéré comme une offense (je débarque dans le domaine oui...). C'était un moyen pour moi d'avoir différents points de vus et avoir plus de réponses, je vous prie de m'excuser si ça a gêné qlqu'un ...

Bonne continuation et merci pour votre aide Bruno

Re,

Ce n'est pas considéré comme une offense, mais ce n'est pas toléré, point.

Lorsqu'on arrive quelque part, on commence par lire les consignes , non
Ce forum est comme sur l'autre, il y aune charte à lire, une politesse à avoir vis à vis des contributeurs...

A bon entendeur

Rechercher des sujets similaires à "passer page userform multipage bouton commande"