Succession USF suivant choix

J

jvd667

Guest
Foreumeuses, Foreuseurs Bien le Bonsoir,

Quel régal, mais quel régal ...

J'ai découvert ce site en juin 2004, et grâce à vous tou(te)s généreux contributeurs, nous autres pauvres utilisateurs de base (euh la remarque ne fait que ma concerner !), nous pouvons espérer un jour vous arriver à l'orteil du pied gauche (le droit irrais bien aussi ...).

Grâce aux satuces, trucs, démos, réponses etc, j'ai pu enfin me mettre à utiliser Excel autrement que pour faire de bêtes calculs !

Enfin pour joindre l'utile à l'agréable, j'ai pu mettre à profit, pour mon travail (mdr) quelques une des innombrables démos présentes sur ce fabuleux forum. Merci encore.

Bon malgré tout, j'ai encore du chemin à parcourir, si si, j'en ai encore beaucoup !

Je suis en train de réaliser une version 2 d'un "Configurateur" pour m'aider dans mon quotidien (entendez par là, mon quotidien du lundi au vendredi, c'est tout). J'ai déjà fait une version 1 avec des macros qui permettent de passer d'une fauille à une autre en fonction des choix préalablement faits, et je peux dire que j'en suis fier (enfin pour mon niveau, car tout est relatif !). J'ai découvert sur divers posts des choses très intéressantes sur les USF (exemple : dimensionner un USF à la taille d'affichage de l'écran). Ma version 2, va conssister à rendre "graphique" mon configurateur tout en le complexifiant quand même un peu. Seulement, vous l'avez compris, je suis arrivé à mes limites. Pas de moquerie SVP !

Ma question :

Comment puis je gérer le multi USF en fonction des choix ?

c.a.d. :
1°) lorsque je lance mon fichier excel, mon premier USF plein écran arrive (jusque là tout va bien)
2°) suite à un choix, je voudrais pouvoir ouvrir un deuxième USF (en gardant quelque part le choix du premier)
3°) etc
4°) globalement, comment gérer le "multi USF", en gardant mes choix (par exemple quelque part dans une cellule d'une feuille), pour arriver en final (toujours sur un USF) à une synthèse de l'ensemble de mes choix, qui me donnera ensuite la liste de prix (toujours sur USF) que je pourrais à loisir imprimer et/ou sauvegarder en tant que fichier .xls

Si vous voyez ou je veux en venir, super, sinon çà confirme mon premier sentiment : JVD 667, continue d'utiliser Excel pour faire des calculs et ne te lance pas dans des trucs qui te dépassent !!!

Bien à vous,

JVD667
 
C

ChristianS

Guest
Salut à tous,
Pour faire se succéder plusieurs USF à la suite 2 règles :

1 - Les variables ou index contenus dans les contrôles (il peut y en avoir un paquet et de différentes sortes) des USF précédents doivent pouvoir être lus par les USF suivants. Sachant que des variables déclarées dans une procédure ne peuvent être lues QUE dans la procédure (en dehors elles sont ignorées) on étend la lisibilité à toutes les autres en les déclarant :
Public MaVariable As Objet (peut-etre string, integer, sheet.....)
dans la procédure principale qui est lancée au démarrage.

2 - Le premier USF est affiché par l'instruction Mon1erUSF.Show et est fermé par Mon1erUSF.Hide. Il en va de même pour tous les suivants, simplement cette instruction doit être placée dans la procédure Click du bouton contrôle qui correspond à OK.
ATTENTION : le fait de faire Mon1erUSF.Hide cache l'image du USF mais ne "vide" un USF des valeurs des ses variables. Celà peut être parfois très gênant et à l'origine de gros bugs. Quand nécessaire on "vide" les variables d'un USF par l'instruction :

Mon1erUSF.Hide
Mon1erUSF.Unload

Voilà, bonne pêche
ChS
 
@

@+Thierry

Guest
Bonjour JVD 667 (on dirait un numéro de vol d'avion lol), re Bonjour Christian, le Forum

Comme je viens juste de te le dire dans un autre Fil de Discussion, attention Christian au "Hide" suivi de "Unload" qui se sert à rien.

Pour notre ami JVD 667 je vais luis conseiller un peu de Lecture :

=> VBA : Utiliser un résultat d'une autre userform du 01-05-04 14:34

=> Transmition de valeur d'un USF form à un autre du 04-08-03 13:50

=> UserForm Modal / Non Modal / Unload / Hide du 19-02-04 19:54

=> Réinitialisation userform du 27-05-03 15:12


Grosso modo tu noteras que deux solutions divergeantes sont préconisées (Conservation du UserForm en Mémoire ou bien Variables Publiques), par contre aller écrire des valeurs temporaires dans une feuille reste vraiment dans un domaine très bricolo.

L'usage du UserForm en mémoire (UserFormX.Hide) est d'un emploi plus facile pour un débutant, par contre selon la quantité de contrôles ActiveX utilisés, et le nombre de UserForm résidents en mémoire, le PC peut se retrouvé vite "Out of Memory"...

L'usage de Variables Publiques Globales nécessite une attention et un soin particulier lors de leur initialisation et lors de la restitution des données qu'elles contiennent, on peut vite se trouver face à des aberrations si on a fait n'importe quoi, car leur portée (durée de vie) est permanente pendant le fonctionnement de l'appli. De même on prendra soin de Déclarer ces Variables Publiques dans le Type qu'il convient pour minimiser l'espace mémoire aussi.

Pour finir une remarque d'ordre générale, une erreur courante des débutants et débutantes en Programmation de UserForm est d'en faire une floppée (de UserForms) car les 3/4 du temps on n'a pas réfléchi au départ à l'utilisation finale et on n'a fait aucun synopsis de l'objectif du Programme et des Moyens Mis en Oeuvre... Une multitudes de UserForms met aussi totalement en déroute les utilisateurs.

En fait, une application "Pro" ne devrait contenir que très très très peu de UserForm... Plus de deux ou trois Userforms commencent à transformer une petite appli sous Excel en une sorte d'Usine à Gaz...où l'utilisateur désoeuvré fini par se perdre aussi...

Je sais bien que lorsque l'on débute c'est plus facile de faire un UserForm pour chaque cas de Figure, mais avec un peu de réflexion sur les besoins rééls on peut arriver à pratiquement tout faire avec un Seul et Unique UserForm, des Control ActiveX tel qu'une CheckBox ou encore un ToggleButton peuvent permettre de basculler tous les autres Controls afin de passer par exemple de Mode Consultation de Donnée au Mode Saisie/Ajout de Données ou encore au Mode Modifictaion Suppression de Données...

Bon courage et bon dimanche
@+Thierry
 
Dernière modification par un modérateur:
J

jvd667

Guest
Bonjour All,

Christian, @+Thierry, merci d'avoir répondu.

Ci joint un extrait de ma matrice (prévisionnelle selon mes capacités lol), afin de répondre à @+Thierry (avec qui je suis entièrement d'accord sur le sujet du synopsis de l'objectif du projet)... J'en avais, au préalable fait un, lala lala lère euh ... Le peu de code que j'ai utilisé grâce à tous les bons contributeurs que vous êtes est aussi inséré dans le deuxième onglet. Je n'ai pas ajouté le USF associé, car sans intérêt a ce stade.

Bon, trèfle de plaisanterie, comme dirais le lapin dans son carré de luzerne, peut-être que je me complique effectivement la vie en voulait trop subdécouper mon projet en une suite excessive de USF. Cependant, comme j'ai deux mains gauches, avec des mouffles, et les doigts inversés, j'avais jugé "judicieux" de le faire comme çà. Bon, mais sûrement, que vous autres éclairés, avez des idées bien plus simples à mettre en oeuvre, comme par exemple :

- tout choix dans un USF écrit les données choisies dans un groupe de cellules dans une feuille dédiée, et ainsi de suite, jusqu'à arriver sur le USF final qui reprendrais la synthèse des données et les tarifs associés

- un nombre limité de USF dans lequel on pourrais choisir un maximum d'éléments et avoir cette fois encore le USF final qui reprendrais la synthèse des données et les tarifs associés

- ...autre idée(s) (euh là, j'avoue qu'elles ne sont pas encore nées dans mon petit esprit)

Enfin, pour l'instant, je suis un peu dans le flou sur la manière de faire évoluer mon projet (c'est marrant comme çà avait l'air simple, et que finalement, sûrement à juste titre d'ailleurs, çà se complique quelque peu).

Sur la base de tout cela, me guideriez vous dans le choix de la stratégie, mais surtout du code à planter dans ce projet pour ne pas passer pour un C.. auprès de mes collaborateurs, ce que je n'espère pas etre auprès de vous autres ...

Bien à vous,

JVD667
(embarquement immédiat, porte 7A, pour Tahiti, vol franc sans retour ... lol pour @+Thierry)
 

Pièces jointes

  • Diagramme_Machines_pour_Excel_downloads.zip
    12.9 KB · Affichages: 121
M

michel

Guest
bonsoir Jvd667 , bonsoir christian , bonsoir @+Thierry

Jvd667 , je n'ai pas tres bien compris ce que tu souhaites realiser
dans l'exemple joint je te proposes de présenter ta matrice dans un TreeView

j'espere que cela pourra t'aider...mais je ne suis pas convaincu que ce soit cela que tu recherches


bonne soiree
MichelXld
 

Pièces jointes

  • Diagramme_Machines_V02_TreeView.zip
    23.6 KB · Affichages: 1 100
J

jvd667

Guest
Bonsoir à tous,

Michel, merci encore de ton aide. Je suis pas mal booké, fin de mois commercial, etc ...

Je vais me pencher sur le TreeView pour l'appliquer à mon projet, et être ainsi plus explicite. A propos, bravo pour le TreeView !

Dès que j'ai fait ma mise à jour, je reviens prendre de vos nouvelles et voir si vous aurez encore pitié de moi ?

Bien à vous,

JVD667
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG