[EXCEL] - UserForm

Bonjour,

j'ai besoin de mettre en place une petite macro et j'ai commencé avec une InputBox mais ça ne fonctionne pas...

J'ai donc voulu faire via un UserForm, ça semble fonctionner jusqu'à l'exécution de la macro contenue dans un Module...

Je vous place les deux fichiers ici
InputBox --> http://dl.dropbox.com/u/7753799/Test_InputBox.xls
UserForm --> http://dl.dropbox.com/u/7753799/Test_UserForm.xls

Le but de cette macro sera de récupérer deux nombres entrés par un utilisateur et de créer:
- a lignes sous la ligne [Equipment Name / Equipment Model / Serial Number]
- 2 x a lignes sous la ligne [Cable Type / From Equipment Name / From Port / To Equipment Name / To Port]
- a lignes sous la ligne [Equipment / Baie / To / To port/interface]

- b lignes sous la ligne [Card Name / Card Part Number / Equipment Name / Slot if needed / Notes]

-------------------------------------------------
Le fichier InputBox fonctionne mais j'ai l'impression que l'on ne peut pas avoir deux valeurs différentes, d'où mon passage à une UserForm...

Ne regardez pas trop la forme, j'ai commencé le VBA lundi ^^ :D

Donc mon UserForm semble fonctionner jusqu'à l'appel du module, ou les lignes ne sont pas incrémentées....

J'ai deux autres soucis...
une ligne en trop est à chaque fois ajoutée
le non respect de la mise en forme

Je ne sais pas si tout est facile à comprendre mais n'hésitez pas à me poser des questions ;)

D'avance merci
Akhlan

13 réponses

  1. J'ai avancé....

    https://dl.dropbox.com/u/7753799/Test_UserForm_2.xls

    J'ai essayé de commenter le plus possible mon code...

    La solution que j'ai apportée c'est de copier via l'UserForm les valeurs saisies par l'utilisateur sur deux cellules de mon tableau pour les récupérer depuis la macro VBA... Je ne sais pas si c'est top mais ça a le mérite de fonctionner ^^

    Donc mes soucis toujours en cours sont:
    - le non respect de la mise en forme de mes cellules copiées / collées
    - le fait que j'ai toujours plus de lignes collées que demandé (je tente de corriger cela en remontant d'une ligne une fois les cellules copiées, infructueux pour le moment...)

    N'hésitez pas à intervenir ;)
    Akhlan
    1. Bonjour,
      Il serait de comprendre exactement ce que vous voulez réaliser car ce n'est pas en essayant de déchiffrer les procédures que cela marchera.

      En plus, pourquoi il n'est pas possible de lancer le formulaire depuis la feuille [Template] ?

      Salutations.
      Le Pingou
      1. Salut Le Pingou,

        c'est indiqué dans le premier message....

        Le but de cette macro sera de récupérer deux nombres entrés par un utilisateur et de créer:
        - a lignes sous la ligne [Equipment Name / Equipment Model / Serial Number]
        - 2 x a lignes sous la ligne [Cable Type / From Equipment Name / From Port / To Equipment Name / To Port]
        - a lignes sous la ligne [Equipment / Baie / To / To port/interface]

        - b lignes sous la ligne [Card Name / Card Part Number / Equipment Name / Slot if needed / Notes]

        Je vais tenter de mieux expliquer alors...

        Ouvre le fichier Test_UserForm_2.xls

        - Je demande à l'utilisateur de donner deux chiffres a et b
        - et une fois validée, la macro copiera
        - la ligne L7 et l'insérera "a" fois
        - la ligne L15 et l'insérera "2xa" fois
        - la ligne L25 et l'insérera a fois
        - la ligne L11 et l'insérera "b" fois

        Mon soucis pour cette étape est que la ligne copiée se retrouve en trop, normal... Donc il faudrait que j'arrive à indiquer à ma macro de remonter d'une ligne (enfin c'est une solution comme une autre mais je débute et je tâtonne...)

        En plus, pourquoi il n'est pas possible de lancer le formulaire depuis la feuille [Template] ? <--> Je ne sais pas... Je te l'ai dit, j'ai entrepris ce projet lundi et pas d'expérience dans le VBA...

        Akhlan
        1. Bonjour,
          Merci pour l'information.
          Je vais voir ce qu'il est possible de réaliser dans ce sens.
          1. Merci Le pingou,

            Comme sur mon fichier, pour chaque valeur rentrée, une ligne de plus apparait dans le tableau... Je t'ai mis deux exemples sur le second onglet de ce que je souhaite une fois les valeurs saisies...

            https://dl.dropbox.com/u/7753799/Test_UserForm_3.xls

            De plus, le nom des équipements sera directement récupéré depuis le champ "Staging" (si possible...)

            Par contre, ta version comporte un gros défaut pour moi.... Je ne comprends pas trop ton code ^^ :D

            En tout cas merci
            Akhlan
            1. J'ai repris votre fichier et donc...

              dans mon exemple, j'ai pris 2 équipements (entrée TextBox1) et 1 carte (entrée TextBox2)...

              le résultat devrait être
              - 2 lignes sous L6 copiées depuis L7 et issues du choix de TextBox1
              - 4 lignes L17 copiées depuis L18 et issues du choix de TextBox1
              - 2 lignes sous L27 copiées depuis L28 et issues du choix de TextBox1

              - 1 ligne sous L12 copiée depuis L12 et issues du choix de TextBox2

              Pour résumer, c'est la ligne de référence qui sert à la copie qui est de trop à chaque fois... J'ai mis dans votre fichier les lignes:
              - en rouge qui ne devraient pas être présente
              - en vert celles qui devraient l'être

              Autre précision, les lignes de référence devront toujours être présente même si l'utilisateur indique 0 dans son choix...

              J'ai aussi si mis au niveau de la plage3 un exemple avec la cellule "Cable Type" afin de voir si la copie des deux lignes L18 et L19 pouvait servir de référence car dans la grande majorité des cas, c'est ces câbles qui seront installés...

              J'espère avoir été plus clair cette fois ;-)

              https://dl.dropbox.com/u/7753799/Akhlan_ccm_test_userform_2_update.xls

              Merci
              akhlan
              1. Bonjour,
                Que faut-il comprendre :
                Autre précision, les lignes de référence devront toujours être présentes même si l'utilisateur indique 0 dans son choix.
                Salutations.
                Le Pingou
              2. Que par exemple, si l'utilisateur rentre
                - 0 pour les équipements, la ligne L7 reste présente tout de même en dessous de [Equipment Name / Equipment Model/Serial Number]
                - 0 pour les cartes, la ligne L13 reste en dessous de [Card Name / Card Part Number / Equipment Name / Slot if needed / Notes]

                En gros 0 ou 1 dans n'importe quel choix de l'utilisateur laisseront une ligne...
            2. Bonjour,
              Merci pour les informations.
              Il est impossible charger votre fichier depuis [drobox.com] en ce moment ... !
              1. Service revenu ;-)
            3. Bonjour,
              Alors là c'est certain que si l'utilisateur entre [0] on ne fait rien du tout.
              Par contre c'est quoi la ligne de référence ... la ligne des titres du tableau ou alors la dernière ligne qui est déjà renseignée (des valeurs présentent..) ... ?