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 avec les boucles


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 21
    Par défaut Problème avec les boucles
    Rebonjour j'ai encore un petit soucis avec mon code , normalement je voulais que si la condition est respecté le reste du code ne doit plus s’exécuter mais c'est pas le cas l'exécution continue dans tous les cas .
    voice le code ci joint. Merci
    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
    20
    21
    22
    23
    Private Sub Enrgstr_Click()
    Dim FLAG As Boolean
    For i = 1 To Derline(1, 1)
    If (Nom_prdt.Value = Sheets("PRODUIT").Cells(i + 1, 1)) Then
    Sheets("PRODUIT").Cells(i + 1, 4) = Sheets("PRODUIT").Cells(i + 1, 4) + Qtité_cmde.Value
    Sheets("PRODUIT").Cells(i + 1, 5) = Sheets("PRODUIT").Cells(i + 1, 5) + Qtité_cmde.Value
        End If
     
    Next i
    If (FLAG = False) Then
        Rows("2:2").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("PRODUIT").Cells(2, 1) = Nom_prdt.Value
    Sheets("PRODUIT").Cells(2, 2) = Type_prdt.Value
    Sheets("PRODUIT").Cells(2, 3) = code_prdt.Value
    Sheets("PRODUIT").Cells(2, 4) = Qtité_cmde.Value
    Sheets("PRODUIT").Cells(2, 6) = prix_achat.Value
    Sheets("PRODUIT").Cells(2, 8) = Dat_achat.Value
    Sheets("PRODUIT").Cells(2, 9) = Dat_premp.Value
    Sheets("PRODUIT").Cells(2, 10) = Nom_grosis.Value
    Sheets("PRODUIT").Cells(2, 11) = Adres_gross.Value
    end if
    end sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Il faut rajouter un Exit Sub dans ta condition pour que le reste du code ne soit pas effectué
    Dernière modification par Invité ; 25/10/2018 à 22h24. Motif: Ajout des balises [C] ... [/C]

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 21
    Par défaut
    MERCI ca a marché

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    A quoi sert ton test de la ligne 12 qui vérifie si la variable FLAG est à False ?
    J'ai beau relire ton code, je ne vois pas à quelle moment elle passe à True donc forcément les lignes 13 à 24 seront toujours exécutées
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 21
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    A quoi sert ton test de la ligne 12 qui vérifie si la variable FLAG est à False ?
    J'ai beau relire ton code, je ne vois pas à quelle moment elle passe à True donc forcément les lignes 13 à 24 seront toujours exécutées
    ok ok je vois merci

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    essaye avec ça :
    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
    20
    21
    22
    23
    24
    25
    Private Sub Enrgstr_Click()
    Dim FLAG As Boolean
    For i = 1 To Derline(1, 1)
    If (Nom_prdt.Value <> Sheets("PRODUIT").Cells(i + 1, 1)) Then
    exit sub
    else
    Sheets("PRODUIT").Cells(i + 1, 4) = Sheets("PRODUIT").Cells(i + 1, 4) + Qtité_cmde.Value
    Sheets("PRODUIT").Cells(i + 1, 5) = Sheets("PRODUIT").Cells(i + 1, 5) + Qtité_cmde.Value
        End If
     
    Next i
    If (FLAG = False) Then
        Rows("2:2").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("PRODUIT").Cells(2, 1) = Nom_prdt.Value
    Sheets("PRODUIT").Cells(2, 2) = Type_prdt.Value
    Sheets("PRODUIT").Cells(2, 3) = code_prdt.Value
    Sheets("PRODUIT").Cells(2, 4) = Qtité_cmde.Value
    Sheets("PRODUIT").Cells(2, 6) = prix_achat.Value
    Sheets("PRODUIT").Cells(2, 8) = Dat_achat.Value
    Sheets("PRODUIT").Cells(2, 9) = Dat_premp.Value
    Sheets("PRODUIT").Cells(2, 10) = Nom_grosis.Value
    Sheets("PRODUIT").Cells(2, 11) = Adres_gross.Value
    end if
    end sub

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 21
    Par défaut
    Citation Envoyé par BENNASR Voir le message
    Bonjour
    essaye avec ça :
    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
    20
    21
    22
    23
    24
    25
    Private Sub Enrgstr_Click()
    Dim FLAG As Boolean
    For i = 1 To Derline(1, 1)
    If (Nom_prdt.Value <> Sheets("PRODUIT").Cells(i + 1, 1)) Then
    exit sub
    else
    Sheets("PRODUIT").Cells(i + 1, 4) = Sheets("PRODUIT").Cells(i + 1, 4) + Qtité_cmde.Value
    Sheets("PRODUIT").Cells(i + 1, 5) = Sheets("PRODUIT").Cells(i + 1, 5) + Qtité_cmde.Value
        End If
     
    Next i
    If (FLAG = False) Then
        Rows("2:2").Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("PRODUIT").Cells(2, 1) = Nom_prdt.Value
    Sheets("PRODUIT").Cells(2, 2) = Type_prdt.Value
    Sheets("PRODUIT").Cells(2, 3) = code_prdt.Value
    Sheets("PRODUIT").Cells(2, 4) = Qtité_cmde.Value
    Sheets("PRODUIT").Cells(2, 6) = prix_achat.Value
    Sheets("PRODUIT").Cells(2, 8) = Dat_achat.Value
    Sheets("PRODUIT").Cells(2, 9) = Dat_premp.Value
    Sheets("PRODUIT").Cells(2, 10) = Nom_grosis.Value
    Sheets("PRODUIT").Cells(2, 11) = Adres_gross.Value
    end if
    end sub
    merci

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

Discussions similaires

  1. Problème avec les Boucles
    Par Aerysse dans le forum Débuter
    Réponses: 16
    Dernier message: 31/08/2011, 12h56
  2. Problème avec les boucles VBA
    Par luge29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/06/2010, 15h32
  3. problème avec les boucles vba
    Par Mon_ami dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/04/2009, 06h15
  4. problème avec les boucle infinies
    Par manciaux dans le forum C
    Réponses: 3
    Dernier message: 14/05/2007, 12h16
  5. [Tableaux] Problème avec les boucles
    Par speed_man002 dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2005, 15h42

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