XL 2013 Problème lors de la duplication d'un item dans listbox

  • Initiateur de la discussion Initiateur de la discussion anass1
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

anass1

XLDnaute Junior
Bonjour,

Je veux ajouter un "X" à l'item sélectionné dans listbox ,
Mais j'ai un problème lors de la duplication de l'item; Le "X" est ajouté dans les deux items.
Sans titre.png

Merci
 

Pièces jointes

  • 1.xlsm
    1.xlsm
    28.9 KB · Affichages: 16
Solution
Bonjour anass1, fanfan38, le forum,

Compliquer les choses entraîne souvent des erreurs !!!
VB:
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) Then Range("F" & i + 2) = "X"
    Next
End With
UserForm_Initialize
End Sub
Bonne journée.
Bonsoir,
Il y a quelque chose que je n'ai pas remarqué;
Lors du choix d'un item en double , Le "X" est ajouté dans premier item.!
Merci
Sans titre1.png


VB:
Dim i As Byte, j As Byte, nbl&, lig As Long
nbl = Range("A" & Rows.Count).End(xlUp).Row
With Me.ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) = True Then
          lig = Range("A2:F" & nbl).Cells.Find(what:=.List(i), lookat:=xlWhole).Row
          Range("F" & lig) = "X"
        End If
    Next i
End With
 
Bonjour anass1, fanfan38, le forum,

Compliquer les choses entraîne souvent des erreurs !!!
VB:
Private Sub CommandButton1_Click()
Dim i As Long
With ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) Then Range("F" & i + 2) = "X"
    Next
End With
UserForm_Initialize
End Sub
Bonne journée.
 
Bonjour,
Merci beaucoup job75
Il peut être utilisé pour le modification et la suppression ...?

VB:
Dim i As Long
With ListBox1
    For i = 0 To .ListCount - 1
       If .Selected(i) = True Then
        Range("A" & i + 2) = TextBox1
        Range("B" & i + 2) = TextBox2
        Range("C" & i + 2) = TextBox3
       End If
    Next
End With

Code:
For i = 0 To .ListCount - 1
       If .Selected(i) = True Then
Sheets("Feuil1").Rows(i + 2).Delete
       End If
    Next
 
Bonjour anass1, le fil,

Pour travailler facilement sur les plages quand la ListBox est filtrée le plus simple est de lui ajouter une 1ère colonne (qui sera masquée).

Cette colonne contiendra les numéros de lignes du tableau source, les récupérer ensuite est facile.

A+
 
Bonsoir job75 , le forum,

Si vous voulez dire cette méthode
Sans 4.png

C’est une bonne idée.
Mais nous allons le prendre ce code, Convient pour la recherche ?
VB:
Dim i As Byte, j As Byte, nbl&
nbl = Range("A" & Rows.Count).End(xlUp).Row
With Me.ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) = True Then
            For j = 2 To nbl
                If Cells(j, 1).Value = .List(i) Then
                    Rows(j).Select
                    Cells(j, 7).Value = "X"
                End If
            Next j
        End If
    Next i
End With
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour