Efface des Combo par une combo

MacMac

XLDnaute Occasionnel
Bonsoir,

Voila je cherche a faire une Boucle pour effacer des ComboBox par une ComboBox quand je lui met une valeur dedans

mes ComboBox sont nome de telle sorte ComboBox_G22 a ComboBox_W22 celle a videz avec la ComboBox_F22 dont vais me servir pour videz

Merci de Me donnez une aide
 

Excel-lent

XLDnaute Barbatruc
Re : Efface des Combo par une combo

Salut MacMac,

Après plusieurs recherche sur différents sites/forum, il ressort que :
-> on peut rendre "invisible" une ComboBox qu'on ne veut plus :

ComboBox_G22.Visible = False

-> on peut supprimer une ComboBox, lorsqu'elle a été créé au préalable par ton code VBA :
Controls.Remove "ComboBox_G22

Mais si ta ComboBox a été créé manuellement via l'éditeur, c'est impossible.

Mais peut-être que je n'ai pas suffisamment cherché?

Bonne fin de soirée
 

MacMac

XLDnaute Occasionnel
Re : Efface des Combo par une combo

Bonjour le Forum

Merci Excel-lent pour tes suggestions mais je vient de trouvez une solution que je possédez ma question et plus compliquez en faite essayer d’alléger se morceau de code car je possede plus de 20 morceaux de telle et sa commence a grimper

Private Sub ComboBox_F25_Change()
ComboBox_G25 = ""
ComboBox_H25 = ""
ComboBox_I25 = ""
ComboBox_J25 = ""
ComboBox_K25 = ""
ComboBox_L25 = ""
ComboBox_M25 = ""
ComboBox_N25 = ""
ComboBox_O25 = ""
ComboBox_P25 = ""
ComboBox_Q25 = ""
ComboBox_R25 = ""
ComboBox_S25 = ""
ComboBox_T25 = ""
ComboBox_U25 = ""
ComboBox_V25 = ""
ComboBox_W25 = ""

End Sub


est ce possible de le faire en boucle si oui comment car je ne comprend pas toujours tout dans les boucle
merci
macmac....
 

Bebere

XLDnaute Barbatruc
Re : Efface des Combo par une combo

bonjour Excel_lent,Macmac
une idée à creuser

Code:
d = Asc("G")
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.ComboBox Then
If InStr(ctrl.Name, Chr(d)) > 0 Then
ctrl.Value = ""
d = d + 1
End If
End If
Next

à bientôt
 

Bebere

XLDnaute Barbatruc
Re : Efface des Combo par une combo

MacMac
un autre exemple
à tester avec des combobox dont le bnom contient F à J

Code:
Private Sub ComboBox_F25_Change()
    If Me.ComboBox_F25 <> "" Then
        d = Asc("G")    'la 1ère à effacer
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is MSForms.ComboBox Then
                If InStr(ctrl.Name, Chr(d)) > 0 Then
                    ctrl.Value = ""
                    d = d + 1
                End If
            End If
        Next
    End If
End Sub


Private Sub UserForm_Initialize()

    d = Asc("G")'début
    f = Asc("J")'fin
    For i = d To f
        For Each ctrl In Me.Controls
            If TypeOf ctrl Is MSForms.ComboBox Then
                If InStr(ctrl.Name, Chr(i)) > 0 Then
                    ctrl.AddItem Chr(i)
                    ctrl.ListIndex = 0
                End If
            End If
        Next
    Next
    Me.ComboBox_F25.AddItem "Efface"
End Sub
 

Discussions similaires

Réponses
16
Affichages
557

Statistiques des forums

Discussions
312 451
Messages
2 088 517
Membres
103 873
dernier inscrit
Sabin