Je cherche un moyen d'append un critère "Ne contient pas" à une string. Je veux qu'il trouve une string qui soit Numérique, a une longueur de 9 caractères et ne contient pas de période "."
J'ai regardé sur le Web, mais j'ai trouvé des filters pour une feuille de calcul complète, ou des filters, ou des arrays, pas pour ne contient pas un caractère spécifique.
Cette partie fonctionne:
If IsNumeric(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) _ And Len(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) = 9 Then
Mais j'aimerais dire ceci:
If IsNumeric(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) _ And Len(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) = 9 _ and Doesnotcontain "." Then
Quelle serait la syntaxe appropriée? Merci!
Essayez la fonction Instr ():
If IsNumeric(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) _ And Len(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10)) = 9 _ and Instr(Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10), ".") = 0 Then
Je remarque que votre exemple ne cherche pas un «mot», mais examine une string de 10 caractères maximum et assure exactement neuf (9) numbers. Si c'est ce que vous désirez, alors le travail suivant devrait fonctionner:
EDIT: Simplifiez le code
S = Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10) If S Like "#########" Then ... Your Routine ... End If
ou même:
If Left(Right(wordDoc.Paragraphs(j).Range.Text, 11), 10) Like _ "#########" Then ... Your Routine ... End If
Le cas général de find un "ne contient pas" consiste à utiliser la fonction InStr, à tester la string et à searchr une valeur de return de zéro (0). Bien que parfois, si la valeur «ne contient pas» est complexe, il faut tenir count de l'utilisation d'expressions régulières.