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

Fermé
cassiope69 Messages postés 20 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 6 février 2009 - 28 oct. 2008 à 14:15
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 4 nov. 2008 à 08:02
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!
A voir également:

10 réponses

cassiope69 Messages postés 20 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 6 février 2009 1
3 nov. 2008 à 12:04
Personne ne peut m'aider??
1
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 nov. 2008 à 12:27
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
cassiope69 Messages postés 20 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 6 février 2009 1
3 nov. 2008 à 13:05
Malheureusement ça ne marche pas les mots sont coupés je ne comprends pas...
Merci quand même
0
cassiope69 Messages postés 20 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 6 février 2009 1
3 nov. 2008 à 13:11
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 nov. 2008 à 13:16
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 nov. 2008 à 13:21
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
cassiope69 Messages postés 20 Date d'inscription dimanche 23 septembre 2007 Statut Membre Dernière intervention 6 février 2009 1
3 nov. 2008 à 13:24
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
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 nov. 2008 à 13:32
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
lermite222 Messages postés 8724 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
3 nov. 2008 à 18:12
Bonjour tous,
La première question serrait peut-être QUEL VB ? et si Excel quel version ?
A+
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
3 nov. 2008 à 18:17
Salut,

Oups, j'ai lu trop vite VBA ;-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
4 nov. 2008 à 08:02
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