Extraction chiffre d'une chaine de caractère régulière [Résolu]

Signaler
Messages postés
83
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
8 juillet 2010
-
Messages postés
83
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
8 juillet 2010
-
Bonjour à tous,

En fait, j'ai une liste telle que, par exemple:

10 - Muguet 10/05/2010
9 - Muguet 09/05/2010
8 - Muguet 08/05/2010
7 - Muguet 07/05/2010
6 - Muguet 06/05/2010
5 - Muguet 05/05/2010
4 - Muguet 04/05/2010
3 - Muguet 03/05/2010
2 - Muguet 02/05/2010
1 - Muguet 01/05/2010

Je voudrais extraire juste la première ligne le chiffre avant le tiret qui peut comporter 1 chiffre comme plusieurs par la suite de mon ficher texte. J'ai entendu la fonction Mid mais je ne sais pas elle correspond à mon application et je ne connais pas du tout visual basic
Comment dois-je m'y prendre ?

7 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Essaye ainsi :
Dim index as Long
Dim sTexte as string

Let sTexte = "10 - Muguet 10/05/2010"
Let index = InStr(1, sTexte, "-")
let sTexte = Left(sTexte, index - 1)
MsgBox sTexte


______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
Allez, juste pour donner une autre méthode :

Dim Separation as variant

Separation = split("10 - Muguet 10/05/2010"," - ",,vbTextCompare)

msgbox Separation(0)


Molenn
Messages postés
83
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
8 juillet 2010

Bonjour,

Merci pour votre réponse, cela va beaucoup m'aider. Toutefois, j'ai encore une petite question à vous poser. Au fil du temps, ma liste va être modifiée et d'autres lignes vont être rajoutées, par exemple:
127 - Muguet 03/05/2010
126 - Muguet 02/05/2010
125 - Muguet 01/05/2010

...
...

10 - Muguet 10/05/2010
9 - Muguet 09/05/2010
8 - Muguet 08/05/2010
7 - Muguet 07/05/2010
6 - Muguet 06/05/2010
5 - Muguet 05/05/2010
4 - Muguet 04/05/2010
3 - Muguet 03/05/2010
2 - Muguet 02/05/2010
1 - Muguet 01/05/2010

Comment faut-il faire pour extraire la première ligne d'une manière générale ?
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

Tu as déjà le code pour la manière générale : un split ou un Left avec les bons index (récupéré par un InStr), et c'est générique : tu récupéreras toujours le premier nombre, peu importe le nombre de caractère de celui-ci.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
83
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
8 juillet 2010

Je demande ça car dans le code, il est inscrit :

Let sTexte = "10 - Muguet 10/05/2010"
alors que la première ligne change par la suite. Donc, je dois inscrire :

Dim index as Long
Dim sTexte as string

Let sTexte = 1
Let index = InStr(1, sTexte, "-")
let sTexte = Left(sTexte, index - 1)
MsgBox sTexte
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
103
Salut,

C'était pour l'exemple, à toi de l'appliquer à la bonne ligne bien entendu.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
Messages postés
83
Date d'inscription
jeudi 4 février 2010
Statut
Membre
Dernière intervention
8 juillet 2010

Merci beaucoup à vous deux ça marche du tonnerre !!! Bonne journée