Programmation combobox

Résolu
Bonjour,

J'aimerais savoir si il est possible de définir la rowsource d'une combobox à partir d'une checkbox.
Par exemple, j'ai 10 checkbox et 1 combobox : si la checkbox 1 est cochée la rowsource de la combobox est feuil1!B$40:B$55 sinon si la checkbox 2 est cochée la rowsource de la combobox est feuil2!B$40:B$50... ainsi de suite!

D'ailleurs je pense qu'il faudrait plutot faire ca avec des optionbutton pour que l'utilisation ne puisse cocher qu'une seule case à la fois? qu'en pensez vous?

J'espère que quelqu'un pourra m'aider.
D'avance merci

3 réponses

  1. Contributeur
    Peut ^tre + simple

    Private Sub OptionButton1_Click()
         ComboBox1.RowSource = "'feuil1'!A1:A10"
    End Sub
    Private Sub OptionButton2_Click()
         ComboBox1.RowSource = "'feuil1'!B1:B10"
    End Sub
    
    'etc


    si le nom des onglets comporte plusieurs mots, il faut encadrer le nom par des apostrophes

    si il y a beaucoup d'option buttons le + élégant serait un de passer par un module de classe
    1. Contributeur
      Bonjour,

      Tes combos et checkbox se touvent sur 1 feuille ou 1 userform ?

      effectivement il vaut mieux des optionsbuttons....
      Michel
      1. Je viens de tout transformer en optionbutton
        Tout se trovue sur une userform
      2. Contributeur
        Le + simple pour t'aider:
        pour joindre une pièce
        mettre un extrait du classeur avec l'userform sans données confidentielles en pièce jointe (format XL97-2003) sur
        http://cijoint.fr/
        et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse

        D'avance merci
      3. je ne peux pas c'est un fichier entreprise.
        Je veux juste le code qui relie l'un à l'autre...et savoir si je dois le mettre à l'activate de la userform ou ailleurs!
    2. Finalement j'ai trovuer toute seule comme une grande. Ci-dessous le code, si ca peut aider d'autres personnes ;-)

      Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
      If optionbutton1.Value = True Then
      défauts.RowSource = "feuil1!AK$1:AK$9"
      ElseIf optionbutton2.Value = True Then
      défauts.RowSource = "feuil2!AK$1:AK$4"
      ElseIf optionbutton3.Value = True Then
      défauts.RowSource = "feuil3!AK$1:AK$23"
      End If
      End Sub