VB > renvoyer un élément d'une chaine

cassiope69 Messages postés 20 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
j'ai un soucis, je réalise un petit programme permettant d'inscrire dans un formulaire les 4 éléments de chaque ligne d'un fichier.
ce fichier a donc 4 éléments séparés chacun par un ;
J'arrive à retrouver le premier élément ainsi : element1= = Mid(uneLigne, 1, uneLigne.IndexOf(";"))
et le deuxième élément ainsi : element2 = Mid(uneLigne, uneLigne.IndexOf(";") + 2, Len(uneLigne))

mais impossible de trouver l'élément 3 et 4...
Si quelqu'un pouvait m'aider.. :s

Merci d'avance!
Configuration: Windows Vista
Firefox 3.0.3

10 réponses

  1. cassiope69 Messages postés 20 Statut Membre 1
     
    Personne ne peut m'aider??
    1
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    ben, si on suit ton raisonnement
    element3 = Mid(uneLigne, uneLigne.IndexOf(";") + 4, Len(uneLigne)) 
    element4 = Mid(uneLigne, uneLigne.IndexOf(";") + 6, Len(uneLigne)) 
    --
    106485010510997108
    0
  3. cassiope69 Messages postés 20 Statut Membre 1
     
    Malheureusement ça ne marche pas les mots sont coupés je ne comprends pas...
    Merci quand même
    0
  4. cassiope69 Messages postés 20 Statut Membre 1
     
    Voici un exemple de mon fichier : (je ne peux pas donner le contenu véritable de mon fichier qui est confidentiel)

    robain;18ans;paris;lycéen
    marine;20ans;lyon;faculté
    luc;1an;montpellier;crèche

    la case 1 va donner robain, la case 2 a 18ans;paris;lycéen et la case 3 ns;paris;lycéen par exemple...je ne comprends pas..

    J'aimerais aussi savoir comment afficher de manière aléatoire dans une groupe qui aurait par exemple 10 ligne de 4 colonnes 10 ligne aléatoires de mon fichier
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Essaie
    Sub mon_split()
        s = "a;b;c;d"
        Dim t
        
        t = Split(s, ";")
        
        element1 = t(0)
        element2 = t(1)
        element3 = t(2)
        element4 = t(3)
    End Sub


    En fait tu n'as pas vraiment besoin des element1 .... sachant que tu peux utiliser directement t(0) ....
    0
  7. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Re,
    Sub mon_split()
        Dim t
        For i = 1 To Range("A1").End(xlDown).Row
            t = Split(Cells(i, 1), ";")
            Cells(i, 2) = t(0)
            Cells(i, 3) = t(1)
            Cells(i, 4) = t(2)
            Cells(i, 5) = t(3)
        Next
    End Sub
    0
  8. cassiope69 Messages postés 20 Statut Membre 1
     
    Merci pour tes reponses
    - Pour ta première réponse la case 1 affichait> a la case 2 > b, la 3 > c et la 4 > d
    - Pour ta deuxième réponse je ne sais pas si il faut déclarer Range, xlDown et Cells ni à quoi ils correspondent mais Visual Basic ne les reconnait pas...
    0
  9. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    mais Visual Basic ne les reconnait pas
    Ca m'étonnerait, puisque c'est sous excel que j'ai testé ;-)
    Voici le fichier excel https://www.cjoint.com/?ldnCEL6jta
    0
  10. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour tous,
    La première question serrait peut-être QUEL VB ? et si Excel quel version ?
    A+
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      Oups, j'ai lu trop vite VBA ;-)
      0
  11. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    La fonction split existe en VB https://www.microsoft.com/en-us/download/details.aspx?id=55984
    A toi d'adapter.

    La solution que je t'ai donnée c'est de VBA et j'ai testé sous Excel. Je n'ai pas fait gaffe que tu as demandé pour VB.
    0