Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 recherche dans listbox avec combobox

  • Initiateur de la discussion Initiateur de la discussion AIGOIN
  • 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 !

AIGOIN

XLDnaute Junior
Bonjour,
J'ai utilisé un document du forum, je l'ai adapté et je n'arrive pas à extraire les données de la colonne B et je ne comprends pas pourquoi. Il semblerait qu'il ne reconnaisse pas le contenu des combobox lors de la recherche dans les colonnes concernées.
Merci pour votre aide
Alain
 

Pièces jointes

Salut,
VB:
Private Sub ComboBox1_click()
  Me.ListBox1.Clear
  For K = 1 To Ncol: Me("textBox" & K) = "": Next K
  j = 0
  n = Application.CountIf(Application.Index(Rng, , 2), Me.ComboBox1)
  Dim b()
  ReDim b(1 To n, 1 To Ncol + 1)
  For I = LBound(BD) To UBound(BD)
    If Me.ComboBox1 = BD(I, 2) Then
      j = j + 1
      For K = 1 To Ncol
        b(j, K) = BD(I, K)
        If K >= 3 And K <= 5 Then b(j, K) = Format(BD(I, K))
      Next K
      b(j, K) = I
    End If
   Next I
   ListBox1.List = b
   ListBox1.ListIndex = 0
End Sub

Modif:
If Me.ComboBox1 = CStr(BD(I, 2)) Then
 
La sub à modifier dans le dernier classeur qui à mon avis est moins bien que le premier :
VB:
Private Sub ComboBox1_Change() 'au changement dans la ComboBox1 [Paiement]


    For I = 1 To 9 'boucle sur les 9 dernières colonnes de la ListBox1
        'renvoie la valeur de la colonne I de la ListBox1 dans la TextBox I + 2
        Me.Controls("TextBox" & I + 2).Value = ""
    Next I 'prochaine colonne de la boucle
    
    'TC = O1.Range("A1").CurrentRegion 'définit le tableau de cellules TC --> inutile déjà fait dans Initialize
    With ListBox1 'prend en compte la ListBox1
        .Clear 'efface la ListBox1
        S = 0 'initialise la somme S
        v = 0
        For I = 2 To UBound(TC, 1) - 1 'boucle 1 : sur toutes les lignes du tableau TC (en partant de la seconde)
            'condition : si la valeur en colonne 9 du tableau TC est égale à la valeur de la ComboBox1
            If (TC(I, 2) = Val(ComboBox1.Value) Or ComboBox1 = "") And (TC(I, 9) = Val(ComboBox2) Or ComboBox2 = "") Then
                .AddItem 'I 'ajoute le numéro de ligne dans la colonne 0 (cachée) de la ListBox1
                For j = 1 To 9 'boucle 2 : sur les 9 autres colonnes
                    .Column(j - 1, v) = TC(I, j) 'ajoute la valeur en colonne J du tabelau TC à la colonne J de la ListBox1
                    'If j = 8 Then S = S + CDbl(TC(I, 8)) 'si j est égale à 8, calcule la somme S
                Next j 'prochiane colonne de la boucle 2
                v = v + 1 'incrénete V
                S = S + Val(TC(I, 8))
                
            End If 'End If 'fin de la condition
            
        Next I  'prochaine ligne de la boucle 1
    End With 'fin de la prise en compte de la ListBox1
    TextBox1.Value = v 'place V dans la TextBox1
    TextBox2.Value = S 'place S dans la TextBox2
End Sub
 
Bonsoir le Fil
Y'a je pense une apostrophe en trop !
Ici devant le "I"
VB:
.AddItem 'I 'ajoute le numéro de ligne dans la colonne 0 (cachée) de la ListBox1
Jean marie
depuisMon téléphone
 
- 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

Réponses
48
Affichages
834
Réponses
17
Affichages
929
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…