Ajouter un nouveau champs sur une même ligne dans une ListBo

Bonjour

Dans ma ListBox je voudrais visualiser un nouveau champs qui correspond à la colonne 32

Si je rajoute

ListBox1.AddItem Cells(L, 32)

La visualisation s’opère bien, mais sur la ligne suivante.

Alors que je voudrais que cela apparaisse après les 2 premiers champs sur la même ligne

Quelle serait la bonne commande ?

Merci pour votre aide

Private Sub TextBox1_Change()
  If TextBox1 = "" Then Exit Sub
  Dim Li As Long, Ln As Long
  With ListBox1
    .Clear
    For L = 2 To Cells(Rows.Count, 2).End(xlUp).Row
      If Cells(L, 2) Like "*" & TextBox1 & "*" Then
        If Left(Cells(L, 1), 5) <> "Titre" Then
          ListBox1.AddItem Cells(L, 2)
          For Li = L To 1 Step -1
            If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2): Exit For
          Next
        End If
      End If
    Next
  End With
    Ini = True
End Sub

Bonsoir

Sans test

    Private Sub TextBox1_Change()
      If TextBox1 = "" Then Exit Sub
      Dim Li As Long, Ln As Long
      With ListBox1
        .Clear
        For L = 2 To Cells(Rows.Count, 2).End(xlUp).Row
          If Cells(L, 2) Like "*" & TextBox1 & "*" Then
            If Left(Cells(L, 1), 5) <> "Titre" Then
              ListBox1.AddItem Cells(L, 2)
              For Li = L To 1 Step -1
                If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2): .List(.ListIndex + Ln, 2) = Cells(Li, 32): Exit For
              Next
            End If
          End If
        Next
      End With
        Ini = True
    End Sub

Si pas ça, joins ton fichier

Bonsoir

Merci pour ton aide

Mais ce n’est pas çà

J’avais déjà tenté cela, mais cela ne marchais pas

Comme je vois que tu pense à la même solution, j’ai essayé d’aller plus en avant, sans résultat malheureusement.

Cependant cela m’a permit de voir que l’erreur est tout autre

Si je mets

If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2): .List(.ListIndex + Ln, 2) = Cells(Li, 2): Exit For

Je vois que je visualise bien 3 champs, mais évidement 2 fois le même champ (Soit le contenu de la cellule 2)

Dès que je mets un autre champs, cela n’apparait pas

Bonsoir

christG a écrit :

ListBox1.AddItem Cells(L, 32)

remplaces Li par L

    Private Sub TextBox1_Change()
      If TextBox1 = "" Then Exit Sub
      Dim Li As Long, Ln As Long
      With ListBox1
        .Clear
        For L = 2 To Cells(Rows.Count, 2).End(xlUp).Row
          If Cells(L, 2) Like "*" & TextBox1 & "*" Then
            If Left(Cells(L, 1), 5) <> "Titre" Then
              ListBox1.AddItem Cells(L, 2)
              For Li = L To 1 Step -1
                If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2)[surligner=#FFFF40]: .List(.ListIndex + Ln, 2) = Cells(L, 32): Exit For
              Next
            End If
          End If
        Next
      End With
        Ini = True
    End Sub

Avec ton fichier cela serait plus facile

Re,

Génial cela fonctionne

Mais j'avoue ne pas comprendre pourquoi L au lieu de Li

Pour essayer de comprendre, j'ai ajouté un 4ème champs

Soit

If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2): .List(.ListIndex + Ln, 2) = Cells(L, 32): .List(.ListIndex + Ln, 2) = Cells(L, 30): Exit For

Pas de bug, mais le 4ème champ n'apparait pas

Bonsoir

Il faut que tu augmentes le numéro du champ aussi

    If Left(Cells(Li, 1), 5) = "Titre" Then Ln = Ln + 1: .List(.ListIndex + Ln, 1) = Cells(Li, 2): .List(.ListIndex + Ln, 2) = Cells(L, 32): .List(.ListIndex + Ln, [surligner=#00FFFF]3) = Cells(L, 30): Exit For

Bonjour

Merci pour cette nouvelle réponse

Et surtout merci pour m’avoir donné la solution à mon problème avec en prime les explications adéquates.

Juste une dernière question si possible (ou plutôt 2) :

A quoi servent les 2 petits points après « Cells(L, 30) » ?

Ces 2 petits points signalent habituellement une étiquette !

Est-ce qu’il existe une limite dans le nombre de champs ?

D’autant que cette ligne d’instruction devient rapidement très longue !

Bonjour

Les : (deux petits points) servent à séparer les instructions quand elles sont sur la même ligne

Je crois que le nombre de colonne est limitée à 10, même si tu peux inscrire un nombre supérieur dans la propriété ColumnCount

Re,

Merci à nouveau pour ces renseignements supplémentaires

Bonne journée

Rechercher des sujets similaires à "ajouter nouveau champs meme ligne listbo"