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

Ilino

XLDnaute Barbatruc
BONJOUR FORUM
Ci-joint un fichier exemple de mon souci,
Je souhaite (créer un moteur de recherche) afficher des résultats de recherche sous deux conditions ComboBx1 et ComboBox2
Avant ça je souhaite de créer une liste déroulante dans ComboBox2 qui dépend de ComboBox1
Dans le comboBox1 ( sans doublant) afficher toutes les données de la colonne ci-dessous le code
Code:
Private Sub UserForm_Initialize()

Dim i As Integer

For i = 2 To Sheets("FSEx 2014").Range("B65536").End(xlUp).Row
  ComboBox1 = Sheets("FSEx 2014").Range("B" & i)
  If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem Sheets("FSEx 2014").Range("B" & i)
Next i

End Sub
Dans le ComboBox2 afficher les données qui correspondent au donnée sélectionné par comboBox1
Dans notre exemple
Si je selection dans le combobox1 B1 je dois avoir une liste dans CoMBOBOX2 A1 A2 A3 et A8
GRAZIE
 

Pièces jointes

Re : moteur de recherche

Re Ilino,

Ce genre de gymnastique est normalement inutile en VBA.

Cela doit se faire au tout début, manuellement.

Mais si tu y tiens, dans la macro Initialize :

Code:
With Feuil1 'CodeName de la feuille
  t = .Range("A2:Q" & .Range("A" & .Rows.Count).End(xlUp)(2).Row)
  .[C1,G1,J1,L1,M1,Q1,I1].EntireColumn.AutoFit 'ajustement automatique
  ListBox1.ColumnWidths = .Columns(3).Width & ";" & .Columns(7).Width & ";" _
    & .Columns(10).Width & ";" & .Columns(12).Width & ";" _
    & .Columns(13).Width & ";" & .Columns(17).Width & ";" & .Columns(9).Width
End With
Fichier (3).

Et maintenant ne nous casse pas les pieds avec la largeur de la ListBox ou de l'UserForm 🙄

A+
 

Pièces jointes

Re : moteur de recherche

Bonsoir Le Forum, Ilino, Job75
Pour la largeur des colonnes de ta ListBox
Code:
Private Sub UserForm_Initialize()
Dim ArrColonne As Variant
Dim F As Worksheet
Dim Z As Variant
Dim d As Object, I&
Dim CW  'ColonneWidth
Set F = Sheets(1)
ArrColonne = Array(3, 7, 9, 10, 12, 13, 17)
With Feuil1 'CodeName de la feuille
  t = .Range("A2:Q" & .Range("A" & .Rows.Count).End(xlUp)(2).Row)
  .[C1,G1,J1,L1,M1,Q1,I1].EntireColumn.AutoFit 'ajustement automatique
  With Me.ListBox1
  .ColumnHeads = True
  .ColumnCount = 7
    For Each Z In ArrColonne
    CW = CW & F.Columns(Z).Width & ";"
    Next Z
  .ColumnWidths = CW
End With
End With
Set d = CreateObject("Scripting.Dictionary")
For I = 1 To UBound(t)
  If t(I, 2) <> "" Then d(t(I, 2)) = ""
Next
If d.Count Then ComboBox1.List = d.keys
End Sub
A+
 
Re : moteur de recherche

Bonjour Ilino, Regueiro, le forum,

Avec un document auxiliaire le travail est quand même plus soigné :

Code:
With Feuil1 'CodeName de la feuille
  t = .Range("A2:Q" & .Range("A" & .Rows.Count).End(xlUp)(2).Row)
  Application.ScreenUpdating = False
  Workbooks.Add 'document auxiliaire
  With Columns(1).Font
    .Name = ListBox1.Font.Name
    .Size = ListBox1.Font.Size
    .Bold = ListBox1.Font.Bold
    .Italic = ListBox1.Font.Italic
  End With
  For Each c In .[C1,G1,J1,L1,M1,Q1,I1].EntireColumn
    c.Copy [A1]
    Rows(1).Delete 'titre retiré
    Columns(1).AutoFit 'ajustement
    w = w & ";" & Columns(1).Width
    L = L + Columns(1).Width
  Next
  ActiveWorkbook.Close False 'fermeture
  Me.Width = IIf(L < 114, 114, L) + 26 'à adapter
  ListBox1.Width = Me.Width - 18 'à adapter
  ListBox1.ColumnWidths = Mid(w, 2)
  Application.ScreenUpdating = True
End With
Noter que les en-têtes de colonnes d'une ListBox ne sont utilisables qu'avec la méthode RowSource.

Fichier (4).

A+
 

Pièces jointes

- 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
10
Affichages
282
Réponses
3
Affichages
195
Réponses
3
Affichages
665
  • Question Question
Microsoft 365 VBA Transpose
Réponses
11
Affichages
835
Réponses
6
Affichages
605
Retour