Peut-on dupliquer la page d'un MultiPage
Bonjour,
Je dois créer un MultiPage avec 4 pages pratiquement identiques, seuls 1 à 2 options / 10 changent à chaque page.
Est-il possible de créer une première page et de la dupliquer 3 fois avant d'effectuer les petites corrections nécessaires à chacune d'elles ?
Je pourrais bien entendu sélectionner toutes les contrôles et les copier-coller, mais leur mise en place n'est pas facile à faire exactement afin qu'on ne remarque pas que l'on change de page.
A vous relire.
Bonjour Yvouille
A ma connaissance, ce n'est pas possible à part avec un codage VBA pour replacer les contrôles à leur place mais une fois dupliqués
A+
Salut Bruno, merci pour ton aide ; c'est bien ce que je pensais, mais je voulais en avoir le cœur net.
Peux-tu encore m'aider sur cet autre problème :
Dans le fichier ci-joint, si la feuille ''Rapport de séjour'' est visible et que je lance la macro placée derrière le bouton ''Ajout manuel'' sur la feuille ''Liste des participants du jour'', ça ouvre mon formulaire ; la page C de mon MultiPage est visible et ses contrôles sont également visibles.
Si la feuille ''Rapport de séjour'' n'est pas visible, le MultiPage ne montre aucune page et il faut au prèalable cliquer un des boutons afin de rendre les pages A, B ou C visibles ou non. J'ai tenté de faire cela avec le premier bouton d'option ''Membre d'une autre section cantonale'', mais si ma page A est alors bien visible, je dois encore cliquer sur son onglet afin de rendre les contrôles également visibles !!
Sais-tu comment y remédier, comment faire afin que les contrôles de cette page soient immédiatement visibles ?
Amicalement.
Re,
Quel est ta problématique exacte
Car que ton multipage ne soit pas visible quand ta feuille n'e l'est pas, c'est normal
A+
Salut,
Il serait peut-être intéressant pour toi de te diriger plutôt vers un TabStrip et non pas un Multipage. Ceci te permettra de passer en Visible ou pas certains contrôles. les contrôles restent les même c'est la source de données qui change.
Bonjour Yves,
Une idée. Placez un bouton sur ton userform, coller le code ci-dessous et l'exécuter
Private Sub CommandButton1_Click()
Dim i As Byte
For i = 1 To 3
UserForm1.MultiPage1.Pages.Add
With MultiPage1
.Pages(MultiPage1.Value).Controls.Copy
.Pages(MultiPage1.Value + i).Paste
End With
Next i
End Sub
Ensuite tu supprimes le code
Amicalement
Bonjour tout le monde et merci pour vos nombreuses réponses.
@ Dan
Ton code fonctionne bien lorsque le formulaire est ouvert à l'écran, mais ce que j'avais demandé était de pouvoir dupliquer une feuille durant la création de ce UserFrom. Mais inutile de te casser plus la tête, car j'ai finalement fait toutes mes pages manuellement. Dans le fichier ci-joint, il y a un bouton qui permet de constater les essais que j'ai fait sur la base de ton idée.
@ Jean-Paul
J'avais imaginé cette solution, mais comme j'ai parfois des textes explicatifs sous la forme de Label, parfois des TextBox à la place, aux mêmes endroits, ça me semblais plus compliqué que des pages différentes. De plus, je veux pouvoir masquer les pages qui ne sont pas utiles à telles ou telles options et je ne sais pas si l'on peut masquer les onglets de ton contrôle d'onglets.
@ Bruno
J'ai refais un autre fichier peut-être plus explicatif.
Soit on lance un rapport de séjour, soit un rapport de randonnée. Selon l'un ou l'autre, les feuilles ''Rapport de séjour'' ou ''Rapport de randonnée'' se masquent ou s'affichent.
D'où mon passage :
If Sheets("Rapport de séjour").Visible = True Then
..
Else
..
End if
Si je lance un rapport de séjour depuis le feuille ''Liste des participants'', la feuille ''Rapport de séjour'' est visible, le UserForm s'ouvre, l'option logique ''Nouveau membre'' est activée et la page C est la seule visible, DE MEME QUE SES CONTROLES.
Si je lance un rapport de randonnée, la feuille ''Rapport de randonnée'' est visible, le UserFrom s'ouvre mais aucune option n'est activée, car toutes sont possibles. Pour l'exemple, j'ai placé un code derrière l'option ''Membre d'une autre section cantonale'' et lorsque je clique sur cette option, la page A devient bien visible, MAIS SES CONTROLES NON ! Je dois cliquer sur l'onglet A afin que les contrôles deviennent visibles.
Ce que je souhaiterais est que ces contrôles soient visibles en même temps que la page A lorsque je choisi cette option.
Voici un essai avorté en place :
Private Sub OptionButton1_Click()
MultiPage1.Page1.Visible = True
MultiPage1.Page1.Enabled = True
End Sub
Est-ce plus clair ?
Amicalement.
Salut Yvouille
Effectivement je comprends mieux et le souci est là
En fait les contrôles s'affichent quand la page à le focus, donc pour régler le problème (testé) il faut lui indiqué
Private Sub OptionButton1_Click()
Me.MultiPage1.Page1.Visible = True
Me.MultiPage1.Value = 0
End Sub
Yep
Wow, super !
Merci infiniment pour cette précieuse aide
Merci encore à tous les autres intervenants.