Userform Excel

Résolu/Fermé
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 - 12 nov. 2008 à 18:32
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 - 24 nov. 2008 à 09:56
Bonjour,

Jai un user form1 avec bouton click que quand je clic un ouvre userform2 ouvre, jaimerais que quand je clic jouvre le user form 2 mais que le userform 1 se ferme

voila ce que jai fais c tout simple mais bon je suis novice à la matiere

userform2.show
userform1:unload me

end sub

Cest quoi mon erreur???
A voir également:

12 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 nov. 2008 à 21:59
bonjour

Cest quoi mon erreur???

Ceci sans doute...

UserForm2.Show
Unload userform1
0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9
13 nov. 2008 à 02:16
Non ca fonctionne toujours pas
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2008 à 08:58
bonjour

Mets nous ton exemple sur http://www.cijoint.fr/
car il doit y avoir un autre problème : la formule que j'ai mise fonctionne tout à fait.
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
13 nov. 2008 à 09:01
Bonjour,
A mon avis il faut mettre la commande unload userform1 dans le code d'initialisation de la userform2..

Sinon il va attendre la fin de l'execution du userform 2 pour unloader le userform 1.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2008 à 09:13
bonjour

C'est exact ou alors il faut lancer

UserForm1.Show 0

Puis mettre dans le bouton
UserForm2.Show 0
Unload userform1

Je préfère fonctionner en modal pour la liberté d'utilisation mais cela ne fonctionne pas en excel 97
0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9
13 nov. 2008 à 14:01
http://www.cijoint.fr/cjlink.php?file=cj200811/cijK5T6HIO.xls

voici le petit test bon cest pas mon programme mais la fonction que je veux est semblable

merci encore de votre aide
0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9
13 nov. 2008 à 14:09
Une autre question.

Si Exemple jai des feuilles excel plus précisement 120 feuilles 4 page chacune mise en page chacune à la meme base mais avec des petit dessin différent. Donc jai plus de 10 mo de mise en page donc si je rajoute de la prog en plus ca vas etre enorme. Voila ma question si je divise en plusieurs classeurs et que dans le premier jai un user form avec des bouton option est ce possible si je coche bouton 1 jouvre le classseur 1 et ainsi de suite...... est ce que ca va bien fonctionner si c possible

Pourquoi faire ca .... cest 120 feuilles sont des modele Ex: de voiture. mais je voudrais les remplir en simple clic dans des userform avec des boutons options. Ex: quelle marque Renault megane je valide la feuille renault est activé et jarrive dans un autre user form quelle couleur je coche bleu bleu sinscrit dans la feuille megane je valide et un autre userform ouvre etc .......

merci
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2008 à 21:08
bonjour

En fait, tu raisonnes ta programmation de manière séquentielle en bloquant l'utilisateur sur un chemin à sens unique et bordé de murs. (je caricature bien sûr, c'est pour te faire voir le schéma).

Excel et la programmation VBA fonctionnent en événementiel et tu es sur un terrain de golf tout seul et donc tu dois pouvoir choisir ton parcours selon l'inspiration du moment et tant pis pour toi si tu sors du terrain, il suffit de revenir.

Il me semble que pour en revenir à ton programme, tu n'as pas besoin de dizaines de formulaires, mais plutôt de quelques unités au maximum paramétrables qui vont alors documenter la bonne feuille, au bon endroit.

Tu peux aller mettre les infos sur chacune des 120 feuilles avec un seul code utilisant les fonctions adéquates.

La taille du code est minime par rapport aux informations et aux images éventuelles. Par exemple, si tu as une formule un peu complexe que tu répètes 10 fois par feuille, il te suffit de la nommer et tu gagnes des kilos octets pour ton code.
0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9
13 nov. 2008 à 21:28
Merci je comprend tres bien ce que tu me dit, mais comme je te disais jai 120 feuilles déja mise en page car cest les trame en plus jai environ 5000 a 6000 autre possibilité donc 6000 variante cest bcoup de code. Donc ce que jai fais cest plutot mettre en page exemple des mesures dessiné dans excel reste qua mettre les bonne mesure a coté.

Peut etre jaurais dû utiliser autre chose comme c++ mais comme je dit je suis encore débutant en la matière je programme vraiment que depuis 1 semaine mais bon.

Tu m'aiderais bcoup si tu me donnerais la solution pour fermer userform precedent dans le code suivant

If OptionButton19.Value = True Then
str = OptionButton19.Caption
Worksheets("yamaska 8x10").Range("J62").Value = str
Worksheets("yamaska 8X10").Range("P62").Value = "Blanc"
UserForm13.Show
End If
End Sub

Donc apres le userform13.show je veux que le userform 12 se ferme ou se cache jai utilisé hide et unload et sans succès.

Merci pour ta carricature parce que quand meme cest pas évident de comprendre comment fonctionne la prog en si peu de temps
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
13 nov. 2008 à 21:54
bonjour

cest pas évident de comprendre comment fonctionne la prog en si peu de temps

Cela, je veux bien le comprendre et certains ont un mal fou à rentrer dans le système événementiel de programmation alors que dans la vie courante, cela ne les dérange pas d'allumer l'autoradio en conduisant par exemple.

Cela veux dire que l'utilisateur a le droit d'embrayer pour partir ou de régler les rétros ou d'allumer le poste : c'est lui qui décide et le programme gère les événements qu'il déclenche.

Ainsi, si tu utilises des variables pour les zones que j'ai mises en gras dans ton code tu n'as pas à écrire une userform pour chaque fonction.
If OptionButton19.Value = True Then
str = OptionButton19.Caption
Worksheets("yamaska 8x10").Range("J62").Value = str
Worksheets("yamaska 8X10").Range("P62").Value = "Blanc"
UserForm13.Show
End If

Pour fermer ton écran, dans UserForm_Initialize() de UserForm13 tu mets
Unload userform12

0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9
20 nov. 2008 à 16:20
salut Gbinforme

Je me permet de te demander de m'aider encore une fois,

J'ai un user form avec des bouton option, si je coche le bouton 3 J'ai des traits qui doivent s'ajouter sur ma feuilles 2 de mon classeur, le problème est qui vont toujours sur ma feuilles 1

Pour dessiner cest trait jai fais appel à enregistreur de macro donc cest peut etre mon probleme, je te laisse mon bout de code si tu peux me dire comment faire pour les faire apparaitre seulement sur ma feuil 2

Merci

Jean-Francois

If OptionButton3.Value = True Then
Worksheets("Feuil1").Range("H9").Value = "8X8"
Worksheets("Feuil1").Range("C16").Value = "6/12"
Worksheets("Feuil2").Range("A4,A101,A198,A292").Value = "8X8"
Worksheets("Feuil2").Range("X4,X101,X198,X292").Value = "6/12"

ActiveSheet.Shapes.AddLine(117#, 232.5, 156#, 232.5).Select
ActiveSheet.Shapes.AddLine(156#, 232.5, 156#, 292.5).Select
ActiveSheet.Shapes.AddLine(59.25, 293.25, 156#, 293.25).Select
Selection.ShapeRange.Flip msoFlipHorizontal
ActiveSheet.Shapes.AddLine(367.5, 240#, 390#, 240#).Select
ActiveSheet.Shapes.AddLine(390#, 240#, 390#, 292.5).Select
ActiveSheet.Shapes.AddLine(312#, 292.5, 390#, 292.5).Select
Selection.ShapeRange.Flip msoFlipHorizontal

Ps jai essayé ajouter devant chaque activesheet Worksheets("feuil2") et sans succès
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
20 nov. 2008 à 16:24
essaye d'ajouter:

Worksheets("feuil2").select
0
Graphick Messages postés 109 Date d'inscription mardi 16 septembre 2008 Statut Membre Dernière intervention 12 mars 2022 9 > xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016
20 nov. 2008 à 16:30
Jai essayé comme ca et sans resultat erreur de syntaxe

Worksheets("Feuil2").Select ActiveSheet.Shapes.AddLine(117#, 232.5, 156#, 232.5).Select
Worksheets("Feuil2").Select ActiveSheet.Shapes.AddLine(156#, 232.5, 156#, 292.5).Select
Worksheets("Feuil2").Select ActiveSheet.Shapes.AddLine(59.25, 293.25, 156#, 293.25).Select
Worksheets("Feuil2").SelectSelection.ShapeRange.Flip msoFlipHorizontal
Worksheets("Feuil2").Select ActiveSheet.Shapes.AddLine(367.5, 240#, 390#, 240#).Select
Worksheets("Feuil2").SelectActiveSheet.Shapes.AddLine(390#, 240#, 390#, 292.5).Select
Worksheets("Feuil2").SelectActiveSheet.Shapes.AddLine(312#, 292.5, 390#, 292.5).Select
Worksheets("Feuil2").Select Selection.ShapeRange.Flip msoFlipHorizontal
0
xav3601 Messages postés 3288 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 2 mars 2016 311
24 nov. 2008 à 09:56
Je voulais dire tu le met avant de taper tes lgnes:



If OptionButton3.Value = True Then
Worksheets("Feuil1").Range("H9").Value = "8X8"
Worksheets("Feuil1").Range("C16").Value = "6/12"
Worksheets("Feuil2").Range("A4,A101,A198,A292").Value = "8X8"
Worksheets("Feuil2").Range("X4,X101,X198,X292").Value = "6/12"

Worksheets("feuil2").select

ActiveSheet.Shapes.AddLine(117#, 232.5, 156#, 232.5).Select
ActiveSheet.Shapes.AddLine(156#, 232.5, 156#, 292.5).Select
ActiveSheet.Shapes.AddLine(59.25, 293.25, 156#, 293.25).Select
Selection.ShapeRange.Flip msoFlipHorizontal
ActiveSheet.Shapes.AddLine(367.5, 240#, 390#, 240#).Select
ActiveSheet.Shapes.AddLine(390#, 240#, 390#, 292.5).Select
ActiveSheet.Shapes.AddLine(312#, 292.5, 390#, 292.5).Select
Selection.ShapeRange.Flip msoFlipHorizontal
0