VBA EXCEL: création d'une listbox

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

Aragon10

XLDnaute Occasionnel
Bonjour,

j'utilise une feuille excel qui se remplie grâce à un userform. cette feuille contient plusieurs colonnes:
colonne A: Date (textbox1)
colonne B: NOM (combobox1)
colonne C: Montant (textbox2)
colonne D: Taux (textbox3)

Je voudrais lorsque je tape dans le combobox1 un nom existant déjà sur la feuille excel il m'affiche dans la listbox un petit tableau (résumé) sur les conditions déjà accordé à cette relation. (une relation peut avoir plusieurs offres anciennes).

Merci pour votre aide
 
Re : VBA EXCEL: création d'une listbox

Bonsoir.
j'utilise une feuille excel qui se remplie grâce à un userform
Oui mais le problème c'est que nous on l'a pas !
Vous auriez intérêt à utiliser la fonction SujetCBx de mon module MSujetCBx: Elle vous fabriquerait :
un Variant contenant un Array à deux éléments :
' Élément 0: Un tableau base 0 de valeurs de clés destiné en principe à la propriété List d'une ComboBox.
' Élément 1: Un tableau base 0 de Variant dont chaque élément est une liste (Base To n) As Long de
' numéros des lignes portant toutes la valeur de clé correspondante.
Vous pourriez donc obtenir directement à partir de ComboBox1.ListIndex la liste des numéros de lignes dans la plage source relatives à ce NOM. Ce ne serait plus rien de les empiler dans un second tableau à destination de votre ListBox.
 
Re : VBA EXCEL: création d'une listbox

re bonjour,

veuillez trouver ci-dessous un petit exemple :

Document Cjoint

je voudrais créer une listbox qui affiche par exemple les dernières consultations de patrick sous forme d'un petit tableau lorsque je tape son nom dans le combobox.

Merci d'avance.
 
Re : VBA EXCEL: création d'une listbox

Joignez le donc plutôt sur ce site, c'est le bazar pour l'ouvrir depuis CiJoint. il me l'ouvre avec le bloc notes.
Bouton Aller en mode avancé, puis Gérer les pièces jointes. Et ça m'arrangerait si vous pouviez me le joindre au format xls pour ma version d'Excel. C'est d'ailleurs peur être CiJoint qui ne sait pas qu'il faut l'ouvrir avec le convertisseur de xlsm en xls.
 
Dernière édition:
Re : VBA EXCEL: création d'une listbox

En le zippant ou en mettant peu de données.
Mais une dizaine de noms bidons (impératif: vous n'avez pas le droit de mettre des personnes réelles) et les 3 autres colonnes, ça devrait passer sans problème
 
Re : VBA EXCEL: création d'une listbox

Re bonjour Dranreb,

Merci beaucoup c'est ce que je cherchais exactement ;-)

y'a t-il un moyen pour ajouter la bordure des lignes et des colonnes dans la listbox ainsi que les titres (Ligne 2) ? et qu'est ce que je devrais modifier pour que ma listbox prendre en considération les données jusqu'à la colonne "R" ?

Je vous remercie énormément cher Dranreb 🙂
 
Re : VBA EXCEL: création d'une listbox

Hélas on ne peut mettre de bordures dans une ListBox. Le gros dormeur sur lit de lauriers n'a jamais daigné ouvrir un œil pour envisager de s'y coller. Les ListView le permettent, mais je vous les déconseille: elle entrainent de gros problèmes de portabilité du fait qu'elles ne font pas partie de la bibliothèque MSForms.
Pour les titres mettez des Labels au dessus.
La propriété ColumnCount de la ListBox doit être augmentée pour prendre plus de 6 colonnes.
Vous pouvez aussi ajuster les largeurs séparées par des ";" dans la ColumnWidths.
 
Re : VBA EXCEL: création d'une listbox

Concernant la largeur des colonnes ca marche très bien. par contre J'ai modifié la propriété columncount de 5 à 18 mais il n'y'a pas d'ajout de nouvelles colonnes .

Merci;-)
 
Dernière édition:
Re : VBA EXCEL: création d'une listbox

Il convient naturellement de redimensionner aussi ce que vous y mettez dedans: la TLBx, et y faire les affectations nécessaires.
S'il y en a beaucoup et qu'elles se suivent toutes vous pouvez le faire avec une boucle:
VB:
For C = 1 To 16: TLBx(Ls, C) = TDon(Le, C + 2): Next C
Déclarer C As Long ou bien C& ce qui revient au même.
 
Re : VBA EXCEL: création d'une listbox

Bonsoir Dranreb,

Franchement il n’y a pas mieux que ça. Merci infiniment 🙂

Juste une dernière question si ça ne vous dérange pas:

Je voudrais activer la recherche intuitive dans le combobox . j'ai un ancien code mais j'ai pas pu l'adapter à ton code. ci dessous mon ancien code:

Code:
Private Sub UserForm_Initialize()

Set f = Sheets("CLIENT") ' selection Feuille'
  choix1 = Application.Transpose(f.Range("D2:D" & f.[D65000].End(xlUp).Row).Value) ' selection des clients (liste  choix1) dans le combobox à partir de la 1ere colonne''
  Me.ComboBox1.List = SansDoublons(choix1) 'liste des clients sans doublons'

End Sub

Code:
Function SansDoublons(A())
   Set d = CreateObject("Scripting.Dictionary")
   For Each C In A:  d(C) = "": Next C
   B = d.keys
   SansDoublons = Application.Transpose(B)
End Function

Code:
Private Sub ComboBox1_Change()

 If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
   ReDim tblChoix1(1 To UBound(choix1))
   tmp = "*" & UCase(Me.ComboBox1) & "*"
   ligne = 0
   For Each C In choix1
     If UCase(C) Like tmp Then ligne = ligne + 1: tblChoix1(ligne) = C
   Next C
   If ligne > 0 Then
     ReDim Preserve tblChoix1(1 To ligne)
     Me.ComboBox1.List = SansDoublons(tblChoix1)
     Me.ComboBox1.DropDown
   End If
  Else

  End If
End Sub

Merci pour votre aide précieuse .
 
Dernière édition:
- 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
5
Affichages
650
Compte Supprimé 979
C
J
Réponses
1
Affichages
2 K
T
  • Question Question
Réponses
15
Affichages
3 K
tabernake
T
C
Réponses
0
Affichages
771
CaptainMerlux
C
Retour