multipage

  • Initiateur de la discussion violaine
  • Date de début
V

violaine

Guest
dans une userform g utiliser dans la boite a outil le"multipage" et je voudrai savoir si le passage d un onglet a l autre pouvait se faire par un bouton "valider" par exemple tout en bloquant la possibilite de passer d un onglet a l autre par un click de la souris sur l onglet desire
merci
 
A

Arnaud

Guest
salut,

tient voila un exemple. par contre pour empécher le changement de page du à un click sur l'onglet, y a peut être une autre solus car la ça fais pas très propre :(
 

Pièces jointes

  • Classeur1.zip
    7.4 KB · Affichages: 267
  • Classeur1.zip
    7.4 KB · Affichages: 286
  • Classeur1.zip
    7.4 KB · Affichages: 280
@

@+Thierry

Guest
Bonjour Violaine, le Forum

Tout en connaissant bien que la façon de numéroter les onglets un Control MultiPage démarre à Zéro, exemple

Me.MultiPage1.Value = 0

Fera afficher le premier onglet en partant de gauche.... Sur un control multipage standard de base...

Donc en partant de ce principe on peut envisager une Variable Public qui va "piloter" où le User à le droit de surfer dans les tabulations de ce control MultiPage....

Dim TheAgreedPage As Byte '<<< NB Déclaration Public en Top de Module du UserForm


Ensuite une macro comme ceci :
Private Sub MultiPage1_Change()
Me.MultiPage1.Value = TheAgreedPage
End Sub

Pour ce faire on peut ensuite initialiser cette variable public comme on veut ... Exemple :
Private Sub UserForm_Initialize()
TheAgreedPage = 0
Me.MultiPage1.Value = TheAgreedPage
End Sub

Et, of course, la ré-initialiser par des CommandButtons à sa guise :

Private Sub CommandButton1_Click()
TheAgreedPage = 1
Me.MultiPage1.Value = TheAgreedPage
End Sub

Private Sub CommandButton2_Click()
TheAgreedPage = 2
Me.MultiPage1.Value = TheAgreedPage
End Sub

Voilà pas très compliqué.... Il suffit surtout de savoir qu'on part de zéro, comme beaucoup de chose en informatique...

Bonne Journée
@+Thierry


PS: Un autre moyen simple radical est, à l'initialise du UserForm, est de mettre ce code :
Me.MultiPage1.Style = fmTabStyleNone

Là plus d'Onglet, donc uniquement test boutons pourront prendre le control de changement de Page avec des commandes simples :
Me.MultiPage1.Value = 1

Etc..
 
@

@+Thierry

Guest
Re Arnaud

Non ta solution est OK, d'ailleurs pratiquement idem que ce que j'ai trouvé aussi, mais par contre c'est l'évènement Chane qui convient mieux que Click...


Bonne Journée
@+Thierry
 
A

Arnaud

Guest
normalement c tout le temps la même chose derrière.

si tu as plusieur bouton pour changer d 'onlget :

en reprenant l'ex de thierry :

Private Sub CommandButton1_Click()
TheAgreedPage = 1
Me.MultiPage1.Value = TheAgreedPage
End Sub

Private Sub CommandButton2_Click()
TheAgreedPage = 2
Me.MultiPage1.Value = TheAgreedPage
End Sub

Private Sub CommandButton3_Click()
TheAgreedPage = 3
Me.MultiPage1.Value = TheAgreedPage
End Sub

Private Sub CommandButton4_Click()
TheAgreedPage = 4
Me.MultiPage1.Value = TheAgreedPage
End Sub

etc............

et si tu n'a qu'un bouton 'onlget suivant' et un 'onglet prescedant' :
en reprenant mon ex :

'bouton suivant :
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 0: MultiPage1.Value = 1
Case 1: MultiPage1.Value = 2
Case 2: MultiPage1.Value = 3
End Select
PageCourante = MultiPage1.Value
End Sub


'bouton prescedant:
Private Sub CommandButton1_Click()
Select Case MultiPage1.Value
Case 1: MultiPage1.Value = 0
Case 2: MultiPage1.Value = 1
Case 3: MultiPage1.Value = 2
End Select
PageCourante = MultiPage1.Value
End Sub
 
V

violaine

Guest
finalement g reussi
mais deux autres probleme se posent

1 comment passer de l onglet x a x-1(g plusieur boutons precedents)

2 utilisant plusieur userform quand je met en place un bouton suivant dans ma deuxieme userform pour le passage de l onglet 1 a 2 et que je reprend le meme code que pour ma userform 1 il y a un conflit
sur le "multipage1":

Private Sub CommandButton1_Click()
TheAgreedPage = 1
Me.MultiPage1.Value = TheAgreedPage
End Sub

desoler je suis une vrai débutante de vba
merci beaucoup pour votre aide et le tps passer a me repondre
 
@

@+Thierry

Guest
Re Bonjour Violaine, Arnaud

Arnaud, pas de souci, quand on ne sait pas on ne peut le deviner.

Pour Violaine, ouh la la, je ne te conseille pas trop de faire des MultiUserforms avec chacun des MultiPages, si tu es débutante tu va y perdre ton Latin ou plûtot ton VBA !

Pour la Question 1)
Tu as plusieurs boutons "précédents" ??? c'est quoi ce sbinz ? si tu cherches à faire un bouton "Suivant" et un bouton "Précédent" il ne doit y en avoir que un de chaque et ils doivent se situer en dehors[/u] du control MultiPage... sinon je ne comprends pas ce que tu cherche à faire, mis à part te compliquer la vie énormément !! lol

Pour la Question 2)
En fait si tu as deux UserForms ayant chacun un Control MultiPages (un dans chaque UserForm) tu ne devrais pas avoir de souci majeur... les Deux Multipages devraient logiquement se nommer (par défaut) MultiPage1...

Maintenant si tu as deux UserForms mais que seul le UserForm1 contient un Control Multipage (donc pas de Multipage dans le UserForm2) mais que tu veux passer d'un onglet à un autre depuis un CommndButton placé dans le UserForm2, alors que le UserForm1 est encore actif (ç'est vraiment usine à gaz) il faut que tu ecrives dans le Code du Userform2 comme ceci :

Private Sub CommandButton1_Click()
UserForm1.MultiPage1.Value = 1 '<<<<<<<<< Plus Me.Multipage1...
End Sub

Mais étant donné que tu as en prime cette Variable "TheAgreedPage" tu t'es vraiment mises dans une usine à Gaz qui ne demande qu'à exploser !! car là il faut faire une Variable Publique Niveau Projet , c'est à dire plus du tout placée en top du Module du UserForm1 mais placée dans un Module Standard (toujours en haut) et délarée comme suit : (Public au liey de Dim)

Public TheAgreedPage As Byte '<<< NB Déclaration Public en Top de Module Standard...

Voilà ce devrait passer, mais c'est vraiment assez compliqué non seulement pour le coté programmation, mais surtout pour le coté pratique du UserForm pour tes utilisateurs/trices...

Bon courage et ...
Bon Appétit !
@+Thierry
 

Statistiques des forums

Discussions
312 715
Messages
2 091 263
Membres
104 826
dernier inscrit
SOUSMANE