Microsoft 365 Recherche par Userform

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

Herlay

XLDnaute Junior
Bonsoir le Forum,

j'effectue une recherche via un Userform par le N°client et/ou le Siren. les résultats affichés dans la ListBox affiche que les 2 premières colonnes.
je souhaiterais avoir l'ensemble des infos (soit les colonnes A à L (sauf la J) dans une seule listbox ou dans plusieurs listbox (pour un visuel différent)

je ne sait pas dans quelle partie du code, je peux intervenir

VB:
Private Sub Siren_Change()

    On Error Resume Next
        DMAListBox.Clear
        X = 0
        t = Range("A2:L" & Cells(Rows.Count, 2).End(xlUp).Row)
        ReDim t1(1 To UBound(t), 1 To 2)
        For i = 1 To UBound(t)
        If Left(t(i, 1), Len(Siren)) = Left(Siren, Len(Siren)) Or Left(t(i, 5), Len(Siren)) = Left(Siren, Len(Siren)) Then
        X = X + 1
        For Y = 1 To 10: t1(X, Y) = t(i, Y): Next Y
        End If: Next i
        DMAListBox.List = t1
        Erase t, t1
        If Siren = "" Then DMAListBox.Clear
        DMAListBox.Visible = True
        
End Sub

Merci d'avance pour votre aide.
Herlay
 

Pièces jointes

Bonsoir Herlay,

Si vous n'aviez pas mis On Error Resume Next vous auriez probablement vu d'où venait l'erreur.

Pour avoir 12 colonnes il faut évidemment écrire :
VB:
ReDim t1(1 To UBound(t), 1 To 12)
et faire une boucle sur les 12 colonnes :
VB:
For Y = 1 To 12: t1(X, Y) = t(i, Y): Next Y
A+
 
Bonjour,


VB:
Option Compare Text
Dim f, Rng, TblBD(), NbCol
Private Sub UserForm_Initialize()
  Set f = Sheets("BD")
  Set Rng = f.Range("A2:L" & f.[A65000].End(xlUp).Row)
  NbCol = Rng.Columns.Count
  TblBD = Rng.Value
  Me.ListBox1.List = TblBD
  Me.ListBox1.ColumnCount = NbCol
  EnteteListBox
End Sub

Private Sub TextBox1_Change()
     Dim b()
     tmp = "*" & Replace(Me.TextBox1, " ", "*") & "*"
     n = 0
     For i = LBound(TblBD) To UBound(TblBD)
       If TblBD(i, 2) Like tmp Or TblBD(i, 5) Like tmp Then
         n = n + 1: ReDim Preserve b(1 To NbCol + 1, 1 To n)
         For k = 1 To NbCol: b(k, n) = TblBD(i, k): Next k
       End If
      Next i
      If n > 0 Then Me.ListBox1.Column = b Else Me.ListBox1.Clear
End Sub

Sub EnteteListBox()
  x = Me.ListBox1.Left + 8
  Y = Me.ListBox1.Top - 12
  For i = 1 To NbCol
    Set lab = Me.Controls.Add("Forms.Label.1")
    lab.Caption = Rng.Offset(-1).Cells(1, i)
    lab.Top = Y
    lab.Left = x
    x = x + Rng.Columns(i).Width * 1.1
    temp = temp & Rng.Columns(i).Width * 1.1 & ";"
  Next
  temp = Left(temp, Len(temp) - 1)
  Me.ListBox1.ColumnWidths = temp
End Sub

Sans titre.png


Boisgontier
 

Pièces jointes

Dernière édition:
- 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

  • Question Question
Microsoft 365 Erreur UBound
Réponses
4
Affichages
149
Réponses
8
Affichages
236
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
364
Réponses
10
Affichages
292
Retour