Combobox1 et combobox2 et combobox

Geraldine

XLDnaute Occasionnel
Bonjour le forum,

J'ai un trou de mémoire comment on code
"With Combobox1 et la 2, 3 etc ..."

Private Sub CheckBox1_Click()
If CheckBox1 = True Then
With ComboBox1 & ComboBox2
.Enabled = False
.BackColor = RGB(245, 222, 179)
End With
End If
If CheckBox1 = False Then
With ComboBox1 & ComboBox2
.Enabled = True
.BackColor = RGB(255, 255, 255)
End With
End If
End Sub

merci
 

Pierrot93

XLDnaute Barbatruc
Re : Combobox1 et combobox2 et combobox

Bonjour Geraldine

essaye peut être le code ci dessous :

Code:
Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = False: _
            Ctrl.BackColor = RGB(245, 222, 179)
    Next Ctrl
Else
    For Each Ctrl In Me.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = True: _
            Ctrl.BackColor = RGB(255, 255, 255)
    Next Ctrl
End If
End Sub

bonne journée
@+
 

Geraldine

XLDnaute Occasionnel
Re : Combobox1 et combobox2 et combobox

bonjour pierrot93,

ce qui veut dire que MSForms.ComboBox regroupe l'ensemble des combobox .. c'est très bien c'est vrai mais le prob, c'est que j'ai 20 combobox (dans un cadre) à interdire la saisie mais deux, non dans le cadre mais dans la meme userform que je ne veut pas interdire.

et je rajoute (désolé), j'ai oublié que je veux aussi proteger 30 textbox toujours dans le cadre et non pas les 3 textbox hors cadre

@
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Combobox1 et combobox2 et combobox

Re

si les combo concernés sont dans un "Frame", modifies le code comme suit :

Code:
Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = False: _
            Ctrl.BackColor = RGB(245, 222, 179)
    Next Ctrl
Else
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = True: _
            Ctrl.BackColor = RGB(255, 255, 255)
    Next Ctrl
End If
End Sub

les combo qui ne sont pas dans le cadre ne seront pas affectés.

@+
 

Geraldine

XLDnaute Occasionnel
Re : Combobox1 et combobox2 et combobox

c'est super pierrot mais je ne veux pas être pénible mais ne puis-je pas rajouté un truc comme ça pour mes textbox

Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
For Each Ctrl In Me.Frame4.Controls
If TypeOf Ctrl Is MSForms.ComboBox & MSForms.TextBox Then Ctrl.Enabled = False: _
Ctrl.BackColor = RGB(245, 222, 179)
Next Ctrl
Else
For Each Ctrl In Me.Frame4.Controls
If TypeOf Ctrl Is MSForms.ComboBox & MSForms.TextBox Then Ctrl.Enabled = True: _
Ctrl.BackColor = RGB(255, 255, 255)
Next Ctrl
End If
End Sub

@
 

Pierrot93

XLDnaute Barbatruc
Re : Combobox1 et combobox2 et combobox

Re

il faut rajouter un test :

Code:
Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = False: _
            Ctrl.BackColor = RGB(245, 222, 179)
        If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = False
    Next Ctrl
Else
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = True: _
            Ctrl.BackColor = RGB(255, 255, 255)
        If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = True
    Next Ctrl
End If
End Sub

@+
 

Pierrot93

XLDnaute Barbatruc
Re : Combobox1 et combobox2 et combobox

ou bien :

Code:
Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Or TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = False: _
            Ctrl.BackColor = RGB(245, 222, 179)
    Next Ctrl
Else
    For Each Ctrl In Me.Frame1.Controls
        If TypeOf Ctrl Is MSForms.ComboBox Or TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = True: _
            Ctrl.BackColor = RGB(255, 255, 255)
    Next Ctrl
End If
End Sub

si tu veux appliquer les mêmes propriétés aux 2 types.
@+
 

Geraldine

XLDnaute Occasionnel
Re : Combobox1 et combobox2 et combobox

j'avais bêtement fait :

Private Sub CheckBox1_Click()
Dim Ctrl As Control
If CheckBox1 = True Then
For Each Ctrl In Me.Frame4.Controls
If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = False: _
Ctrl.BackColor = RGB(245, 222, 179)
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = False: _
Ctrl.BackColor = RGB(245, 222, 179)
Next Ctrl
Else
For Each Ctrl In Me.Frame4.Controls
If TypeOf Ctrl Is MSForms.ComboBox Then Ctrl.Enabled = True: _
Ctrl.BackColor = RGB(255, 255, 255)
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = True: _
Ctrl.BackColor = RGB(255, 255, 255)
Next Ctrl
End If
End Sub

mais c'est encore mieux comme cela

If TypeOf Ctrl Is MSForms.ComboBox Or TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Enabled = False: _
Ctrl.BackColor = RGB(245, 222, 179)[/


merci pierrot bonne journée
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Combobox1 et combobox2 et combobox

Bonjour Geraldine,

parce que dans un "multipage", il y a plusieurs pages, donc il faut également boucler dessus, regarde l'exemple ci dessous, à adapter à ton projet :

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

il faut donc rajouter une boucle supplémentaire.

reviens sur le fil en cas de soucis.

bonne journée
@+

Edition : attention dans ce code, il y a un test sur les cadres présents sur le multi page.
 
Dernière édition:

Geraldine

XLDnaute Occasionnel
Re : Combobox1 et combobox2 et combobox

re pierrot et désolé d'être incompétente, mais j'ai vraiment du mal à adapter quelque chose que je comprend à moitié ... et donc mon adaptation ne fonctionne pas

Code:
Private Sub TextBoxtxt_Change()
Dim p As Page, f As Control

If TextBoxtxt = "SUPPRIMER" Then
For Each p In Me.MultiPage1.Pages
    For Each f In Me.MultiPage1.Pages.Item(p.Name).Controls
        If TypeOf f Is MSForms.ComboBox Or TypeOf f Is MSForms.TextBox Then f.Enabled = False: _
            f.BackColor = RGB(245, 222, 179)
        Next f
Else
If TextBoxtxt = "MODIFIER" Then
TextBoxRef.Enabled = False
TextBoxRef.BackColor = RGB(245, 222, 179)
End If

End If
End Sub

@
 

Geraldine

XLDnaute Occasionnel
Re : Combobox1 et combobox2 et combobox

oh lala .... je t'arrete vite pierrot ... et merci encore pierrot je suis confuse

Code:
Private Sub TextBoxtxt_Change()
Dim p As Page, f As Control
If TextBoxtxt = "SUPPRIMER" Then
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
            f.Enabled = False: _
            f.BackColor = RGB(245, 222, 179)
'        End If
    Next f
Next p

Else
If TextBoxtxt = "MODIFIER" Then
TextBoxRef.Enabled = False
TextBoxRef.BackColor = RGB(245, 222, 179)
End If

End If
End Sub
 
Dernière édition:

Discussions similaires

Réponses
0
Affichages
153

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet