Macro lors changement onglet multipage

Y

YeTi

Guest
Bonjour,

J'ai un problème très bête que je n'arrive pas a résoudre... Dans un multipage qui comprend 10 onglets, j'aimerais que, si on passe de l'onglet 6 à l'onglet 5, tous les OptionButton deviennent visibles...

J'ai fait qqch comme ceci:

Code:
Private Sub MultiPage1_Change()
For I = 1 To 20
If MultiPage1('Page5').Select Then
Me.Controls('OptionButton' & I).Visible = True
End If
Next I
End Sub

Malheureusement ça ne marche pas du tout... Quelqu'un peut m'aider?
 

porcinet82

XLDnaute Barbatruc
Salut YeTi,

Un peut peux au pifomètre, moi j'ecrirais le code plutot comme ca :

Code:
Private Sub MultiPage1_Change()
If MultiPage1('Page5').Select Then
  For I = 1 To 20
    Me.Controls('OptionButton' & I).Visible = True
  Next I
End If
End Sub

Tiens moi au courant.

@+
 

porcinet82

XLDnaute Barbatruc
re,

Je viens de faire le test et ma proposition ne fonctionne pas, il faut faire d ela manière suivante:

Code:
Private Sub MultiPage1_Change()
Dim val As Variant

If UserForm1.MultiPage1.SelectedItem.Name = 'Page5' Then
    For I = 1 To 2
        UserForm1.Controls('OptionButton' & I).Visible = True
    Next I
End If
End Sub

@+

Eiditon : Salut Michelxld, je n'avais pas réactualisé depuis ma première reponse et je vois que tu ma devancés.
SAlut Robert, on s'est croisé ;)

Message édité par: porcinet82, à: 31/01/2006 11:52
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Yeti, Porcinet, bonjour le forum,

J'ai testé ce code et ça à lair de fonctionner :

Private Sub MultiPage1_Change()
If MultiPage1.SelectedItem.Name = 'Page5' Then
For I = 1 To 20
Me.Controls('OptionButton' & I).Visible = True
Next I
End If
End Sub

Édition :
Oops, bonjour Michel, Porcinet, toilette heu... Too late.

Message édité par: Robert, à: 31/01/2006 11:53
 
Y

YeTi

Guest
Merci à tous pour vos réponses.
Merci spécialement à Robert qui m'a proposé une solution qui marche parfaitement!

Ce forum est une référence en matière d'aide sur Excel! Vraiment bravo à toutes les personnes qui y contribuent!
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour Robert, Michel, Porcinet, Yeti, le Forum

Ayant à multes reprises travaillé sur des Contrôles ActiveX MultiPages je conseille grandement de ne pas se baser sur la Propriété 'SelectedItem.Name' on aura tôt fait e changer le libellé de l'onglet, voire même le faire en Run Time par programmation, alors que l'Index lui ne changera pas... Il faut juste se remémorer que, comme souvent en Info, nous sommes en base Zéro.

En effet il y a la Propriété Value qui est faite pour ceci et plus simple à gérer :

Private Sub MultiPage1_Change()
Dim i As Byte

Select Case Me.MultiPage1.Value
   
Case 0: MsgBox 'Onglet 1'
   
Case 1: MsgBox 'Onglet 2'
   
Case 2: MsgBox 'Onglet 3'
   
Case 3: MsgBox 'Onglet 4'
   
Case 4
       
For i = 1 To 20
            Me.Controls('OptionButton' & i).Visible =
True
       
Next i
   
Case 5: MsgBox 'Onglet 6'
End Select
End Sub


Et tant qu'à parler de Simplicité... Il y a l'évènement Click qui est basé sur la même 'Base 0' avec une Valeur Index 'Ready To Use'...

Private Sub MultiPage1_Click(ByVal Index As Long)
Dim i As Byte
   
If Index = 4 Then
       
For i = 1 To 20
            Me.Controls('OptionButton' & i).Visible =
True
       
Next i
   
End If
End Sub


Bon Appétit :)
[ol]@+Thierry[/ol]
 

Discussions similaires

Statistiques des forums

Discussions
312 613
Messages
2 090 233
Membres
104 458
dernier inscrit
Adeline43