Microsoft 365 Besoin d'explication sur ce code filtrant

dubarre

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous je viens vers vous car j'aurais une question posée j'ai trouvais ce code sur Internet mais il y a certaines lignes je n'arrive pas à comprendre leur fonctionne pouvez-vous m'aider s'il vous plaît. Les lignes que je ne comprends pas seront marqués en rouge.

Me.ComboBox1.Text = Me.ComboBox1.List(0)
Me.ComboBox2.Text = Me.ComboBox2.List(0)
Me.ComboBox3.Text = Me.ComboBox3.List(0)


VB:
Private Sub UserForm_Initialize()
With UserForm2
    .StartUpPosition = 0
    .Top = 190
    .Left = 535
End With

'USERFORM2 PREREMPLISSAGE DES COMBOBOXES
dligne = Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Row

'Combobox VILLES
Me.ComboBox1.Clear
Me.ComboBox1.AddItem ""
    For Each cell In Worksheets("Feuil2").Range("D2:D" & dligne)
    Me.ComboBox1 = cell
        'remplissage sans doublon
        If Me.ComboBox1.ListIndex = -1 Then
        Me.ComboBox1.AddItem cell
        End If
    Next cell
Me.ComboBox1.Text = Me.ComboBox1.List(0)

'Combobox METIERS
    Me.ComboBox2.Clear
    Me.ComboBox2.AddItem ""
    For Each cell In Worksheets("Feuil2").Range("B2:B" & dligne)
    Me.ComboBox2 = cell
        'remplissage sans doublon
        If Me.ComboBox2.ListIndex = -1 Then
        Me.ComboBox2.AddItem cell
        End If
    Next cell
Me.ComboBox2.Text = Me.ComboBox2.List(0)

'Combobox SPORTS
Me.ComboBox3.Clear
Me.ComboBox3.AddItem ""
    For Each cell In Worksheets("Feuil2").Range("C2:C" & dligne)
    Me.ComboBox3 = cell
        'remplissage sans doublon
        If Me.ComboBox3.ListIndex = -1 Then
        Me.ComboBox3.AddItem cell
        End If
    Next cell
Me.ComboBox3.Text = Me.ComboBox3.List(0)


End Sub
 
Solution
re bonjour dubarre
les deux ;)
il est de toute façon et en toute circonstance, plus rapide d'utiliser les fonctions internes que ce soit pour des controls ActivX ou des cellules

et a savoir puisque c'est le fond de la question
.text est plus lourd que .value c'est déjà la première erreur

et c'est évident que .text force vba a travailler strictement en string qui est plus lourd
alors que .value c'est .value c'est tout (tel quel)
;)

patricktoulon

XLDnaute Barbatruc
re
bonjour
traduction
Me.ComboBox1.Text = le premier item de la liste (soit l'item(0))
Me.ComboBox2.Text = le premier item de la liste (soit l'item(0))
Me.ComboBox3.Text = le premier item de la liste (soit l'item(0))


on ferait la même chose en faisant
Me.ComboBox1.listindex=0
Me.ComboBox2.listindex=0
Me.ComboBox3.listindex=0
 

patricktoulon

XLDnaute Barbatruc
re bonjour dubarre
les deux ;)
il est de toute façon et en toute circonstance, plus rapide d'utiliser les fonctions internes que ce soit pour des controls ActivX ou des cellules

et a savoir puisque c'est le fond de la question
.text est plus lourd que .value c'est déjà la première erreur

et c'est évident que .text force vba a travailler strictement en string qui est plus lourd
alors que .value c'est .value c'est tout (tel quel)
;)
 

Discussions similaires

Réponses
6
Affichages
202
Haut Bas