recherche automatique

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

D

damien

Guest
bonjour à tous

je voudrai une recherche automatique du style je remplie le combobox2 avec A par exemple et il me liste dans ma listbox tous les navires commencant par A.
merci voici la macro
Private Sub ComboBox2_change()

ListBox1.Clear
ListBox1.IntegralHeight = True
ListBox1.Visible = True
Dim c As Range
Dim x, a As Long


ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = '70;150;50;80;110;50;150;100;0'
x = 0
For Each Row In Worksheets('liste').UsedRange.Rows
If Row.Cells(2) = ComboBox2 Then

a = Row.Row
ListBox1.AddItem Row.Cells(1).Text

ListBox1.List(x, 0) = Row.Cells(1).Text 'immat

ListBox1.List(x, 1) = Row.Cells(2).Text 'nom
ListBox1.List(x, 2) = Row.Cells(3).Text 'lht
ListBox1.List(x, 3) = Row.Cells(5).Text 'port d'attache
ListBox1.List(x, 4) = Row.Cells(6).Text 'pavillon
ListBox1.List(x, 5) = Row.Cells(7).Text ' callsign
ListBox1.List(x, 6) = Row.Cells(8).Text 'type
ListBox1.List(x, 7) = Row.Cells(10).Text
ListBox1.List(x, 8) = a





x = x + 1
End If
Next Row



End Sub
 
re damien

row est le nom d'une propriété du vba, je te conseille de pas l'utiliser comme nom de variable :


Private Sub ComboBox2_Change()
Dim c As Range, lig As Range
Dim x As Long

With ListBox1
        .Clear
        .IntegralHeight =
True
        .Visible =
True
        .ColumnCount = 9
        .ColumnWidths = '70;150;50;80;110;50;150;100;0'

       
For Each lig In Worksheets('liste').UsedRange.Rows
               
If Left(lig.Cells(2), Len(ComboBox2)) = ComboBox2 Then
                        .AddItem lig.Cells(1).Text
                        .List(x, 1) = lig.Cells(2).Text
'nom
                        .List(x, 2) = lig.Cells(3).Text
'lht
                        .List(x, 3) = lig.Cells(5).Text
'port d'attache
                        .List(x, 4) = lig.Cells(6).Text
'pavillon
                        .List(x, 5) = lig.Cells(7).Text
' callsign
                        .List(x, 6) = lig.Cells(8).Text
'type
                        .List(x, 7) = lig.Cells(10).Text
                        .List(x, 8) = lig.row
                        x = x + 1
               
End If
       
Next lig
End With

End Sub


code non testé.

salut
 
bonjour damien

oui, on peut imposer la saisie en majuscule, mais il vaut mieux à mon avis laisser l'utilisateur saisir comme il veut. Puis gerer la casse via le code :

If ucase(Left(lig.Cells(2), Len(ComboBox2))) = ucase(ComboBox2) Then


salut
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
17
Affichages
2 K
R
Réponses
20
Affichages
4 K
RaVenSs
R
D
Réponses
0
Affichages
1 K
D
Réponses
68
Affichages
9 K
Etoto0026
E
Réponses
7
Affichages
1 K
M
  • Résolu(e)
Réponses
5
Affichages
1 K
Retour