Colonne et combobox sur un excel de myDearFriend!
#1
Débutant XLPages

Inscription: 29/05/2012

Messages: 1

Système d'exploitation:
PC
Version Excel utilisée:
OFFICE 2003
Posté le : 29-05-2012 22h01
Bonsoir,

    Je tiens d'abord à vous remercier car aprs qq semaine de recherches et différentes programmations je suis tombé sur un fichier " Comboencascade.xls" qui m'a enlever une belle épine du pied.

    Je recherchais le moyen d'avoir des listes en cascades en tenant compte du choix précédent.

     Maintenant c'est chose faite mais ayant d'un coté une triple liste et d'un autre un double liste où les choses se compliquent :

    le premier choix fonctionne parfaitement mais pas le second car les données de base se trouve 2 colonnes à droite et la combobox prend la colonne à droite.

le triplicat prend combobox 1, 2 et 3  avec les colonnes A B C

le doublet CBXprojet et cbxlot avec les colonne B et D
mon problème se situe au niveau des commentaires "test" et "end test"

  Ci joint mon code :

private Sub UserForm_Initialize() ' triple listes en cascade
Dim L As Long

    'Mémoriser le tableau de données avec une colonne supplémentaire qui servira à la
    'gestion des niveaux d'alimentation des combobox
    With Sheets(suivicapa)
        L = .Range("A65536").End(xlUp).Row
        TabTemp = .Range(.Cells(1, 1), .Cells(L, 5)).Value
    End With
    MAJCombo ComboBox1, 0
    MAJCombo Cbxprojet, 0
    MAJCombo Cbxlot, 0
    MAJCombo cbxpilote2, 0
    MAJCombo cbxpilote, 0 
  
  Cbxpilote.RowSource = "listes!pilote"    'genere liste pilote
  Cbxpilote.ListIndex = -1
   
  cbxpilote2.RowSource = "listes!pilote"    'genere liste pilote
  cbxpilote2.ListIndex = -1
   
End Sub

Private Sub ComboBox1_Change()
Dim L As Long
    'Remise à zéro des niveaux
    For L = 1 To UBound(TabTemp, 1)
        TabTemp(L, 5) = 0
    Next L
    'MAJ du combo n°2 avec un flag de niveau 1
    MAJCombo ComboBox2, 1, ComboBox1.Text
    'RAZ des combo suivantes
    ComboBox3.Clear
   
End Sub

Private Sub ComboBox2_Change()
    'MAJ du combo n°3 avec un flag de niveau 2
    MAJCombo ComboBox3, 2, ComboBox2.Text
    End Sub
   
    'test
   
    Private Sub Cbxprojet_Change()
Dim L As Long
    'Remise à zéro des niveaux
    For L = 1 To UBound(TabTemp, 1)
        TabTemp(L, 5) = 0
    Next L
    'MAJ du combo n°2 avec un flag de niveau 1
    MAJCombo Cbxlot, 1, Cbxprojet.Text

    ' end test
   
End Sub

Private Sub MAJCombo(Combo As ComboBox, Niv As Byte, Optional V As String)
Dim Coll As New Collection
Dim L As Long
    'Gestion du flag de niveau dans la colonne supplémentaire (5) du tableau
    For L = 1 To UBound(TabTemp, 1)
        If Niv = 0 Then
            'RAZ du flag de niveau
            TabTemp(L, 5) = 0
        Else
            TabTemp(L, 5) = Application.WorksheetFunction.Min(TabTemp(L, 5), Niv - 1)
            'Si l'élément est retenu alors on incrémente le flag de niveau
            If TabTemp(L, Niv) = V Then
                TabTemp(L, 5) = TabTemp(L, 5) + 1
            End If
        End If
    Next L
    'Détermination de la liste sans doublon
    On Error Resume Next
    For L = 1 To UBound(TabTemp, 1)
        If TabTemp(L, 5) = Niv Then
            Coll.Add TabTemp(L, Niv + 1), CStr(TabTemp(L, Niv + 1))
        End If
    Next L
    On Error GoTo 0
    'Mise à jour du combobox
    Combo.Clear
    For L = 1 To Coll.Count
        Combo.AddItem Coll.Item(L)
    Next L
End Sub



   Pouvez vous m'indiquer comment pouvoir filtrer mais avec 1 autre colonne d'écart

   merci d'avance

   bonne soirée  
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes