Spliter des chaînes dans des variables et les controler

Signaler
Messages postés
27
Date d'inscription
vendredi 30 avril 2010
Statut
Membre
Dernière intervention
1 juin 2011
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
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)