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 :

Problème boucle WHILE/WEnd avec plusieurs conditions


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Problème boucle WHILE/WEnd avec plusieurs conditions
    Bonsoir,

    J'aimerais exécuter une boucle while/end avec plusieurs conditions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If (nom1 <> "") And (prenom1 <> "") And (num1 <> "") Then
        While ((Worksheets("FeuilGénéral").Cells(w, 1).Value <> nom1 And Worksheets("FeuilGénéral").Cells(w, 1).Value <> nom1) And (Worksheets("FeuilGénéral").Cells(w, 2).Value <> prenom1) And (Worksheets("FeuilGénéral").Cells(w, 5).Value <> num1) And (w < 500))
            w = w + 1
        Wend
    Le problème est le suivant : Dans un userform je récupère le nom1, prenom1 et num1 correspondant à un nom en cellule(w,1) etc.
    Cependant si dans ma feuille excel j'ai deux personnes : nom1 = a, prenom1 = b, num1 = c et nom1 = a, prenom1 = b, num1 = d et que je souhaite obtenir la ligne w de la personne nom1 = a, prenom1 = b, num1 = d (situer après dans la feuille) le w s'arrête à la ligne de à nom1 = a, prenom1 = b, num1 = c.

    Après plusieurs recherche sur le web j'ai essayé de mettre après le while, des parenthèses générales, des parenthèses pour séparer les And mais rien n'y fait.
    Quelqu'un aurait-il une solution ?
    D'avance, merci.

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Tu as mis deux conditions égales... essaie de la forme, cela devrait marcher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        While ((Worksheets("FeuilGénéral").Cells(w, 1).Value <> nom1) And (Worksheets("FeuilGénéral").Cells(w, 2).Value <> prenom1) And (Worksheets("FeuilGénéral").Cells(w, 5).Value <> num1) And (w < 500))
            w = w + 1
        Wend

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta réponse. Les deux conditions sur nom1 ne sont qu'une erreur de copier coller quand j'ai posté le code sur le forum.
    Après plusieurs test, il ressort que le while s'arrête à la première condition. C'est à dire qu'il ne test pas toutes les conditions.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Pas possible.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Faut-il des parenthèses entre les AND ?

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Comme je l'ai écrit ça marche. La boucle va s'arrêter quand toutes les conditions sont à la fois validées.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je déclare mes variables comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim nom1 As String
    Dim prenom1 As String
    Dim num1 As String
    Je récupère mes variables dans des TextBox d'un userform comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    nom1 = suppression.nom.Value
    prenom1 = suppression.prenom.Value
    num1 = suppression.num.Value
    Le type de mes cellules est Standard.

    Est ce que tu vois une erreur de types ?

    Merci de continuer à chercher !

  8. #8
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut problème boucle
    bonjour,

    comme l'a écrit Engue Engue : ce que tu affirmes ne peut être vrai.

    redonne un extrait de code peut-être plus complet et sans erreur de transcription.

    Cordialement,

Discussions similaires

  1. Problème boucle avec plusieurs conditions
    Par Naxence dans le forum Général VBA
    Réponses: 2
    Dernier message: 29/03/2012, 14h38
  2. erreur 91 sur boucle WHILE WEND avec recordset
    Par forzaxelah dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/02/2012, 21h54
  3. [XL-2003] Création de Boucles VBA avec plusieurs Conditions
    Par MatMout dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/07/2010, 10h31
  4. Réponses: 3
    Dernier message: 11/04/2008, 09h31
  5. Réponses: 10
    Dernier message: 26/03/2008, 15h00

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