Déselectionner dans un formulaire [Résolu/Fermé]

Signaler
Messages postés
61
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
17 mai 2019
-
andy2092
Messages postés
61
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
17 mai 2019
-
Bonjour,

J'ai créé un formulaire et une listbox multiselect qui contient plusieurs données. J'aimerai créé un bouton qui permet de tout désélectionner.

Comment puis-je procéder ?

Merci

16 réponses

Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3758
Bonjour,

Le code de ton bouton à adapter :
    For idx = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(idx) = True Then ListBox1.Selected(idx) = False
    Next idx
andy2092
Messages postés
61
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
17 mai 2019

Je procède de deux façons :

1. Private Sub UserForm_Initialize()
'Row source
Set plage = [B3:B100]
'Exclure Cellule Total et Ligne Vierge
For Each c In plage
If UCase(c.Value) Like UCase("*TOTAL*") = False And _
c.Value <> "Ligne Vierge" Then
Me.ListBox1.AddItem c.Value
End If
Next c

End Sub

2. J'utilise la section "Row Source" dans le Menu de la listbox

Le problème apparaît sur les deux.
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3758
Bonsoir,

Je viens d'essayer avec tes 2 méthodes et je n'ai jamais de sélections.

Utilises tu la méthode hide ?
andy2092
Messages postés
61
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
17 mai 2019

Bonjour,

Non je n'utilise pas la méthode hide.

Voici les différents codes que j'utilise sur le UserForm en plus de mon précédent commentaire :

Private Sub CommandButton1_Click()
Dim i As Byte
Dim val As String
Dim myCell, ligne

'Message pour sélectionner la ligne
'Type 8 = Référence de cellule, sous la forme d'un objet Range
Set myCell = Application.InputBox( _
prompt:="Sélectionnez une cellule", Type:=8)
ligne = myCell.Row

'Boucle sur les éléments de la listbox
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
val = ListBox1.List(i)
If val = "" Then Exit Sub
'Insertion en fonction de la cellule choisie
Rows(ligne & ":" & ligne).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.FormulaR1C1 = val
ligne = ligne + 1
End If
Next i
End Sub

Private Sub CommandButton2_Click()
'Fermer le formulaire
Unload UserForm1
End Sub


Private Sub CommandButton3_Click()
'Tout désélectionner
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then ListBox1.Selected(i) = False
Next i
End Sub

Private Sub UserForm_Layout()
UserForm1.BackColor = RGB(0, 73, 126)
End Sub
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3758
Bonjour,

Ton problème est totalement improbable avec ce que tu dis.

Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels mais avec le formulaire, ce serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur http://cjoint.com/ (mode d'emploi) et tu mets ici le lien obtenu.
andy2092
Messages postés
61
Date d'inscription
dimanche 13 mai 2018
Statut
Membre
Dernière intervention
17 mai 2019

Pour des raisons confidentielles il sera difficile de le partager car il y a beaucoup de données. Je vais essayer de régler le problème en interne. Il est effectivement très bizarre et incohérent !

Merci quand même ;)