Spliter des chaînes dans des variables et les controler

HiiiCoach Messages postés 27 Date d'inscription vendredi 30 avril 2010 Statut Membre Dernière intervention 1 juin 2011 - 3 mai 2010 à 16:21
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 3 mai 2010 à 16:45
Bonjour à tous,

Merci d'avance pour l'aide que vous m'apporterez.

Je code en VB sous excel 2000, mon but serait de controler un jeu de données excel (localisé à chaque fois dans la colonne A).

Celui-ci se présente de la façon suivante:

---------A-----------

1 uhiferfui|feff|2006|02|
2 23|vrtvrgv|23|32|
3 alpha|jrfrf|1|10|

En fait, j'ai créé un bouton "vérifier format" sur une userform, associé à une combobox qui contient autant de libellés qu'il y a de champs (dans cet exemple les champs sont représentés par les "|", il y a donc 4 champs dans ma combobox).

Je voudrai que chaque champ soit spliter et stocké dans une variable (invisible), c'est à dire que, par exemple, ma ligne 1 et ma ligne 2 se présente de la façon suivante:

ch1= "uhiferfui" ch1="23"
ch2= "feff" ch2="vrtvrgv"
ch3="2006" ch3="23"
ch4="02" ch4="32"


En gros, chaque fois qu'il y a un "|", tout ce qu'il y a avant est stocké dans une variable.

Et ainsi de suite...

Je voudrai également créer une autre combobox, qui contienne le format que la donnée est supposée avoir: date, numérique, alphanumérique...

Ainsi, lorsque je sélectionnerai champ 1 dans la combobox, que je spécifirai que l'attendu est de type carctère, et que je cliquerai sur le bouton "vérifier format", je voudrai qu'une msg box me retourne si tous les champs sont conformes.

Par exemple:

Combobox1 ComboBox2 Clic sur "Vérifier format"
Champ 1 alphanumérique

me retournera "OK" pour les champs 1 et 3, et "erreur" pour le champ 2 (de type numérique alors qu'on attendait une chaine de caractères...)


Je vous remercie d'avance pour vos réponses, si je n'ai pas été assez clair, n'hésitez pas à me poser des questions ;) Si vouz avez plus simple, n'hésitez pas non plus ^^

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 mai 2010 à 16:45
Salut
Comme tu l'as dit, il suffit de Splitter :
    Dim monTableau() As String
    monTableau = Split(maChaine, "|")
    MsgBox "1er élément : " & monTableau(0) & vbCrLf & _
           "Dernier élément : " & monTableau(UBound(monTableau))

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Rejoignez-nous