Comparaison valeurs cellules

c.clappier

XLDnaute Nouveau
Bonjour,
Je bloque sur mon code. Je souhaiterais comparer les valeurs des cellules d'une colonne avec celles données par mon tableau "valeurs_autorisees" => 0,1,2,3,4,5,6,7,8,9
Je n'arrive à le faire que pour une seule valeur. J'ai essayé d'ajouter des conditions and => échec
J'ai essayé une boucle => échec ...

Voici ce que j'ai fait :
Sub Selection_caractère()
Dim Num_ligne As Variant
Dim Valeurs_autorisees As Variant
Valeurs_autorisees = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
Num_ligne = 2
While Cells(Num_ligne, 2) <> ""
Cells(Num_ligne, 4) = Mid(Cells(Num_ligne, 2), 4, 1)
If Cells(Num_ligne, 4) <> Valeurs_autorisees(i) Then
Cells(Num_ligne, 5) = "Non pris en compte"
Else
Cells(Num_ligne, 5) = "Valide"
End If
Num_ligne = Num_ligne + 1
Wend
End Sub

Merci de votre aide
 

Softmama

XLDnaute Accro
Re : Comparaison valeurs cellules

Bonjour,

Tu me dis si j'ai bien compris :
En gros tu veux que si le 4ème caractère des cellules de la colonne B est un chiffre, il affiche "Valide" et sinon "Non pris en compte" ?

Tu es sur de vouloir le gérer par macro plutôt que par formule ?
 

Paf

XLDnaute Barbatruc
Re : Comparaison valeurs cellules

bonjour à tous

Dans une boucle:
Code:
dim Flag as Boolean
Flag=False
For i = LBound(Valeurs_autorisees) To UBound(Valeurs_autorisees)
     If Cells(Num_ligne, 4) = Valeurs_autorisees(i) Then
          Flag=True
          Exit For
     End If
Next

If Flag then
    Cells(Num_ligne, 5) = "Valide"
Else
    Cells(Num_ligne, 5) = "Non pris en compte"
End If

Si les valeurs autorisées sont les chiffres de 0 à 9, plus simplement
Code:
If Cells(Num_ligne, 4) >=0 And  Cells(Num_ligne, 4) <=9 Then 
        Cells(Num_ligne, 5) = "Valide"
Else
    Cells(Num_ligne, 5) = "Non pris en compte"
End If

A+
 

Softmama

XLDnaute Accro
Re : Comparaison valeurs cellules

oui,

ou plus simplement :
VB:
Sub Selection_caractère()
Dim Num_ligne As Variant
Num_ligne = 2
While Cells(Num_ligne, 2) <> ""
Cells(Num_ligne, 4) = Mid(Cells(Num_ligne, 2), 4, 1)
If Cells(Num_ligne, 4) Like "[0-9]" Then Cells(Num_ligne, 5) = "Valide" else Cells(Num_ligne, 5) = "Non pris en compte"
Num_ligne = Num_ligne + 1
wend
end Sub
 

Statistiques des forums

Discussions
312 211
Messages
2 086 296
Membres
103 171
dernier inscrit
clemm