Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Combobox multiples pour base de données

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

zeb33

XLDnaute Junior
Bonjour le forum,

A partir de différents fil, j'ai pu constitué une base de données.

Il me reste un souci, j'ai une combobox qui gère les noms, mais plusieurs personnes peuvent avoir le même nom avec différents prénom, il manque donc une combobox pour les prénoms. Mais j'ai aussi besoin de pouvoir chercher une personne par l' indice de promotion.

Ci joint fichier exemple
 

Pièces jointes

Re : Combobox multiples pour base de données

Bonjour Zeb33, le forum

je te propose deux solutions en VBA et une dans Excel:

1-liste des noms dans un combobox ==> choix de l'utilisateur ==> liste des noms et prénoms correspondant dans une listebox ==> double click = sélection de l'étudiant (affichage des renseignements).

2-liste des noms dans un combobox ==> choix de l'utilisateur ==> filtrage par nom et affichage des prénoms dans la seconde combobox ==> choix du prénom = sélection de l'étudiant(e) et affichage des renseignements.

3- intervenir sur le fichier excel: créer une colonne "Nom & Prénom" et dans les USF, utiliser ce champ dans la combobox de sélection. c'est la solution donnée en exemple ci joint. j'ai été obligé de supprimer les 3/4 des entrées afin que ça passe à moins de 48ko 😱

en fait, c'est juste une question de choix 😕 . dis nous ce que tu préfères (il y a certainement d'autres solutions). je pense qu'on pourra satisfaire à ta demande. 😉.

A te lire
 

Pièces jointes

Dernière édition:
Re : Combobox multiples pour base de données

Bonjour,

Code:
Private Sub UserForm_Activate()
  Set MonDico = CreateObject("Scripting.Dictionary")
  MonDico.Add "*", "*"
  For Each c In Range("a2:" & Range("A2").End(xlDown).Address)
     If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
  Next c
  Me.Promotion.List = MonDico.items
  Me.Promotion.ListIndex = 0
End Sub

Private Sub Promotion_Change()
  i = 0
  Me.Nom.Clear
  For Each c In Range(Sheets("annu").[A2], Sheets("annu").[A65000].End(xlUp))
    If c = Me.Promotion Or Me.Promotion = "*" Then
      Me.Nom.AddItem
      Me.Nom.List(i, 0) = c.Offset(0, 3) & " " & c.Offset(0, 4)
      Me.Nom.List(i, 1) = c.Row
      i = i + 1
    End If
   Next c
   Me.Nom.ListIndex = 0
End Sub

Private Sub Nom_Change()
   If Me.Nom.ListIndex <> -1 Then
     i = Val(Me.Nom.Column(1))
     If i <> 0 Then
        Me.N°_Dossier = Worksheets("Annu").Cells(i, 2).Value
        Me.N°_Identifiant = Worksheets("Annu").Cells(i, 3).Value
        Me.Adresse = Worksheets("Annu").Cells(i, 6).Value
        'Me.Pays = Worksheets("Annu").Cells(i , 7).Value
        Me.Tel = Worksheets("Annu").Cells(i, 8).Value
        Me.Tel.Value = Format(Tel.Value, "00"" ""00"" ""00"" ""00"" ""00")
        Me.Portable = Worksheets("Annu").Cells(i, 9).Value
        Me.Portable.Value = Format(Portable.Value, "00"" ""00"" ""00"" ""00"" ""00")
        Me.Date_de_Naissance = Worksheets("Annu").Cells(i, 10).Value
        Me.Liste = Worksheets("Annu").Cells(i, 11).Value
        Me.Note = Worksheets("Annu").Cells(i, 12).Value
   End If
 End If
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Combobox multiples pour base de données

Bonjour Boisgontier, le forum,

Bien vu l'idée de grouper nom et prénom, cela économise une combobox.
Pour le reste, cela semble bien fonctionner.

Je teste tout ça et j'essaye de comprendre comment marche ta solution.

Merci beaucoup


Zeb
 
- 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
568
Réponses
15
Affichages
208
Réponses
2
Affichages
143
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…