Rechercher : dans
Par :

[excel] vba: LIKE + expression réguliere ?

Dernière réponse le 8 nov 2008 à 08:14:26 mortelrdv, le 7 nov 2008 à 07:56:19 
 Signaler ce message aux modérateurs

Bonjour,

mon probleme est le suivant, je voudrais faire des test sur des chaines de caracteres genre :

1-5-7-8     ->ok
5-3-2-7     ->ok
4-12-6-8   ->ok
2-1-13-7   ->nok
....


je passe par la possibilité que propose LIKE
if chaine like "#-AAA-#-#" then ...
ou alors mieux
if chaine like "[1-8]-AAA-[1-2]-[1-8]" then ...

le probleme c'est que je sèche à l'emplacement AAA, cette emplacement peut contenir un nombre entre 1 et 16 (et non 01 à 16)

connaissez vous une expression réguliere qui résolve ce probleme ?
sinon je vais passer par :
if chaine like "[1-8]-[1-9]-[1-2]-[1-8]" OR chaine like "[1-8]-1[0-6]-[1-2]-[1-8]" then ...
mais comme j'ai plusieurs conditions comme ça, ça me fait un IF à ralonge (vu que je dois doubler mes condition à chaque fois)

Merci
Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « [excel] vba: LIKE + expression réguliere ? » dans :
[RegExp] Récupérer une adresse IP VoirFinalité Mise en œuvre Explications Interprétation du motif Récupérer une adresse IP Finalité Pour récupérer une IP dans un fichier texte, fichiers journaux, pages web, etc. Mise en œuvre L'expression régulière suivante combinée à la...
PHP - Expressions régulières VoirQu'est-ce qu'une expression régulière? Les expressions régulières sont des modèles créés à l'aide de caractères ASCII permettant de manipuler des chaînes de caractères, c'est-à-dire permettant de trouver les portions de la chaîne correspondant au...

1

lermite222, le 7 nov 2008 à 08:18:22

Bonjour,
Donne un exemple concret du contenu de "chaine" et le résultat souhaiter.
A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

2

mortelrdv, le 7 nov 2008 à 14:21:02

Ok

ColonneA | Colonne B
1-5-1-8  |  OK
4-12-6-8 | NOK
2-1-13-7 | NOK
ati      | NOK
te-4-2-1 | NOK
1-3-5    | NOK
a-b-c-d  | NOK
a-2-1-7  | NOK
4-16-2-6 | OK


des chiffres séparrer par 3 x '-'
sachant que : (chiffre entre 09)-(chiffre entre 0-19)-(chiffre entre 0-9)-(chiffre entre 0-9)

j'espere que c'est un peu mieux

Répondre à mortelrdv

3

lermite222, le 7 nov 2008 à 15:22:49

Re,
Ce n'est pas possible avec une seule comparaison vu que la longeur de la chaine se modifie et que la matrice reste la même.
Mais si c'est bien comme tu explique dans ton dernier poste
sachant que : (chiffre entre 09)-(chiffre entre 0-19)-(chiffre entre 0-9)-(chiffre entre 0-9)

Une autre façon..

 a = Chaine Like "#-#-#-#" Or Chaine Like "#-##-#-#"

A+ L'expérience instruit plus sûrement que le conseil. (André Gide)  
Si tu te cogne à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)

Répondre à lermite222

4

 mortelrdv, le 8 nov 2008 à 08:14:26

Je pensais faire ça, mais je me disais que peut etre il existait une expression réguliere quil résolvait ce probleme d'un seul coup.

Ok merci

Répondre à mortelrdv