Comportement erratique d'une liste de choix multiples
Bonjour,
Je reviens ici pour avoir conseils et comprendre le comportement assez bizarre de mes listes de choix multiples.
En fait, quand je vais sur la cellule active, la liste souvent s'affiche pas au on endroit (souvent plus bas et à droite), et lorsque je selectionne donc plusieurs valeurs, cela fait comme des "sauts" intempestifs, impossible de sectionner la bonne valeur, je pense que c'est lié au fait aussi que la cellule s'agrandit au fur et à mesure que je rajoute des entrées dedans !???
Voici le code :
Private Sub ListBox1_Change()
If bTest Then
Exit Sub
End If
sTemp = ""
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
sTemp = sTemp & Me.ListBox1.List(i) & "-"
End If
Next
On Error Resume Next
Err.Clear
sTemp = VBA.Left(sTemp, VBA.Len(sTemp) - 1)
If Err.Number <> 0 Then
sTemp = ""
End If
On Error GoTo 0
ActiveCell = sTemp
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 41 And Target.Row > 2 Then
With Me.ListBox1
.MultiSelect = fmMultiSelectMulti
.ListStyle = fmListStyleOption
.Height = 150
.Width = 100
.Top = ActiveCell.Top
.Left = ActiveCell.Offset(0, 1).Left
.Visible = True
End With
On Error Resume Next
'i = Application.WorksheetFunction.Match(Cells(ActiveCell.Row, 2), Worksheets("Donnée").Range("Familles"), 0) - 1
i = 0
If Worksheets("Feuil3").Range("O1").Offset(0, i).End(xlDown).Row = 2 Then
Me.ListBox1.List = Array(Worksheets("Feuil3").Range(Worksheets("Feuil3").Range("O1").Offset(1, i), _
Worksheets("Feuil3").Range("O1").Offset(0, i).End(xlDown)).Value, "")
Else
Me.ListBox1.List = Worksheets("Feuil3").Range(Worksheets("Feuil3").Range("O1").Offset(1, i), _
Worksheets("Feuil3").Range("O1").Offset(0, i).End(xlDown)).Value
End If
On Error GoTo 0
a = VBA.Split(ActiveCell, "-")
If UBound(a) >= 0 Then
For i = 0 To Me.ListBox1.ListCount - 1
If Not IsError(Application.Match(Me.ListBox1.List(i), a, 0)) Then
bTest = True
Me.ListBox1.Selected(i) = True
bTest = False
End If
Next
End If
Else
Me.ListBox1.Visible = False
End Ifb
boss_68Membre impliqué
- Messages
- 1'089
- Excel
- 2021 FR
- Inscrit
- 17/12/2018
- Emploi
- Technicien maintenance robot Retraité
Bonsoir,
Il serait plus simple pour les intervenants d'avoir un fichier anonymisé pour comprendre ton problème qu'uniquement ton code vba
Slts