Liste multiselection userform

Bonjour,

suite à mon dernier sujet j'ai une dernière modification à apporter sur le même excel.

J'aimerai dans mon userform pour la dernière question qui est "As tu fermé une ou des portes supplémentaires ?" qu'une liste déroulante à choix multiple s'affiche et en fonction des choix me colorent les cases sélectionner c'est a dire A B C D E F. Actuellement j'ai mis un code qui m'affiche bien la liste déroulante et je vouler faire pointer sur la case mais cela ne fonctionne pas vraiment...

Je suis désolée mais j'essaye de m'autoformer et j'ai encore beaucoup à apprendre sur VBA.

19classeur1.xlsm (19.92 Ko)

Bonjour

Actuellement j'ai mis un code qui m'affiche bien la liste déroulante et je vouler faire pointer sur la case mais cela ne fonctionne pas vraiment...

Ce n'est pas clair!

Et le code que je vous ai donné précédemment n'est plus correct.

Click droite sur A2, P2 a la croix
vous choisissez B dans votre liste déroulante
Quel est le résultat attendu ?

Rem :

votre code intialize comme ceci (je vous l'avais déjà écrit de supprime l'instruction Retour)

Private Sub UserForm_Initialize()
Dim i As Byte
For i = 2 To 7
    ComboBox1.AddItem Cells(1, i)
Next i
End Sub

J'ai à nouveau effectué la modification que vous venez de dire mais pourquoi votre code n'était plus correct ? D'ailleurs j'avais modifié la mettre "K" sur cette ligne dans le premier excel envoyé "col = WorksheetFunction.Match("X", Range("K" & numligne & ":R" & numligne), 0)" puisque dans la question il ne m'affiche pas la bonne porte mais en modifiant c'est la couleur qu'il ne me met plus au bon endroit ...

Pour mon nouveau sujet ici je voudrais une liste déroulante à multiple choix qui en fonction de la selection me colorie les cases correspondantes , j'ai découvert que je dois utiliser une textbox et non une combobox pour un choix multiple c'est bien ça ? mais ensuite je ne vois pas comment faire

Par exemple si je clique sur A2, je devrai avoir la case G2 de colorié suite à la première question et pour la question additionnelle si je sélectionne dans ma liste déroulante porte "A et C" j'aimerai que les cases B2 et D2 soit coloriés aussi en vert.

21classeur1.xlsm (20.46 Ko)

Dites moi si je ne suis toujours pas clair dans ce que je recherche ?

mais pourquoi votre code n'était plus correct ? D'ailleurs j'avais modifié la mettre "K" sur cette ligne dans le premier excel envoyé "col = WorksheetFunction.Match("X", Range("K" & numligne & ":R" & numligne), 0)" puisque dans la question il ne m'affiche pas la bonne porte mais en modifiant c'est la couleur qu'il ne me met plus au bon endroit ...

Dans votre fichier posté vous aviez remplacé K par J dans la définition de Col = worksheetfunction...
L'erreur vient de cette ligne où il faut mettre Col + 1 au lieu de col seul -->

porte = Cells(1, col + 1).Value

Pour mon nouveau sujet ici je voudrais une liste déroulante à multiple choix qui en fonction de la selection me colorie les cases correspondantes , j'ai découvert que je dois utiliser une textbox et non une combobox pour un choix multiple c'est bien ça ?

Ce n'est pas une textbox mais une listbox.
La réponse à votre question est Oui. Vous pouvez aussi ajouter des cases à cocher si vous voulez. Pour ce faire, sélectionnez la listbox puis allez dans les propriétés de l'objet et mettez la propriété Liststyle sur "1-fmstryleoption"

Par exemple si je clique sur A2, je devrai avoir la case G2 de colorié suite à la première question

dans votre fichier G2 ?? ce n'est pas F2 plutôt ?

Sinon pour la couleur des options sélectionnées dans la listbox, toujours en vert ?

D'accord merci je vais modifier ceci.

Non c'est bien la colonne G2 qui devient verte à la première question :)

Sinon pour la couleur des options sélectionnées dans la listbox oui toujours en vert

et si jamais je veux que ce soit d'une autre couleur je changerai le RGB ?

Sinon pour la couleur des options sélectionnées dans la listbox oui toujours en vert

et si jamais je veux que ce soit d'une autre couleur je changerai le RGB ?

Oui exact.
Voici votre code :

Private Sub OptionButton1_Click() 'oui
Dim numligne As Integer
Dim col As Byte, i As Byte

numligne = ActiveCell.Row
col = WorksheetFunction.Match("X", Range("K" & numligne & ":R" & numligne), 0)

Select Case Me.Label1.Caption
    Case "Porte fermé ?" 'si on excute la macro ci dessous
        Range("A" & numligne).Interior.Color = RGB(226, 239, 218)
        porte = Cells(1, col + 1).Value
        Passage "Est-ce que tu as fermé la porte " & porte & " ?", Me.OptionButton1

    Case "Est-ce que tu as fermé la porte " & porte & " ?"
        Range("B" & numligne & ":I" & numligne).Interior.Color = xlNone
        Range("A" & numligne).Offset(0, col).Interior.Color = RGB(0, 154, 0)
         Passage "As tu fermé une ou des portes supplémentaires ?", Me.OptionButton1

    Case "As tu fermé une ou des portes supplémentaires ?"
        Passage "lesquelles ?", Me.OptionButton1
        For i = 0 To ListBox1.ListCount - 1
            If ListBox1.Selected(i) Then
                Cells(numligne, i + 2).Interior.Color = RGB(0, 154, 0)
            End If
        Next i
End Select
End Sub

Crdlt

Merci pour votre temps

Rechercher des sujets similaires à "liste multiselection userform"