Listbox

Bonjour,
j'ai trouver sur un tuto comment renseigner une listbox depuis un tableau

'regarde dans le tableau 
For ligne = 2 To 300 
'si la colonne G = "un nom"
If Cells(ligne, 7) Like "*" & ComboBox1 & "*" Then 
'copie la colonne thème 
ListBox1.AddItem Cells(ligne, 3) 
End If 


par contre j'ai encore deux petit soucis
1: j'aimerai surligner la ligne en rouge

2: j'arrive a copier la colonne C (ligne, 3) et j'aimerai copier les colonne B,C,D (ligne 2,3,4)
encore merci

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Bonjour,

    Pour la question "2", je suppose que quand tu veux dire "copier" .. tu veux parler d'ajouter dans ta listbox les valeurs des colonnes B,C,D ..
    Donc.. que tu veux une listbox multicolonnes ?
    Si c'est ça... regardes ici
    https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-G
    (descend jusqu'à la parti : Créer une ListBox multicolonnes. )

    Pour ce qui est de la couleur.. le control ListBox ne le permet pas.
    Il me semble que tu pourrais passer par un controle de type ListView à la place (qui lui le permettrait).
    En cherchant sur le net, tu devrais pouvoir trouver comment faire.

    1. Contributeur
      Bojour

      j'ai plutôt compris qu'il fallait surligner la ligne où on trouve la valeur cherchée mais...

      peut-^tr + rapide on ne boucle que sur le nombre d-occurences


      Dim ref As String, Nbre As Byte
      Dim Lig As Byte, cptr As Byte, Col As Byte, Idx As Byte

      '....... code départ existant

      ref = "*" & combobox1 & "*"
      'nbre de ref dans colonne G
      Nbre = Application.CountIf(Range("G2:G100"), ref)
      ReDim tablo(1 To Nbre, 1 To 3)
      Lig = 1
      If Nbre = 0 Then GoTo err_vide

      'recherche lig avec *ref*
      For cptr = 1 To Nbre
      Lig = Columns("G").Find(ref, Cells(Lig, "G"), xlValues).Row
      Idx = Idx + 1
      For Col = 1 To 3
      tablo(Idx, Col) = Cells(Lig, Col + 1)
      Next
      Rows(Lig).Interior.ColorIndex = 3
      Next
      ListBox1.Column() = tablo
      Exit Sub
      'gestionnaire erreurs
      err_vide:
      MsgBox ref & " inconnu", vbCritical

      End Sub


       Michel