Répartir 32 textbox par ligne de 4

Résolu
pagesalex -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai 32 textbox je voudrais que le texte que je rentre dedans se répartisse comme suit

TB1 / TB2 / TB3 / VIDE / TB4
TB5 / TB6/ TB7 / VIDE / TB8
[...]
TB29 / TB30 /TB31 / VIDE / TB 32

Si vous avez une idée quelconque merci beaucoup ! :)

1 réponse

  1. pagesalex
     
    J'ai un debut qui ne fonctionne pas encore :
    Private Sub CommandButton2_Click()
    L = Worksheets("Fiche Famille").Range("A65536").End(xlUp).Row + 1
    MsgBox (L)

    'Select Case Cells(aj, 19)

    'Case 1
    'Worksheets("Fiche Famille").Cells(L = Me.Controls("TextBox" & nf).Value
    aj = ajoutmf.ListIndex + 4
    f = Cells(aj, 19) - 1
    'For L = L To L + f - 1
    For k = 1 To 29 '4 * f + 1 '/ f * 8
    Worksheets("Fiche Famille").Cells(L, 1) = ajoutmf
    Worksheets("Fiche Famille").Cells(L, 2) = Me.Controls("TextBox" & k).Value
    Worksheets("Fiche Famille").Cells(L, 3) = Me.Controls("TextBox" & k + 1).Value
    Worksheets("Fiche Famille").Cells(L, 4) = Me.Controls("TextBox" & k + 2).Value
    Worksheets("Fiche Famille").Cells(L, 6) = Me.Controls("TextBox" & k + 3).Value

    k = k + 3

    L = L + 1
    end sub
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      bonjour, je crois deviner que tu veux que le contenu des textboxes soit réparti sur différentes cellules: c'est bien cela?
      si oui, pourquoi ne pas commencer par faire ainsi:
      - ajouter "option explicit" en début de module, et donc déclarer toutes tes variables
      - utiliser une nouvelle variable comme indice de boucle (donc pas utiliser L, déjà utilisé pour autre chose)
      - faire une boucle par ligne
      - à la fin de la ligne, ajouter 4 à l'indice utilisé pour les TextBox

      fais cela, teste-le, et tiens-nous au courant, en partageant ton code amélioré.
      0
    2. pagesalex
       
      merci de votre aide j'ai trouvé une solution je vous joins le code
      Private Sub CommandButton2_Click()

      Dim t As Integer


      L = Worksheets("Fiche Famille").Range("A65536").End(xlUp).Row + 1
      aj = ajoutmf.ListIndex + 4
      f = Cells(aj, 19)
      q = (Cells(aj, 19).Value * 3 - 1)
      For t = L To f - 1
      Worksheets("Fiche Famille").Cells(t, 1) = ajoutmf
      For k = 1 To q
      Worksheets("Fiche Famille").Cells(t, 1) = ajoutmf
      Worksheets("Fiche Famille").Cells(t, 2) = Me.Controls("TextBox" & k).Value
      Worksheets("Fiche Famille").Cells(t, 3) = Me.Controls("TextBox" & k + 1).Value
      Worksheets("Fiche Famille").Cells(t, 4) = Me.Controls("TextBox" & k + 2).Value
      Worksheets("Fiche Famille").Cells(t, 6) = Me.Controls("TextBox" & k + 3).Value

      k = k + 3

      t = t + 1
      Next
      Next

      End Sub
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > pagesalex
         
        suggestion:
        For t = L To f - 1 step 2
        For k = 1 To q step 4
        0
    3. pagesalex
       
      Merci du coup j'enleve le k = k + 3 et je mets step ?
      0
      1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > pagesalex
         
        oui, et idem pour t.
        0