Utilisation des *, ?, + en VB

Résolu
tortuegenie Messages postés 110 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 21 octobre 2008 - 30 mars 2006 à 09:53
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 30 mars 2006 à 11:51
Bonjour à tous, j'ai, je pense un problème de syntaxe.

Je souhaite simplement repérer des valeurs se terminant par 7 soit 0.7,1.7,2.7, ... dans une colonne excel
Voilà le code que j'ai ecrit et qui a priori ne marche pas:

VarA = ActiveSheet.Columns("A:A").Value
If (j = 1) Then
Range("A" & j).Value = "0.0"
ElseIf (VarA(j - 1, 1) = "*,7") Then
Range("A" & j).Value = VarA(j - 1, 1) + 0.3
Else
Range("A" & j).Value = VarA(j - 1, 1) + 0.1
End If

Merci d'avance pour ceux qui peuvent me dire ce qui ne va pas!

5 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
30 mars 2006 à 10:27
Bonjour,
On parcourt toute les lignes de ta colonnes jusqu'a ce qu'on ne trouve plus de valeur.
Ensuite on regarde avec Right() si le dernier caractère est un 7, si oui affichage d'un message

Dim i as integer
i=0

While (Range("A" & i) <> "")
if Right$(CStr(Range("A" & i)),1) = "7" then
msgbox "Valeur se terminant par 7 trouvé à la ligne " & i & " dans la colonne A"
end if
i=i+1
Wend

Ou

While (Range("A" & i) <> "")
if CStr(Range("A" & i)) like "*.7" then 'ou "*,7" sa dépend si tu uitlises un . ou une ,
msgbox "Valeur se terminant par 7 trouvé à la ligne " & i & " dans la colonne A"
end if
i=i+1
Wend
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
30 mars 2006 à 11:47
C'est normal que cela ne marche pas.
Regarde la 1iere méthode que j'ai donné. J'utilise Right pour regarder quel est le dernier caractère. Si c'est un 7 c'est ok.
Si tu veux vérifier si c'est de la forme "*,7" modifie mon Right comme ceci: Right$(Cstr(Range("A" & i)),2) = ",7"
Sinon la seconde méthode doit marcher avec le like "*,7".

>Merci mais le probleme c'est que "*,7" n'est pas lu >Si je fais (VarA(j - 1, 1)) "0,7") ou (VarA(j - 1, 1)) "1,7") ca marche
>Mais quand je fais (VarA(j - 1, 1)) = "*,7") cela ne marche plus alors je ne comprends pas!!!
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
30 mars 2006 à 11:51
Pour info le mot clé Like vérifie si ta chaine que tu tests correspond au modèle d'expression "*,7".
3
tortuegenie Messages postés 110 Date d'inscription lundi 27 mars 2006 Statut Membre Dernière intervention 21 octobre 2008
30 mars 2006 à 10:38
Merci mais le probleme c'est que "*,7" n'est pas lu Si je fais (VarA(j - 1, 1)) "0,7") ou (VarA(j - 1, 1)) "1,7") ca marche
Mais quand je fais (VarA(j - 1, 1)) = "*,7") cela ne marche plus alors je ne comprends pas!!!

Pourrais-tu m'expliquer?
0

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

Posez votre question
cs_etniqs Messages postés 201 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 10 mai 2016
30 mars 2006 à 11:03
"like" pas "=" !!

coïto ergo sum
0
Rejoignez-nous