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.
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 SubJ'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.
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).ValuePour 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 SubCrdlt