Macro ajout textbox et insèrer lignes

Résolu
Bonjour;

Voici mon problème, qui n'est vraiment pas facile à expliquer.
Dans le fichier joint, il y a le USF8 qui s'ouvre automatiquement.

Je prends comme exemple la ligne 1,

Avec la macro tout est ok. Seulement, maintenant j'aimerais que lorsque je clique sur le bouton "AJOUTER DEFAUT" il y ait le Textbox5 et 6 qui s'ajoutent (ça c'est ok, voir fichier) et que lorsque je clique sur valider, il y ait une ligne qui s'insère dans le tableau en dessous de la ligne active et que les valeurs des textbox 5 et 6 s'affichent dans les colonnes H et I mais dans la ligne insérée (voir ligne en Rouge).
Je ne sais pas si vous comprenez ce que je veux dire?

Le problème aussi; c'est que je peux avoir plusieurs défaut, par exemple, pour 1 lot si j'ai 5 défauts, je voudrais donc que dans le USF; si je clique 5 fois sur le bouton "AJOUTER DEFAUT", il y ait 5 fois les 2 textbox qui s'ajoutent et que quand je clique sur valider, comme dans l'exemple du dessus, il y ait 5 lignes qui s'insèrent avec les qtés refusées et les codes défaut....

En tout cas si vous pouvez encore me donner un coup de main cette fois ci, ce serait vraiment très gentil de votre part.

Merci encore pour tout ce que vous avez déjà fait pour moi.

http://www.cijoint.fr/cjlink.php?file=cj200810/cij7cEs5gh.xls
Configuration: Windows Vista
Internet Explorer 7.0

19 réponses

  1. persone n'a des solution alors :(
    1
    1. Contributeur
      Bonjour,
      J'ai optimiser ton classeur mais je n'ai pas compris ce qui devait être entrer quand tu clic sur le boutont ajouter défaut ?
      (Y fonctionne plus pour le moment)
      https://www.cjoint.com/?kAshlG0Rwc
      Tu regarde si ça te va et tu explique mieux pour la suite.
      A+
      0
      1. En dans l’exemple du fichier joint, quand tu cliques sur le bouton ajouter défaut, il y a les 2 textbox qui s’affichent, mais en fait pour faire cela pour l’exemple, j’ai utilisé Visible=False.
        Ce que je voudrais c’est que quand je clique sur ce bouton, il y ait 2 nouvelles textbox qui s’insèrent (comme dans l’exemple) et que si par exemple je clique 5 fois sur ce bouton, il y ait 5 fois 2 textbox qui s’insèrent.
        Tu vois ce que je veux dire ?

        Et que quand je clique sur valider, les valeurs s’insèrent dans le tableau (pour l’instant ça c’est ok).
        Mais que si il y a des nouvelles textbox (comme le lot 1 en exemple,lignes 2 et 3), ces valeurs s’insèrent dans la lignes du dessous et ainsi de suite…

        Ce n’est pas facile a expliquer, mais c’est moins compliqué que ça en a l’air.
        N’hésitez pas a demander pour toutes autres questions.

        http://www.cijoint.fr/cjlink.php?file=cj200810/cij7cEs5gh.xls
        0
        1. Contributeur
          Voudrais-tu arrèter de faire constament remonter ton topic, nous ne sommes pas toujours sur le forum mais t'inquiète, les sujets suivis sont visibles dans les interventions des membres qui réponde.
          Concernant ta question, qu'à-tu fait du classeur précédant car le classeur que tu remet est le même dans les deux cas.
          Ma question n'est pas d'ajouter des textes mais de mettre QUOI DEDANS.

          Sur les 4 lignes que tu met sur la feuille c'est pas évident.
          A+
          0
          1. Ok, désolé.
            Donc on est d’accord pour l’ajout des textbox.
            Les valeurs que je met dedans se trouvent dans les colonnes H (qté refusé) et I ( Code défaut)
            Donc .Cells(ligne, 8) = TextBox4.Value
            .Cells(ligne, 9) = TextBox3.Value
            ça c’est ok.
            Ce que je voudrais maintenant c’est qu’à chaque fois que je clique sur ajout défaut, les valeurs des 2 nouvelles textbox s’insèrent dans la lignes du dessous. Comme la ligne en rouge dans le fichier.

            http://www.cijoint.fr/cjlink.php?file=cj200810/cij3WmzGjw.xls
            0
            1. Contributeur
              Tu ne répond toujours pas à ma question..
              J'ai (et j'avais) bien compris que quand tu clic sur le bouton <Ajouter défaut> Tu voulais deux textBox en plus avec Qt refusqée et code défaut sur la ligne rouge.
              Mais tu parle d'avoir jusque 5 couple de textBox en plus...
              Dans le cas ou ont reclic une deuxième fois.. Ont met quoi dans les textBox et ainsi de suite.
              Remarque.. C'est obligé d'avoir des TextBox ?, un liste avec 2 colonnes ne serait-elle pas mieux ?
              A+
              0
              1. En faite dans la colonne H je dois rentrer des quantités; elle peuvent être différentes à chaque rentrée.
                Par contre dans la colone I, ce sont des codes (spécifiques a mon entreprise) il y en a maximum une vingtaine. Donc une listbox serait parfaite

                J'espère avoir répondu a ta question, excuse pour le mal entendu...
                0
                1. personne n'a d'idée pour m'aider alors :(
                  0
                  1. Contributeur
                    PPffffttt
                    Dans le cas ou ont reclic une deuxième fois.. Ont met quoi dans les textBox et ainsi de suite.
                    Voir poste 10
                    0
                    1. ben je pensait avoir répondu dans le post 11, que ne comprends tu pas la dedans?
                      0
                      1. Contributeur
                        Je vais essayer d'expliquer à ta place alors...
                        quand ont clic sur le bouton ont ajoute 2 textBox mais ont ne met rien dedans !!
                        Ce sont des textbox de saisies ?
                        Si oui, ça n'ira pas avec une liste box bien sûr.
                        Bon, je prépare cela en attendant ta réponse.
                        A+
                        0
                    2. Contributeur
                      Un fichier qui répond litéralement à ta demande, chaque fois que lu clic sur le bouton il y a 2 TextBox en plus.

                      https://www.cjoint.com/?ldlXWAIVaj

                      Ensuite pour lire et mémoriser les textbox si nécessaire Voir cette astuce

                      A+
                      0
                      1. Bonjour , je revient juste sur ce sujet pour poser une question. J'avais réussi avec votre aide à terminer mon code.
                        J'ai juste maintenant un autre problème, lorsque que je clique sur le bouton "ajouter défaut" il y a 2 textbox qui s'affichent à chaque clic, c'est parfait.
                        Seulement pour un autre tableau du même genre il faudrait qu'il y ait 2 textbox + 1 checkbox qui s'affiche.
                        J'ai modifier le code qui me semblait juste, mais maintenant quand je clique sur le bouton, il y juste la checkbox et une textbox au lieu de 2 qui s'affichent.
                        J'ai du faire une petite erreur dans le code mais je n'arrive pas a trouver la quelle,,,,

                        (Les textbox sont nommée Textbox 00 à 08, puis de 30 à 38 et les checkbox de 40 à 48)

                        Merci de votre coup de main.
                        Cordialement

                        Private Sub CommandButton1_Click()
                        Dim Nom1 As String, C As Long, ligne As Long
                        Dim Nom2 As String

                        Dim Cont As Control

                        Dim N As Long

                        If NBClic = 0 Then
                        End If

                        For Each Cont In Me.Controls
                        If TypeOf Cont Is MSForms.TextBox + TypeOf Cont Is MSForms.CheckBox Then
                        N = Val(Right(Cont.Name, 2))
                        If N = NBClic Or N = NBClic + 30 And N = NBClic Or N = NBClic + 40 Then
                        Cont.Visible = True
                        C = C + 1
                        If C = 2 Then NBClic = NBClic + 1: Exit For
                        End If
                        End If

                        Next Cont
                        ligne = Listligne.List(ComboBox1.ListIndex)
                        Rows(ligne + 1).Insert xlDown
                        Range("A" & ligne & ":E" & ligne + 1).FillDown

                        ' Frame2.Visible = False

                        End Sub

                        Merci encore
                        0
                        1. personne pour me donner un petit coup de mai :(
                          0
                          1. Contributeur
                            Bonjour,
                            Si tu quitte après 2 contrôles ce sera difficile d'en avoir 3 ?
                            et tu devrais faire cela en 2 parties, mais je n'ai pas tout le contexte pour voir.

                            If C = 2 ?? Then NBClic = NBClic + 1: Exit For
                            A+
                            0
                            1. Bonjour,

                              Je vois ce que voulez dire... Malheureusement j'ai oublié le prog à mon boulot...

                              En fait, si j'ai bien compris ce que dites, en mettant peut-être :

                              If C = 3 Then NBClic = NBClic + 1: Exit For

                              ça devrait devrait fonctionner?

                              Il me semble avoir essayé ça mais sans succès...
                              A voir...
                              0
                              1. Bonjour, j'ai essayé mais ça ne fonctionne pas...
                                Voici le fichier en question:

                                http://www.cijoint.fr/cjlink.php?file=cj200901/cijDcpiRic.xls

                                je vois pas ce qu'il faut faire....
                                0
                                1. Contributeur
                                  Je sais pas pourquoi mais je ne peu faire fonctionner l'appli de ce fait j'ai pas pu tester mais je pense que la modif devrait y remédier.
                                  Remplacer dans le module du bouton
                                      'Ajouter en haut du module
                                      'Static NBClic as byte
                                      
                                      NBClic = NBClic + 1
                                      For Each Cont In Me.Controls
                                          If TypeOf Cont Is MSForms.TextBox Or TypeOf Cont Is MSForms.CheckBox Then
                                              N = Val(Right(Cont.Name, 2))
                                              If N = NBClic Or N = NBClic + 30 Or N = NBClic + 40 Then
                                                  Cont.Visible = True
                                                  C = C + 1
                                                  If C = 3 Then Exit For
                                              End If
                                          End If
                                      Next Cont

                                  Tu dit...
                                  A+
                                  0