Liste déroulante à selection multiple !
Résolu
florange
-
florange Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
florange Messages postés 16 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais créer une liste déroulante à partir de laquelle on pourrait cocher plusieurs valeurs à la fois. Et bien sûr la cellule doit afficher toutes les valeurs que l'on a coché séparé par un "/" ou un "&".
Ma liste déroulante contiendrait 63 valeurs; vous comprenez que je ne peux pas faire manuellement toutes les combinaisons possibles, d'où cette liste déroulante à choix multiple.
Et voici le code que j'ai rentré :
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ComboBox1.List(i) & " & "
End If
Next i
If ValeurARetourner = "" Then
MsgBox "Sélection obligatoire ou fermez avec la croix"
Exit Sub
End If
ActiveCell = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
ActiveCell.Offset(1, 0).Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub UserForm1_Initialize()
Dim i As Integer, Derlig As Integer
ComboBox1.Clear
Derlig = Sheets("EVENT").Cells(65536, 2).End(xlUp).Row
For i = 1 To Derlig
ComboBox1.AddItem Cells(i, 2).Value
Next i
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.Selected(i) = True Then
ComboBox1.Selected(i) = False
End If
Next i
End Sub
Sauf que je reconcontre une erreur pour la ligne suivante :
If ComboBox1.Selected(i) = True Then
En effet il m'affiche "Method or data member not found"
Voilà et Merci pour votre réponse.
Je voudrais créer une liste déroulante à partir de laquelle on pourrait cocher plusieurs valeurs à la fois. Et bien sûr la cellule doit afficher toutes les valeurs que l'on a coché séparé par un "/" ou un "&".
Ma liste déroulante contiendrait 63 valeurs; vous comprenez que je ne peux pas faire manuellement toutes les combinaisons possibles, d'où cette liste déroulante à choix multiple.
Et voici le code que j'ai rentré :
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Byte
Dim ValeurARetourner As String
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.Selected(i) = True Then
ValeurARetourner = ValeurARetourner & ComboBox1.List(i) & " & "
End If
Next i
If ValeurARetourner = "" Then
MsgBox "Sélection obligatoire ou fermez avec la croix"
Exit Sub
End If
ActiveCell = Left(ValeurARetourner, Len(ValeurARetourner) - 3)
ActiveCell.Offset(1, 0).Activate
End With
UserForm1.Hide
Unload UserForm1
End Sub
Private Sub UserForm1_Initialize()
Dim i As Integer, Derlig As Integer
ComboBox1.Clear
Derlig = Sheets("EVENT").Cells(65536, 2).End(xlUp).Row
For i = 1 To Derlig
ComboBox1.AddItem Cells(i, 2).Value
Next i
For i = 0 To ComboBox1.ListCount - 1
If ComboBox1.Selected(i) = True Then
ComboBox1.Selected(i) = False
End If
Next i
End Sub
Sauf que je reconcontre une erreur pour la ligne suivante :
If ComboBox1.Selected(i) = True Then
En effet il m'affiche "Method or data member not found"
Voilà et Merci pour votre réponse.
A voir également:
- Liste déroulante à sélection multiple excel
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Paris multiple 2/6 explication ✓ - Forum Loisirs / Divertissements
- Word et excel gratuit - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
3 réponses
Salut,
Je t'ai retrouvé...
1- es tu sur(e) qu'il s'agisse d'une Combobox? Ce serait pas plutôt une ListBox?
2- Si tel est le cas, la syntaxe est :
Je t'ai retrouvé...
1- es tu sur(e) qu'il s'agisse d'une Combobox? Ce serait pas plutôt une ListBox?
2- Si tel est le cas, la syntaxe est :
For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & " End If Next i
Pour les deux options listbox ou combobox, voici :
Le Fichier Exemple avec les 2 cas
Les deux codes :
AVEC LISTBOX ET UN BOUTON :
AVEC COMBOBOX ET DEUX BOUTONS :
Le Fichier Exemple avec les 2 cas
Les deux codes :
AVEC LISTBOX ET UN BOUTON :
Option Explicit Private Sub CommandButton1_Click() Dim i As Byte Dim ValeurARetourner As String For i = 0 To ListBox1.ListCount - 1 If ListBox1.Selected(i) = True Then ValeurARetourner = ValeurARetourner & ListBox1.List(i) & " & " End If Next i If ValeurARetourner = "" Then MsgBox "Sélection obligatoire ou fermez avec la croix" Exit Sub End If ActiveCell = Left(ValeurARetourner, Len(ValeurARetourner) - 3) ActiveCell.Offset(1, 0).Activate UserForm1.Hide Unload UserForm1 End Sub Private Sub UserForm_Initialize() Dim i As Integer, Derlig As Integer ListBox1.Clear ListBox1.MultiSelect = fmMultiSelectMulti With Sheets("EVENT") Derlig = .Range("B" & Rows.Count).End(xlUp).Row For i = 1 To Derlig ListBox1.AddItem .Cells(i, 2).Value Next i End With End Sub
AVEC COMBOBOX ET DEUX BOUTONS :
Option Explicit Dim ValeurARetourner As String Private Sub CommandButton1_Click() If ComboBox1 <> "" Then ValeurARetourner = ValeurARetourner & ComboBox1 & " & " Else MsgBox "Sélection obligatoire ou fermez avec la croix" Exit Sub End If End Sub Private Sub CommandButton2_Click() ActiveCell = Left(ValeurARetourner, Len(ValeurARetourner) - 3) ActiveCell.Offset(1, 0).Activate UserForm2.Hide Unload UserForm2 End Sub Private Sub UserForm_Initialize() Dim i As Integer, Derlig As Integer ComboBox1.Clear With Sheets("EVENT") Derlig = .Range("B" & Rows.Count).End(xlUp).Row For i = 1 To Derlig ComboBox1.AddItem .Cells(i, 2).Value Next i End With End Sub
Merci ça fonctionne ....
Les 2 codes fonctionnent très bien!
maintenant à moi de le réadapter dans le vrai fichier où en fait la liste des départements se trouve dans une autre feuille que celle où l'on effectue la saisie.
A priori il doit pas y avoir de problèmes mais qui sait...
il se peut que je revienne encore vers toi ;)
Merci encore
Les 2 codes fonctionnent très bien!
maintenant à moi de le réadapter dans le vrai fichier où en fait la liste des départements se trouve dans une autre feuille que celle où l'on effectue la saisie.
A priori il doit pas y avoir de problèmes mais qui sait...
il se peut que je revienne encore vers toi ;)
Merci encore
Peut-être que c'est ça l'erreur non ?!
Merci
Peux tu nous passer une copie de ton fichier que je regarde ton UserForm?
Merci
pour joindre un fichier :
mettre le classeur sans données confidentielles en pièce jointe sur
https://www.cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse *
*copyright Michel_m