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

probleme alimentation listBox en cascade

Bosco13

XLDnaute Occasionnel
Bonsoir le forum,

je me tourne a nouveau vers vous car j'ai un petit soucis pour alimenter soient des combobox, soit des listbox en cascade.

J'ai réussi a faire si mes données sont toutes sur les même colonnes, c'est dire les sélection, le tri les doublon Etc...!


Mais le problème c'est que je vais me retrouver avec plus de 5000 lignes donc trop contraignant pour la gestion.

j'ai donc fait mes listes ( très réduite pour le moment) sur une feuille. et il y a des critère de sélection.

Mais je n'arrive pas a trier et alimenter les listbox en cascade et gérer le tri et doublon . et pourtant j'ai essayer pas mal de code de la mine d'or du forum

j’espère que l'un d'entre vous, arrivera a m'aider.

je vous en remercie d'avance

Bonne soirée a tous
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonjour eriiiic , Bebere, Le forum

J'ai avancé avec le fichier, j'ai completé le fichier avec les bonnes données et cela fonctionne. ( avec le fichier de eriiiic et les modifs de Bebere)

Le probleme que je rencontre c'est avec le tri alphabétique des listbox et combobox, j'ai essayé plusieurs solutions mais rien a faire
aucun tri ne se fait.

Je vous souhaite a tous une bonne journée
Amicalement
Bosco
 

Bebere

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

bonjour Bosco,le forum
ajout du tri module2
 

Pièces jointes

  • ListeCascadeBoscoV2.xlsm
    51.3 KB · Affichages: 127
  • ListeCascadeBoscoV2.xlsm
    51.3 KB · Affichages: 140
  • ListeCascadeBoscoV2.xlsm
    51.3 KB · Affichages: 140

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonjour, Bebere, Le Forum

Merci a toi de ta réponse.

Je viens d'essayer, le tri se fait bien a l'initialize mais malheureusement la procedure de tri s'arrete sur cette lligne a chaque fois que je valide un nouvel etage, un nouveau bureau et une nouvelle rangée !

With Feuil2
.Range(.Cells(3, a(i)), .Cells(l, a(i)).Offset(, 3)).Select

Bonne journée

Bosco
 

eriiic

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Bonjour,

un essai qui intègre le tri à la fonction personnalisée. Tu peux donc laisser tes listes dans l'ordre que tu veux.
Par contre si tu veux que ce soit trié par étage il faut saisir ET05, voir même ET005 si tu as 100 étages.
ET5 est > à ET10...

eric
 

Pièces jointes

  • ListeCascadeBoscoV2.xlsm
    51.8 KB · Affichages: 117
  • ListeCascadeBoscoV2.xlsm
    51.8 KB · Affichages: 119
  • ListeCascadeBoscoV2.xlsm
    51.8 KB · Affichages: 130

Bebere

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

bosco içi c'est bon
essaye comme suit
pour avoir un tri valable je pense que tu devrais écrire les chiffres
ET075,ET096,ET100
à tester
le code est fait à partir de l'enregistreur macro et ensuite adapter,essaye de ton côté
juste adapté range et key1,2,3 après :=
Code:
Public Sub TriListe()
    Dim l As Long

    With Feuil2
        l = .Range(a(i) & 2000).End(xlUp).Row '2000 à adapter si plus de ligne

        .Range(.Cells(3, a(i)), .Cells(l, a(i)).Offset(, 3)) _
        .Sort Key1:=.Cells(3, a(i)), Order1:=xlAscending, Key2:=.Cells(3, a(i)).Offset(, 1) _
                    , Order2:=xlAscending, Key3:=.Cells(3, a(i)).Offset(, 2), Order3:=xlAscending, Header:= _
                      xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
                      DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
                      xlSortNormal
    End With

End Sub
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Re eriiiic , Bebere, le forum

Merci pour votre aide a tous les deux

eriiiic : cela fonctionne pour etage, rangée mais pour ajout bureau la liste boxt s'efface mais ne s'affiche pas ?

Bebere, je vais essayé de finir l'adaptation, mais c'est pas gagné !!!!

A tous les deux : concernant les numeros : Comme je l'expliquais un peu plus haut Les etages portent des noms particuliers ( pas de numero)
les rangées c'est soit des chiffres soit des noms, par contre les bureaux c'est un parametre imposé BUR - 001 , 002 ect

Je vous souhaite un bon appétit

@@@++ Bosco
 

spsp22

XLDnaute Nouveau
Re : probleme alimentation listBox en cascade

Bonjour bebere,
J'ai pris votre fichier et adapté
j'ai adapter le code et le problème est le mème que
eriiiic : cela fonctionne pour etage, rangée mais pour ajout bureau la liste boxt s'efface mais ne s'affiche pas ?

bonne après midi
serge
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Bonjour,

Je n'avais pas testé tes boites d'ajouts, juste ajouté le tri.
C'est pas qu'elle ne s'affiche pas, c'est que tu l'effaces.
Pourquoi tu as ça dans ajout bureau ? :
Code:
        With UserForm1
            .ListEta.List = liste(.ComBat)    'liste déplacé module1
        End With
Sub ListEta_Click() nettoie la liste bureau : ListBur.Clear

Tu devrais plutôt avoir .ListBur.List = liste(bat, rang, étage) non ?

eric
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

re, eriiiic, Bebere, Le Forum,
Bonjour spsp22

spsp22, merci pour l'essai

je viens d'adapter également et j'en suis arrivé a la même conclusion que toi.


Merci et bonne Apres midi

Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Re eriiiic

Sub ListEta_Click() nettoie la liste bureau : ListBur.Clear

Tu devrais plutôt avoir .ListBur.List = liste(bat, rang, étage) non ?

Tu as tout a fait raison un oublie de ma part .!!!!!!!!

Par contre, je ne met pas listBat car j'ai un bug dans le tri .

Et maintenant cela a l'air de fonctionner.

Merci a toi

Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Re eriiiic

Sub ListEta_Click() nettoie la liste bureau : ListBur.Clear

Tu devrais plutôt avoir .ListBur.List = liste(bat, rang, étage) non ?

Tu as tout a fait raison un oublie de ma part .!!!!!!!!

Par contre, je ne met pas listBat car j'ai un bug dans le tri .

Et maintenant cela a l'air de fonctionner.

Merci a toi
EDIT : Je viens de me rendre compte d'une chose que je n'avais pas remarqué, lorsque je rentre une nouvelle donnée elle se classe egalement par ordre dans la Feuille listes c'est genial .!!
Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

re A tous

Tout fonctionnait normalement. Jusqu’à l'ajout d'un Bâtiment en vue de préparer les Colonnes.
Précision: je n'ai pas encore les listes des étages de ces bâtiments je le ferai au fur et a mesure que je les recevrai.

J'ai bien modifier certain paramètres :
dans l'initialise usf1 ja'i ajouté la colonne cellule
Q1Set Plage = Worksheets("LISTES").Range("A1:Q1") 'PENSEZ A METTRE A JOUR POUR AJOUT DE BATIMENT

Dans chaque usf about j'ai ajouter egalement la Q
: a = Array("A", "E", "I", "M", "Q") 'PENSEZ A METTRE A JOUR POUR AJOUT DE BATIMENT

le Batiment apparait bien dans combat et j'ajoute un étage complet ... cela valide bien pour le nouveau batiment
mais pas sur la bonne ligne cela efface l’Entête de colonne ? Etage Rangée et Bureau

voila le dernier petit bug trouvé.

Sinon cela fonctionne correctement

Bonne fin de journée a tous

Bosco
 

eriiic

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Je viens de me rendre compte d'une chose que je n'avais pas remarqué, lorsque je rentre une nouvelle donnée elle se classe egalement par ordre dans la Feuille listes c'est genial .!!
Bosco
C'est sans doute le tri ajouté par bebere qui ne plante plus. Tu as du le réactiver. S'il fonctionne maintenant tu peux mettre en commentaire celui celui que j'avais ajouté dans la fonction.
eric
 

Bebere

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

bonsoir Bosco,Eric,spsp
un autre code pour a
Code:
Private Sub UserForm_Initialize()
    Dim Plage As Range, cel As Range, i As Byte
    '    Set f = Sheets("LISTES") 'inutile
    '    Me.ComBat.List = Application.Transpose(Range(f.[a1], f.[iv1].End(xlToLeft)))'inutile
    'Plage cellules a adapter
    Set Plage = Worksheets("LISTES").Range("A1:M1")
    '    ComBat.Clear
    For Each cel In Plage
        If cel <> "" Then
            ComBat.AddItem cel
          [COLOR="#FF0000"] ReDim Preserve a(i): a(i) = Split(cel.Address, "$")(1)'initialise la variable tableau a[/COLOR]
            i = i + 1

        End If
    Next cel

    TexDate.Value = Format(Date, "DDDD dd mmmm yyyy  ")    'place la date dans la TextBox


End Sub
une question dans feuille listes as-tu vraiment besoin des colonnes bâtiments(A,E,I,M)
on pourrait faire sans
 

Discussions similaires

Réponses
21
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…