resolu : ComboBox en cascade

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

  • combobox en cascade.xlsm
    20.2 KB · Affichages: 29
  • combobox en cascade.xlsm
    20.2 KB · Affichages: 33
Dernière modification par un modérateur:

Dranreb

XLDnaute Barbatruc
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)
 

Dranreb

XLDnaute Barbatruc
Re : ComboBox en cascade

Voici un premier jet.

Edit: Bonjour Grisan29. Ravi de voir que certains pensent à proposer une solution à l'aide de mes modules de service, même si je n'en propose plus cette version là.
 

Pièces jointes

  • CBxLiéesAKRAMI.xlsm
    101.8 KB · Affichages: 29
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • combobox en cascade-1.xls
    82.5 KB · Affichages: 38
  • SansTitre.png
    SansTitre.png
    21.7 KB · Affichages: 36
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 332
Membres
103 188
dernier inscrit
evebar