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

Comparaison valeurs cellules

  • Initiateur de la discussion Initiateur de la discussion c.clappier
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

c.clappier

Guest
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
 
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 ?
 
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+
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
281
Réponses
5
Affichages
915
Réponses
15
Affichages
791
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…