Bonjour,
Je suis novice, donc souvent pour mes besoins je récupère du code approchant en ligne, mais pour le mettre à niveau, cela devient compliqué pour l'adapter à mon contenu.
Le soucis est ci-dessous avec la commande ActiveCell.column = 41 qui signifie (de ce que j'en comprends) l'endroit (cellule) ou s'applique ce code, et donc l'apparition de la listbox a choix multiples.
En fait avec cette commande dans mon tableau cela prend toute la colonne 41 y compris le Titre et une autre au dessus (deux premières lignes), ou je ne veux pas que ça s'applique.
Car par exemple je ne peux plus appliquer de filtres après dans la colonne en question....
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Column = 41 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 If
Je ne sais pas si je me fais bien comprendre, j'espère !!