Utilisation des *, ?, + en VB

Résolu
Signaler
Messages postés
110
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
21 octobre 2008
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
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

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
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
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Pour info le mot clé Like vérifie si ta chaine que tu tests correspond au modèle d'expression "*,7".
3
Messages postés
110
Date d'inscription
lundi 27 mars 2006
Statut
Membre
Dernière intervention
21 octobre 2008

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
Messages postés
201
Date d'inscription
mardi 7 octobre 2003
Statut
Membre
Dernière intervention
10 mai 2016

"like" pas "=" !!

coïto ergo sum
0