Extraction chiffre d'une chaine de caractère régulière

Résolu
ptitemeuh Messages postés 83 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 8 juillet 2010 - 4 mai 2010 à 09:07
ptitemeuh Messages postés 83 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 8 juillet 2010 - 4 mai 2010 à 11:19
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 mai 2010 à 09:34
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
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
4 mai 2010 à 09:43
Allez, juste pour donner une autre méthode :

Dim Separation as variant

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

msgbox Separation(0)


Molenn
ptitemeuh Messages postés 83 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 8 juillet 2010
4 mai 2010 à 09:51
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 ?
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 mai 2010 à 10:30
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

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

Posez votre question
ptitemeuh Messages postés 83 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 8 juillet 2010
4 mai 2010 à 10:40
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 131
4 mai 2010 à 10:57
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
ptitemeuh Messages postés 83 Date d'inscription jeudi 4 février 2010 Statut Membre Dernière intervention 8 juillet 2010
4 mai 2010 à 11:19
Merci beaucoup à vous deux ça marche du tonnerre !!! Bonne journée
Rejoignez-nous