resolu : ComboBox en cascade

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

AKRAMI

XLDnaute Junior
Bonjour forum
Bonjour a tous et a toute
svp si quelqu'un peut m'aider de faire et finir mon userform
J'ai expliqué mon probleme dans Feuil1
En realité j'ai posté ce sujet dans ce lien mais j'ai pas eu aucune suggestion :
combobox en cascade : Excel - VBA
Merci d'avance pour l'aide
Cordialement
AKRAMI
 

Pièces jointes

Dernière modification par un modérateur:
Re : ComboBox en cascade

Bonjour.

Au lieu de sélectionner d'abord le titre de la colonne où vous voulez chercher, ne serait ce pas plus simple de le chercher directement dans une ComboBox qui lui serait dédiée ? (au moins 3, pour NUMERO, NOM, PRÉNOM)
 
Re : resolu : ComboBox en cascade

Bonsoir,

Saisie intuitive par nom ou numéro avec un seul Combobox


SansTitre.png


Code:
Dim f, bd, choix1()
Private Sub UserForm_Initialize()
  Set f = Sheets("bd")
  choix1 = f.Range("a2:C" & f.[A65000].End(xlUp).Row).Value
  For i = 1 To UBound(choix1): choix1(i, 3) = i: Next i
  bd = f.Range("a2:H" & f.[h65000].End(xlUp).Row).Value
  Me.ComboBox1.List = choix1
End Sub

Private Sub ComboBox1_Change()
   If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, Application.Index(choix1, , 1), 0)) Then
     Dim b()
     clé = UCase(Me.ComboBox1) & "*"
     n = 0
     For i = LBound(choix1) To UBound(choix1)
       If UCase(choix1(i, 1)) Like clé Or UCase(choix1(i, 2)) Like clé Then
         n = n + 1: ReDim Preserve b(1 To 3, 1 To n)
         b(1, n) = choix1(i, 1): b(2, n) = choix1(i, 2): b(3, n) = i
       End If
      Next i
      If n > 0 Then
        ReDim Preserve b(1 To 3, 1 To n + 1)
        Me.ComboBox1.List = Application.Transpose(b)
        Me.ComboBox1.RemoveItem n
      End If
      Me.ComboBox1.DropDown
    Else
      ligne = Me.ComboBox1.Column(2)
      For k = 1 To 8
        Me("textbox" & k) = bd(ligne, k)
      Next k
    End If
End Sub

JB
 

Pièces jointes

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
3
Affichages
88
  • Question Question
Microsoft 365 Classeur Disparu
Réponses
2
Affichages
467
Retour