Effectuer une fonction a toutes les lignes

patapoufy Messages postés 3 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je fait un programme en vb qui sépare la partie a gauche et la partie a droite de ":"

exemple1 :

-textbox1 =
jean:yves


quand j'appuie sur le button4

-textbox2 =
jean

-textbox3 =
yves


voici mon code :
  Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim separateur() As String
        ''separateur(0) : la partie gauche,
        ''separateur(1) : la partie droite.

        separateur = Split(TextBox1.Text, ":")
        TextBox2.Text = separateur(0)
        TextBox3.Text = separateur(1)


    End Sub


voila donc mon code marche parfaitement.

Par contre ce que j'aimerai faire maintenant c'est effectuer la même fonction avec plusieurs lignes dans mon textbox

exemple2 :

-textbox1 =
jean:yves
sebastien:raymond
michel:uber
ratatouille:gaspert


quand j'appuie sur le button4

-textbox2 =
jean
sebastien
michel
ratatouille


-textbox3 =
Yves
raymond
uber
gaspert


voila en espérant avoir été clair =) .

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonsoir, source d'inspiration:
    Private Sub ptsplit()
            Dim lignes() As String
            Dim ligne
            Dim parties() As String
            Dim txt1, txt2
            ''separateur(0) : la partie gauche,
            ''separateur(1) : la partie droite.
    
            lignes = split([A1], Chr(10))
            For Each ligne In lignes
                parties = split(ligne, ":")
                txt1 = txt1 & parties(0) & Chr(10)
                txt2 = txt2 & parties(1) & Chr(10)
            Next ligne
    
        End Sub
    1
  2. patapoufy Messages postés 3 Statut Membre
     
    c'est bon j'ai réussi a corriger merci bien en tout tu m'a été super utile !

       Dim lignes() As String
            Dim ligne
            Dim parties() As String
    
            ''separateur(0) : la partie gauche,
            ''separateur(1) : la partie droite.
    
            lignes = Split(TextBox1.Text, vbNewLine)
            For Each ligne In lignes
                parties = Split(ligne, ":")
                TextBox2.Text = TextBox2.Text & parties(0) & vbNewLine
                TextBox3.Text = TextBox3.Text & parties(1) & vbNewLine
            Next ligne


    maintenant j'ai un autre problème qui doit nécessité la fonction "for each" également mais je ne vois pas de quelle façon.

    donc cette fois c'est pour faire la fonction inverse unire la ligne 1 du textbox2 avec la ligne 1 du textbox3 séparer de ":" dans le textbox1.

    exemple:

    textbox2 =
    marie
    jean
    lucas
    


    textbox3 =
    dupont
    martin
    duc
    


    je clique sur le bouton 16

    textbox 1 =
    marie:dupont
    jean:martin
    lucas:duc
    


    voici le code que j'ai déjà et qui ne fonctionne uniquement pour une seul ligne :

      Dim Tableau(1) As String
    
            Tableau(0) = TextBox2.Text
            Tableau(1) = TextBox3.Text
    
            'Regroupe les chaînes du tableau, séparés par textbox5.text
            TextBox1.Text = Join(Tableau, TextBox5.Text)
    

    voila je pense qu'il faut utiliser 2 fois "for each" mais franchement je ne sait pas trop utiliser cette fonction.
    En espérant que l'on pourra m'aider ! =)
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      alors c'est mieux de partir de cet exemple (pour résoudre le problème initial). Tu pourras plus facilement t'en inspirer pour le second problème.
      Private Sub ptsplit2()
              Dim lignes() As String
              Dim nlig As Long
              Dim parties() As String
              Dim txt1, txt2
              ''separateur(0) : la partie gauche,
              ''separateur(1) : la partie droite.
      
              lignes = split([A1], Chr(10))
              For nlig = 0 To UBound(lignes)
                  parties = split(lignes(nlig), ":")
                  txt1 = txt1 & parties(0) & Chr(10)
                  txt2 = txt2 & parties(1) & Chr(10)
              Next nlig
      
          End Sub
      0