XL 2016 Recherche dans listbox et Combobox

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

Scorpio

XLDnaute Impliqué
Salut à tous,
J'ai dans ce classeur, 2 formulaires avec bien sur, les codes VBA, dont je ne suis pas l'auteur.

Mais, j'aimerais bien l'utiliser, et en fait, le USF_3 fonctionne correctement, mais j'aimerais bien aussi savoir pourquoi le USF_1 ne fonctionne pas correctement.
La ligne tout en bas le code ci-dessous, s'affiche en jaune (ici en rouge) avec une erreur d'exécution

Merci d'avance à celle ou celui qui pourrais bien me dépanner, ca serais super.
------------------------------------------------------------------------------------------------------------------------------

Private Sub ComboBox1_Change() 'Userform1
Dim O As Worksheet 'd?clare la variable OL (Onglet)
Dim TV As Variant 'd?clare la variable TV (Tableau des Valeurs)
Dim I As Integer 'd?clare la variable I (Incr?ment)
Dim K As Integer 'd?clare la variable K (incr?ment)
Dim TL() As Variant 'd?clare la variable TL (Tableau des Lignes)
Me.ListBox1.Clear 'vide la LbsTableau
Set O = Worksheets("Feuil1") 'd?finit l'onglet O
TV = O.Range("A1").CurrentRegion 'd?finit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
If TV(I, 1) = Me.ComboBox1.Value Then 'condition : si la donn?e ligne I colonne 1 de TV est ?gale ? la valeur de la ComboBox1
ReDim Preserve TL(1 To 3, 1 To K) 'redimensionne le tableau des lignes TL (5 lignes, K colonnes)
TL(1, K) = TV(I, 1) 'r?cup?re dans la ligne 1 de TL la donn?e en colonne 1 de TV
TL(2, K) = TV(I, 3) 'r?cup?re dans la ligne 2 de TL la donn?e en colonne 2 de TV
TL(3, K) = TV(I, 6) 'r?cup?re dans la ligne 3 de TL la donn?e en colonne 4 de TV
'TL(4, K) = TV(I, 8) 'r?cup?re dans la ligne 4 de TL la donn?e en colonne 8 de TV
'TL(5, K) = TV(I, 13) 'r?cup?re dans la ligne 5 de TL la donn?e en colonne 13 de TV
'TL(6, K) = TV(I, 16) 'r?cup?re dans la ligne 6 de TL la donn?e en colonne 16 de TV
K = K + 1 'incr?ment K (ajoute une colonne au tableau des lignes TL)
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
Me.ListBox1.Column = TL 'alimente la ListBox1 avec le tableau TL
End Sub
 

Pièces jointes

Code:
Private Sub ComboBox1_Change() 'Userform1
Dim O As Worksheet 'déclare la variable OL (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

Me.ListBox1.Clear 'vide la LbsTableau
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
If TV(I, 1) = Me.ComboBox1.Value Then 'condition : si la donnée ligne I colonne 1 de TV est égale à la valeur de la ComboBox1
ReDim Preserve TL(1 To 3, 1 To K) 'redimensionne le tableau des lignes TL (5 lignes, K colonnes)
TL(1, K) = TV(I, 1) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV
TL(2, K) = TV(I, 3) 'récupère dans la ligne 2 de TL la donnée en colonne 2 de TV
TL(3, K) = TV(I, 6) 'récupère dans la ligne 3 de TL la donnée en colonne 4 de TV
'TL(4, K) = TV(I, 8) 'récupère dans la ligne 4 de TL la donnée en colonne 8 de TV
'TL(5, K) = TV(I, 13) 'récupère dans la ligne 5 de TL la donnée en colonne 13 de TV
'TL(6, K) = TV(I, 16) 'récupère dans la ligne 6 de TL la donnée en colonne 16 de TV

K = K + 1 'incrément K (ajoute une colonne au tableau des lignes TL)
Else ' Ligne rajouté
Exit Sub 'Ligne Rajouté
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
Me.ListBox1.Column = TL  'alimente la ListBox1 avec le tableau TL
End Sub
A++
 
Bonjour Dranreb,
Merci pour votre aide,
S'il vous plaît, a quel endroit je dois ajouter cette ligne
Et, si je peut me permettre de vous demander, j'aimerais aussi faire le transfert de la sélection sur une feuille, pourriez-vous me donner un coup de de pouce.
Merci A++++
 
- 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

  • Question Question
Microsoft 365 Traitement
Réponses
7
Affichages
76
Réponses
3
Affichages
591
Réponses
2
Affichages
434
Réponses
9
Affichages
382
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
245
Réponses
5
Affichages
494
Retour