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
 

BOISGONTIER

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Bonsoir,



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



Pourquoi?

JB
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

bonsoir BOISGONTIER , le forum

Et bien les bâtiment dont je parle sont des tours, donc imaginons 50 Tours de 45 Etages avec environs de 50 a 100 bureaux sans compter les annexes ( sanitaires ascenseur....ect ...... je vous laisse calculer le nombre de lignes............ si je met tout en colonnes je vais dépasser les 5000

Et je pense donc qu'il est plus facile de lire classé comme par groupe comme j'ai fait dans le fichier

je vous souhaite un bonne soirée

Bosco.
 

eriiiic

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Bonjour,

Le format choisi pour tes listes ne se prête pas à une exploitation directe.
Une proposition avec fonction personnalisée pour construire la liste des items du niveau voulu sans doublon.
J'ai modifié tes listes pour Batiment 3 Etage 96 pour ne pas être sur un cas particulier. A sélectionner pour le 1er test.

eric
 

Fichiers joints

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonjour eriiiic, le forum,

Super, je te remercie de ton aide.
Apres quelques essais cela me semble fonctionné correctement.

par contre je ne saisi pas la modification concernant le Bat 3 ET96 tu as remplacer des ET75 par ET96 ? le cas particulier c'est parce qu'il est tout seul ? mais ce ne sera pas le seul dans ce cas la !!
autre petite question : sans doublon c'est super mais peux t on trier par ordre alphabétique également ?

encore merci de ton aide,

cordialement
bosco

Sinon c'est super
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

bonsoir eriiiic, le forum

J'ai donc fait quelques essais et je n'ai pas eu de bug ni d'erreur. (Mes essais on été fait en ajoutant a peu pres 45% des données
.
J'ai remplacé la listbat par une comBat et cela fonctionne

mise a part un soucis d'ordre aphabétique avec la listbox etage : ListEta cela focntionne.

Maintenant je me suis rendu compte qu'il fallait que je créer des usf supplémentaire afin de rajouter des etage, rangée ou bureau
mais je suis confronté a un problème, si je doit rajouter des données ( j'ai créer les usf pourle faire ) pendant que je rentre des donnée les listes ne se mettent pas a jour. et je perd les donnée déjà écrite dans le USF.

Je vous joint le fichier mis a jour avec les usf
et je vous remercie tous de l'aide que vous m'apportée

Je vous souhaite une agréable soirée a tous
Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonsoir Bebere

un grand merci pour l'aide que vous m'apportez

J’essaie cela de suite.
@@++
 

eriiiic

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

Re,

je passais rapidement pour te répondre en partie car soucis avec mon micro : je réinstalle tout et je vais être bien occupé.
Mais je vois que Bebere arrive avec une proposition et c'est tant mieux s'il peut prendre la suite ;-)
eric
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

re Bebere,

effcetivement c'est une autre approche et la listEta est bien triée alphabétique .

je vais essayer d'adapter cela au fichier que j'ai joint juste avant votre proposition.

maintenant il me reste a régler les problèmes d'ajout en cours de saisie.

encore une fois merci de votre aide
Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Re eriiiic Bebere, le forum

ce n'est pas grave eriiiic,
je vais m'en sortir avec vous deux j'en suis sur.

Merci encore a vous
Bosco
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Re Bebere,
je suis en train de lire le code et je viens de remarquer:

tbl = .Range("B3:p35")
dans l'initialize


le problème c'est que les listes ne sont pas complète et évolue en permanence

c'est pour cela que j'ai ajouté des usf d'ajout

merci
 

Bebere

XLDnaute Barbatruc
Re : probleme alimentation listBox en cascade

bonjour Bosco,Eric

j'ai pris le fichier du post #6 pour le code des ajouts
mis un code pour insérer un étage,les 2 autres fait en partie(pas de code pour insérer)
tu devrais choisir quel code tu vas garder
la fonction liste doit être dans un module standard et être déclarée public
pour être accessible à partir des autres userform
mis les mêmes textbox dans les 3 usf ajout
 

Fichiers joints

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonsoir Bebere, le forum,

je te remercie de ton aide.

je vais tenter de modifier cela et je te tiens au courant
Encore merci a toi

@@ Bosco13
 

Bosco13

XLDnaute Occasionnel
Re : probleme alimentation listBox en cascade

Bonjour Bebere, Le Fil, Le Forum

Un grand merci car l'ajout fonctionne parfaitement

J'ai completé les autres usf et

J'ai du faire quelques modifications ( pas grand choses !!!!........Lol !) car lorsque je validait un ajout, il ne se rajoutait pas dans les listBox : Il manquait l'info batiment

a = Array("A", "E", "I", "M") au lieu de
'a = Array("B", "F", "J", "N")
et j'ai rajouter :

.Range(a(i) & l) = Me.TextBox1 'ajout texbox 1 pour la mise ajour des list
.Range(a(i) & l).Offset(, 1) = Me.TextBox2
.Range(a(i) & l).Offset(, 2) = Me.TextBox3
.Range(a(i) & l).Offset(, 3) = Me.TextBox4
.

par contre le fichier modele n'est pas avec les bonnes valeurs pour les etages, les rangées, le bureau

Ils portent des nom particulier comme des fleurs, pour certains Ect

Exemple Etage Boulogne, Rangée Tulipe, Bureau vert 1 ... les noms de batiments je les ai changé

Comment faire l'ordre aphabétique quand a la fermeture des usf ajout et retour userform1 ??

encore une fois merci pour l'aide que vous m'apportez

Bonne journée a Tous ( je joint le fichier modifié)

Bosco

EDIT: pour le code que je vais garder : le tiens fonctionnait avec l'ordre alphabetique, si j'arrive a adapter ces codes d'ajouts peut etre le tiens mais les deux peuvent servir pour une autre appli que j'ai en cours.
 
Dernière édition:

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
 

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
 

eriiiic

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
 

Fichiers joints

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
 

Discussions similaires


Haut Bas