ComboBox 3 niveaux sans doublons et lignes vide

sebcane

XLDnaute Nouveau
Bonjour,
Je vous joint mon code que j'aimerais améliorer, sans doublon et ligne vide dans le combobox2.
Malgrés plusieurs tentatives je n'y arrive pas. (débutant de chez débutant :))

Code:
Dim Tbl(), a, b
Private Sub UserForm_Initialize()

  a = Range("article").Value
  b = Range("SHIP_SHIP").Value
  Set d1 = CreateObject("Scripting.Dictionary")
  For Each c In b
    d1(c) = ""
  Next c
  Me.ComboBox1.List = d1.keys
End Sub
Private Sub ComboBox1_Change()

   If Me.ComboBox1.ListIndex = -1 Then
     Set d1 = CreateObject("Scripting.Dictionary")
     tmp = UCase(Me.ComboBox1) & "*"
     For Each c In b
       If UCase(c) Like tmp Then d1(c) = ""
     Next c
     Me.ComboBox1.List = d1.keys
     Me.ComboBox1.DropDown
   Else
     Condition = Me.ComboBox1
     If Condition = "" Then Exit Sub
     ligne = 0
     ReDim Tbl(1 To UBound(a))
     For i = LBound(a) To UBound(a)
       If b(i, 1) = Condition Then ligne = ligne + 1: Tbl(ligne) = a(i, 1)
     Next i
     ReDim Preserve Tbl(1 To ligne)
     Me.ComboBox2.List = Tbl
     Me.ComboBox2.SetFocus
     If Val(Application.Version) > 10 Then SendKeys "{f4}"
   End If
End Sub
Private Sub ComboBox2_Change()

 If Me.ComboBox2.ListIndex = -1 Then
  Set d1 = CreateObject("Scripting.Dictionary")
  tmp = UCase(Me.ComboBox2) & "*"
  For Each c In Tbl
     If UCase(c) Like tmp Then d1(c) = ""
  Next c
  Me.ComboBox2.List = d1.keys
  Me.ComboBox2.DropDown
 Else
   tmp1 = Me.ComboBox1: tmp2 = Me.ComboBox2
   For p = 1 To UBound(a)
     If b(p, 1) = tmp1 And a(p, 1) = tmp2 Then Me.TextBox1 = Range("référence")(p)
   Next p
  End If
End Sub
Private Sub CommandButton1_Click()

 If Me.ComboBox1 <> "" And Me.ComboBox2 <> "" Then
  ActiveCell = Me.ComboBox1
  ActiveCell.Offset(, 1) = Me.ComboBox2
  ActiveCell.Offset(, 2) = Me.TextBox1
  Unload Me
  Range("A4").Select
 Else
   MsgBox "Incomplet!"
   Exit Sub
 End If
End Sub
Ceci est un code réalisé grace à Mr Boisgontier
Merci d'avance
 

sebcane

XLDnaute Nouveau
Re : ComboBox 3 niveaux sans doublons et lignes vide

Re comme convenu voici le fichier.
Mr Boisgontier je me suis servi du code de votre fichier joint mais ca bloque au niveau de la combobox2 et je ne vois pas d'où vient le problème.
Document Cjoint
J'aimerais que le combobox1 me donne le code en format nombre pour être utilisé dans des formules, et avoir une intuitivité.
Et aussi ci possible que le combobox2 soit trouvé avec les lettres contenu.
La combobox3 peut être remplacé par une textbox car il n 'y aura qu'une possibilité.
 
Dernière édition:

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : ComboBox 3 niveaux sans doublons et lignes vide

Bonjour,

-Frapper les premières lettres des codes pour niv 1
-Frapper les premières lettres ou lettres contenues des codes pour niv 2

Pour le niv1, on pourrait afficher les 2 colonnes A et B dans le comboBox.

cf PJ

JB
 

Pièces jointes

  • EGBvbNp3XkO_extrait1B.xls
    80.5 KB · Affichages: 41
Dernière édition:

sebcane

XLDnaute Nouveau
Re : ComboBox 3 niveaux sans doublons et lignes vide

Super Mr Boisgontier, je préfére ce code car il garde la mise en forme d'excel.
Pour scinder la colonne A et B dans le premier comboBox pourquoi pas cela pourrait rendre pas mal.
Merci A toi ainsi qu'a Dranreb pour votre aide.
Et sinon de ou venait l'erreur pour l'affichage du premier comboBox ?
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : ComboBox 3 niveaux sans doublons et lignes vide

>Et sinon de ou venait l'erreur pour l'affichage du premier comboBox ?

Numérique comparé à combobox (texte)

Voir PJ pour 2 colonnes au niveau 1

Sans titre.gif

http://boisgontierjacques.free.fr/fichiers/Formulaire/FormIntuitif2Colonnes4.xls

JB
 

Pièces jointes

  • EGBvbNp3XkO_extrait1C.xls
    79 KB · Affichages: 40
  • Sans titre.gif
    Sans titre.gif
    34.6 KB · Affichages: 40
  • Sans titre.gif
    Sans titre.gif
    34.6 KB · Affichages: 36
Dernière édition:

sebcane

XLDnaute Nouveau
Re : ComboBox 3 niveaux sans doublons et lignes vide

Super comme ça,
Par contre j'aurais voulu savoir si dans un userform on pouvais faire apparaitre dans une textbox le resultat d'un calcul (matricielle sur 2 onglets différent) ? style:
Code:
=SIERREUR(SI(B3<>"";(INDEX(ZSD!$J$2:$J$10000;EQUIV(1;(B3=ZSD!$A$2:$A$10000)*(C3=ZSD!$E$2:$E$10000);0))*RECHERCHEV(C3;ref_ref;67;0)+RECHERCHEV(M3;Bacs!A:BO;67;FAUX));"");(SI(B3<>"";(INDEX(ZSD!$J$2:$J$10000;EQUIV(1;(B3=ZSD!$A$2:$A$10000)*(C3=ZSD!$E$2:$E$10000);0))*RECHERCHEV(C3;ref_ref;67;0)+RECHERCHEV(K3;Bacs!A:BO;67;FAUX));"")))
 

sebcane

XLDnaute Nouveau
Re : ComboBox 3 niveaux sans doublons et lignes vide

Bonjour Mr Boisgontier je viens de faire des essais avec votre fichier, et le mien modifié.
Je viens de m'appercevoir qu'il y a une eereur au niveau de l'emballage (colonne LQ2) il me trouve pas le bon emballage après quelque essais.
Pourriez vous y jeter un oeil ?
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 122
Membres
103 126
dernier inscrit
Vuagno27