Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…