Userform Excel

Résolu
Graphick Messages postés 118 Statut Membre -  
xav3601 Messages postés 3390 Statut Membre -
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???
Configuration: Windows XP
Internet Explorer 7.0

12 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Cest quoi mon erreur???

    Ceci sans doute...

    UserForm2.Show
    Unload userform1
    0
  2. Graphick Messages postés 118 Statut Membre 9
     
    Non ca fonctionne toujours pas
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  4. xav3601 Messages postés 3390 Statut Membre 312
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  7. Graphick Messages postés 118 Statut Membre 9
     
    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
  8. Graphick Messages postés 118 Statut Membre 9
     
    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
  9. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  10. Graphick Messages postés 118 Statut Membre 9
     
    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
  11. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
  12. Graphick Messages postés 118 Statut Membre 9
     
    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
    1. xav3601 Messages postés 3390 Statut Membre 312
       
      essaye d'ajouter:

      Worksheets("feuil2").select
      0
      1. Graphick Messages postés 118 Statut Membre 9 > xav3601 Messages postés 3390 Statut Membre
         
        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
  13. xav3601 Messages postés 3390 Statut Membre 312
     
    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