IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Condition IF avec OR


Sujet :

VBA

  1. #1
    Membre du Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Décembre 2013
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Décembre 2013
    Messages : 51
    Points : 50
    Points
    50
    Par défaut Condition IF avec OR
    Bonjour à tous,

    Je n'arrive pas à comprendre pourquoi ma 2ème condition avec OR n'est pas prise en compte.
    C'est à dire qu'il colorie bien ma celulle "FR" mais pas "NL".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Generic6()
     
    Dim db As Workbook
    Set db = Workbooks("wk49production")  'Worksheets("Packing Production Schedule")
     
     
    For x = 1 To 1000
     
    Celltxt = db.Worksheets("Packing Production Schedule").Cells(x, 12).Text
    If InStr(1, Celltxt, "FR") Or InStr(1, Celltxt, "NL") And Cells(x, 10) = 6 Then
    db.Worksheets("Packing Production Schedule").Cells(x, 12).Interior.Color = RGB(0, 255, 0)
    db.Worksheets("Packing Production Schedule").Cells(x, 12).Font.Bold = True
     
     
        End If
     
    Next
     
    End Sub
    En vous remerciant par avance pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Sans avoir testé, j'ai l'impression que tu surestimes le OR logique. Le OR n'est pas un ou humain. Le ou humain est capable de différencier le "Ou strict" et le "ou égale et". Mais le OR logique n'est pas capable de le faire de lui-même. Dès que la première condition est remplie, le OR retourne true et se fiche allègrement de la deuxième condition. L'inverse est également vrai. Si la première condition est fausse et que la seconde est vraie, ton OR retourne true et se fiche allègrement de la première condition. Donc, le mieux c'est de tester les deux conditions séparément dans une boucle qui va s'assurer que tu testes bien les deux pays.

    (Ou bien, tu passes à un VB.net récent et tu utilises ORALSO. Parce que ORALSO est capable de traiter les deux conditions ensemble. Et puis, il a également ANDALSO.)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/07/2007, 11h53
  2. Condition multiple avec And
    Par Aizen64 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 20/06/2007, 11h47
  3. Réponses: 2
    Dernier message: 16/06/2007, 12h37
  4. Réponses: 1
    Dernier message: 09/05/2007, 10h57
  5. [MySQL] Condition IN avec sous requête
    Par emphase dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/02/2007, 01h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo