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 :

Un simple probleme d'algorithmie ?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Par défaut Un simple probleme d'algorithmie ?
    Je vais devenir FOU
    Mon code ne donne pas les résultats escomptés, et pourtant les affichages que j'ai mis pour débugger vont dans le sens de ce que je veux!
    Voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Dim i As Integer
    i = 7
    With Worksheets("Mouvements - Autres attributs")
         While ((.Range("A" & i).Value <> TextBoxNoMvt.Value) _
                Or (.Range("C" & i).Value <> ComboBoxPeriodeHoraire.Value)) _
                    And (.Range("A" & i).Value <> "")
     
                    MsgBox .Range("A" & i).Value & " " & TextBoxNoMvt.Value & " " & .Range("C" & i).Value & " " & ComboBoxPeriodeHoraire.Value ' Affiche 1 1 HPM HPM
                    i = i + 1                
        Wend
        MsgBox i
    End With

    Bon. C'est pas bien compliqué.
    Dans mon while, j'ai 3 conditions.
    Parlons des 2 premières tout d'abord.

    Mon msgBox me donne :

    .Range("A" & i).Value : 1
    TextBoxNoMvt.Value : 1

    .Range("C" & i).Value : HPM
    ComboBoxPeriodeHoraire.Value : HPM

    Par conséquent ces deux choses là sont égales deux à deux
    Donc mon "Or" devrait renvoyer "False" vu que les deux égalités sont vraies.
    Donc au final False And kkchose ça devrait donner False aussi, et il ne devrait jamais rentrer dans la boucle, et i devrait valoir 7
    Or il y rentre une fois, et la valeur de i à la sortie est donc 8.

    Je ne comprends pas, je vais devenir fou


    Qq minutes plus tard ....


    Bon je viens de pousser le débuggage plus loin, et j'ai fais afficher la valeur des booléens que sont chacune des trois conditions.
    Et c'est la premiere qui cause problème. Elle renvoie True au lieu de False, alors que les deux valeurs valent toutes les deux 1 .
    C'est à rien n'y comprendre

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    peut etre que le programme considere la première vleur comme du numérique et la deuxieme comme du texte du coup a l 'affichage c'est pareil, mais pas au niveau comparaison

    essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    'Si que du numérique
    val(.Range("A" & i).Value) <> val(TextBoxNoMvt.Value)
     
    'sino
    Str(.Range("A" & i).Value) <> str(TextBoxNoMvt.Value)

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 55
    Par défaut
    10000 merci!
    ca marche..........
    ahhh des fois ..........

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

Discussions similaires

  1. un simple probleme de slot/signal
    Par Darktrouble dans le forum Qt
    Réponses: 4
    Dernier message: 17/03/2009, 20h38
  2. Probleme d'algorithmie entre onglets
    Par ginkas31 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/01/2008, 12h14
  3. Réponses: 2
    Dernier message: 07/09/2007, 13h01
  4. Simple probleme de Parse_error
    Par michael1984 dans le forum Langage
    Réponses: 17
    Dernier message: 17/12/2006, 15h02
  5. SQL ? ou simple probleme PHP ?
    Par snipes dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 28/03/2006, 13h27

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