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

Macros et VBA Excel Discussion :

des And qui fonctionnent comme des Or [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de production
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Par défaut des And qui fonctionnent comme des Or
    Bonjour,
    je travaille avec une boucle et j'aimerai qu'elle tourne tant qu'il n'y a pas trois ligne de vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Cells(Ligne, 1) <> "" And Cells(Ligne + 1, 1) <> "" And Cells(Ligne + 2, 1) <> ""
    mais la boucle s'arrête dès que la ligne "ligne+2" est vide même si la ligne "ligne+1" est remplie!
    Suite au lecture sur ce forum, je croyais avoir compris que:
    avec un "And" il faut que les toutes les conditions soit vrai et avec "Or" il suffit qu'une des conditions soit vrai pour quel'on sorte de boucle; alors pourquoi dans le cas présent j'ai mon résultat voulu avec Or et pas avec And.

    Ma boucle fonctionne avec Or, mais j'aimerai bien comprendre

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    traduit en langage courant, ta boucle dis : tant que 3 cellules consécutives sont remplies, on continue

    donc, dès que tu tombes sur une cellule vide, la boucle s'arrête

    si ligne 2 et 4 sont remplies, mais pas la ligne 3 : ARRET


    je te propose une autre approche : utilisation de la formule NBVAL par lot de 3 cellules

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub toto()
    Dim Ligne As Long
        Ligne = 1
        With ThisWorkbook.Worksheets("Feuil1")
            Do While Application.WorksheetFunction.CountA(.Cells(Ligne, 1).Resize(3, 1)) <> 0
                Ligne = Ligne + 1
            Loop
        End With
     
        MsgBox Ligne
    End Sub

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par beta007 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Do While Cells(Ligne, 1) <> "" And Cells(Ligne + 1, 1) <> "" And Cells(Ligne + 2, 1) <> ""
    Cette condition demande à la boucle de tourner tant que les trois cellules contiennent quelque chose.
    Donc, il suffit qu'une seule soit vide pour que la boucle s'arrête.

    En logique mathématique, le And est l'opposé du Or
    Non(A Et B) = (Non A) Ou (Non B)
    Le tracé d'une petite table de vérité 2x2 le démontre facilement.

  4. #4
    Membre confirmé
    Homme Profil pro
    Responsable de production
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de production
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Par défaut
    merci a vous pour ces explications, c'est maintenant clair

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

Discussions similaires

  1. [QtGui] Aide (Un widget qui fonctionne comme QPushButton)
    Par houma2001 dans le forum PyQt
    Réponses: 2
    Dernier message: 25/05/2014, 08h40
  2. Créer des grilles se comportant comme des caractères
    Par fantime dans le forum Débuter
    Réponses: 2
    Dernier message: 23/10/2013, 21h21
  3. Réponses: 0
    Dernier message: 27/03/2012, 12h26
  4. Réponses: 2
    Dernier message: 15/05/2011, 15h42
  5. Lien qui fonctionne comme le bouton "back" d'IE
    Par alexbigot dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 02/01/2007, 18h09

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