RESOLU xls 2007 - entete dans un formulaire de recherche

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

  • Classeur1.xlsm
    156.9 KB · Affichages: 11

Claudy

XLDnaute Accro
Bonjour,
avec des Labels:
1584969316304.png

ou alors j'ai pas bien compris...
Claudy
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Classeur1.xlsm
    102.1 KB · Affichages: 6
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 942
Membres
101 849
dernier inscrit
florentMIG