RESOLU xls 2007 - entete dans un formulaire de recherche

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

micsel

XLDnaute Junior
Bonjour,

Je viens vers vous pour une petite question.
j'ai crée un formulaire de recherche auquel il m'affiche 6 colonnes (choses que je veux)
Y a t-il possibilité d'y inséré les entêtes "en dur" ou dois je les mettre dans le userform

Merci d'avance pour vos réponses.
 

Pièces jointes

Bonjour,

Avec un combobox
Si on modifie un en-tete ou une largeur de colonne, tout est modifié dans le ListBox.

VB:
Dim ColVisu(), BD(), Rng, colRech
Private Sub UserForm_Initialize()
    nomtableau = "tableau1"
    Set Rng = Range(nomtableau)
    ColVisu = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)   ' colonnes à visualiser
    BD = Range(nomtableau).Value
    '-- en têtes de colonne ListBox
    Me.ListBox1.ColumnCount = UBound(ColVisu) + 1
    EnteteListBox
    '--- ComboBox
    Set d = CreateObject("scripting.dictionary")
    colRech = 1
    d("*") = ""
    For i = 1 To UBound(BD)
      d(BD(i, colRech)) = ""
    Next i
    Me.ComboBox1.List = d.keys
    Me.ComboBox1 = "*"
End Sub

Private Sub ComboBox1_Click()
  filtre
End Sub

Sub filtre()
    Dim Tbl()
    temp = Me.ComboBox1 '& "*"
    For i = 1 To UBound(BD)
      If BD(i, colRech) Like temp Then
        n = n + 1
        j = 0
        For Each k In ColVisu
          j = j + 1
           ReDim Preserve Tbl(1 To UBound(ColVisu) + 1, 1 To n)
          Tbl(j, n) = BD(i, k)
        Next k
       End If
      Next i
      Me.ListBox1.Column = Tbl
End Sub

Sub EnteteListBox()
    x = Me.ListBox1.Left + 8
    Y = Me.ListBox1.Top - 12
    For Each c In ColVisu
      Set Lab = Me.Controls.Add("Forms.Label.1")
      Lab.Caption = Rng.Offset(-1).Resize(1).Cells(1, c)
      Lab.Top = Y
      Lab.Left = x
      Lab.Height = 24
      Lab.Width = x + Int(Rng.Columns(c).Width * 1#)
      x = x + Int(Rng.Columns(c).Width * 1#)
      tempcol = tempcol & Rng.Columns(c).Width * 1# & ";"
    Next
    tempcol = Left(tempcol, Len(tempcol) - 1)
    Me.ListBox1.ColumnWidths = tempcol
End Sub


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

Réponses
8
Affichages
21 K
Retour