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

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

micsel

XLDnaute Junior
Bonjour Claudy,
justement avant de le faire comme ca (car il faudrait super bien le regler)
je voulais savoir si il n'y avait pas une optionde l'avoir en automatique (imaginons que l'on change les titres des colonnes)
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonjour,,

Exemple d'en-tete avec colonnes discontinues généré automatiquement. Les largeurs de colonnes sont calculées.


Boisgontier
 

Pièces jointes

  • Copie de ListBoxMultiColonnesDisc2b.xlsm
    45.1 KB · Affichages: 11

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…