multipage et frame

moniteur41

XLDnaute Nouveau
bonjour à tous.
aprés avoir parcouru le forum, je n'ai pas trouvé d'idée pour résoudre mon prob. Alors voilà je lance une bouteille à la mer.
J'ai une userform, avec dessus un multipage de 7 pages. Chaque page posséde 4 frames avec 4 option button.
j'ai réussi a écrire la routine pour savoir quel optBut. était activé a l'intérieure de la frame. maintenant je voudrais que quelque soit la frame je puisse appliquer la routine. ( pour l'instant je ne peut le faire qu'avec la frame 3)
Ceal fait deux jour que je cogite rien ne marche .
Quelqu'un aurait une idée:D
merci de votre lecture.

voici le bout de code:
j'ai mis entre guillemets le code que j'essaye de faire fonctionner
' AFFICHAGE OBJECTIF


Private Sub CommandButton3_Click()
Dim CtrlOption As Control
Dim CtrlOptionButton As Control
Dim CtrlFrame As Control

' For Each CtrlFrame In MultiPage1.Pages

' If TypeOf CtrlFrame.Controls Is msforms.OptionButton Then GoTo suite
' GoTo fin1
'suite:
'Boucle sur tous les contrôles de la frame
For Each CtrlOption In Frame3.Controls
'Vérifie qu'il s'agit d'un OptionButton
If TypeOf CtrlOption Is msforms.OptionButton Then GoTo suite1
GoTo fin
suite1:
'Si c'est le meme optionbutton qui est select. alors on sort
If (CtrlOption.Object.Value = True) And (CtrlOption.Font.Bold = True) Then GoTo fin1
' sinon on cherche quel était le dernier et on enleve le gras
For Each CtrlOptionButton In Frame3.Controls
If CtrlOptionButton.Font.Bold = True Then
CtrlOptionButton.Font.Bold = False
Exit For
End If
Next CtrlOptionButton

'Ici on va mettre en gras l'optionbutton select.
If CtrlOption.Object.Value = True Then
CtrlOption.Object.Font.Bold = True
Exit For
End If
Next CtrlOption
'Exit For
fin1:
' Next CtrlFrame


fin:
End Sub
 

Pierrot93

XLDnaute Barbatruc
Re : multipage et frame

Bonjour Moniteur,

je ne sais pas si cela peut t'aider, code ci dessous boucle sur toutes les pages d'un multipage, pour chaque page, boucle sur tous les controles, détecte les frame boucle à nouveau sur les controles...A voir et à adapter.

Code:
Private Sub CommandButton1_Click()
Dim p As Page, f As Control, c As Control
For Each p In Me.MultiPage1.Pages
    For Each f In Me.MultiPage1.Pages.Item(p.Name).Controls
        If TypeOf f Is MSForms.Frame Then
            For Each c In f.Controls
                If TypeOf c Is MSForms.OptionButton Then MsgBox c.Name
            Next c
        End If
    Next f
Next p
End Sub

bonne journée
@+
 

MichelXld

XLDnaute Barbatruc
Re : multipage et frame

bonsoir Monieur41, bonsoir cher Pierrot


Tu peux tester

Code:
'--------------------------------------
'dans un module standard
Option Explicit
 
Public Collect As Collection
'--------------------------------------


Code:
'--------------------------------------
'à placer dans le module objet du UserForm
Option Explicit
 
Private Sub UserForm_Initialize()
    Dim Obj As Control, frmObj As Control
    Dim Cl As Classe1
    Dim i As Integer
 
 
    Set Collect = New Collection
 
    'Boucle sur les pages du Multipage
    For i = 1 To Me.MultiPage1.Pages.Count
        'Boucle sur les contrôles de chaque page
        For Each frmObj In Me.MultiPage1.Pages(i - 1).Controls
            'Verifie s'il s'agit d'un Frame
            If TypeOf frmObj Is MSForms.Frame Then
                'boucle sur les objets du Frame
                For Each Obj In frmObj.Controls
                    'verifie s'il s'agit d'un optionButton
                    If TypeOf Obj Is MSForms.OptionButton Then
                        Set Cl = New Classe1
                        Set Cl.Opt = Obj
                        Collect.Add Cl
                    End If
                Next Obj
            End If
        Next frmObj
    Next i
End Sub
'--------------------------------------


Code:
 '--------------------------------------
'dans un module de classe nommé "Classe1"
Option Explicit
 
Public WithEvents Opt As MSForms.OptionButton
 
'exemple pour gérer l'evenement clic de l'objet optionButton
Private Sub Opt_Click()
    MsgBox Opt.Caption & ": " & Opt.Value & vbCrLf & _
        Opt.Parent.Caption & vbCrLf & _
        Opt.Parent.Parent.Caption
End Sub


Bon week end
MichelXld
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87