Gérer l'Item recherché dans listbox

Bonjour,

Je veux ajouter un "X" à l'item sélectionné dans listbox ;

Mais j'ai un problème lors de la recherche d'un item. "X" n'est pas ajoutée à l'item sélectionné.

Merci

sans titre
Dim i As Long
With ListBox1
    For i = 0 To .ListCount - 1
    If .Selected(i) Then Range("F" & i + 2) = "X"
    Next
End With
25v1.xlsm (26.62 Ko)

Bonjour

A essayer :

Private Sub CommandButton1_Click()
Dim i As Long
Dim lig As Integer

With ListBox1
    lig = Sheets("Feuil1").Range("A:A").Find(.List(.ListIndex, 0), LookIn:=xlValues).Row
    Sheets("Feuil1").Range("F" & lig) = "X"
    .List(.ListIndex, 5) = "X"
End With
End Sub

Cordialement

Bonsoir,

Merci pour votre attention Dan

il y a un autre problème lors de la duplication de l'item; Le "X" est ajouté dans premier item.!

sans titre1

Merci

Re

A ce moment là, il faut tabler sur deux critères de manière à avoir une référence unique. Est-ce que la colonne B par exemple est unique. Donc peut-on avoir sur une même ligne une valeur identique entre colonnes A et B

Bonjour,

Selon comment la listbox est alimentée, il est possible d'ajouter le n° de ligne dans une colonne de celle-ci, colonne masquée...

EDIT : un exemple vite fait :

Option Explicit

Private Sub ListBox1_Click()
If ListBox1.ListIndex >= 0 Then MsgBox "LIGNE : " & ListBox1.List(ListBox1.ListIndex, 6)
End Sub

Private Sub UserForm_Activate()
Dim Lig As Long, Col As Integer
    With Me.ListBox1
        .ColumnCount = 7
        .ColumnWidths = "50;50;50;50;50;50;0"
        For Lig = 1 To 10
            .AddItem Cells(Lig, 1)
            For Col = 1 To 5
                .List(.ListCount - 1, Col) = Cells(Lig, Col)
            Next
            .List(.ListCount - 1, 6) = Lig
        Next
    End With
End Sub

Bonsoir Dan,

Peut-on définir deux critères ou plus ?

lig = Sheets("Feuil1").Range("A:A").Find(.List(.ListIndex, 0), LookIn:=xlValues).Row

Bonsoir pijaku,

Toujours un problème pour déterminer la ligne lors de la recherche.

sans titre2

Merci

Sans ton fichier,

Sans le code utilisé et qui plante,

Difficile de répondre...

Peut-on définir deux critères ou plus ?

Bien sûr. Par exemple colonne A et B. La seul chose à savoir est d'être sûr, que ces deux valeurs sur une ligne seront uniques. Dites moi si c'est le cas

Bonsoir,

Merci beaucoup Dan

Oui les deux valeurs sur une ligne est uniques.

re

Ok mais mais pour 3/B je vois deux fois la même ligne avec la valeur 26 en colonne B (Ligne 16 et 19)... C'est une erreur ?

Oui, une erreur

désolé

Essayez ceci

Private Sub CommandButton1_Click()
Dim lig As Integer
Dim cel As Range

With Sheets("Feuil1")

    For Each cel In .Range("A2:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
        If cel = Me.ListBox1.List(Me.ListBox1.ListIndex, 0) And cel.Offset(0, 1) = Me.ListBox1.List(Me.ListBox1.ListIndex, 1) Then
            lig = cel.Row: Exit For
        End If
    Next cel
    .Range("F" & lig) = "X"
End With
UserForm_Initialize

End Sub

Edit : j'ai modifié la fin du code

Oh Merci beaucoup Dan

Cordialement.

Rechercher des sujets similaires à "gerer item recherche listbox"