Effectuer une fonction a toutes les lignes

patapoufy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 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

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
patapoufy Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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