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 :

Boucle à plusieurs conditions [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué Avatar de midge
    Homme Profil pro
    Conseiller
    Inscrit en
    Juillet 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2010
    Messages : 72
    Points : 139
    Points
    139
    Par défaut Boucle à plusieurs conditions
    Bonjour au forum
    Je bute sur un pb : dans la macro suivante j'ai 2 colonnes contigue et j'aimerai que si la 1ère et la 2éme condition sont réunies les cellules concernées se colorient ... un coup de pouce ? merci d'avance !
    Question subsidiaire : et s'il y a plus de 2 conditions ?


    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
    Sub Essai()
    Dim Cellule As Range
    Dim Plage4 As Range
     
    Application.ScreenUpdating = False
     
    With Sheets("Feuil3")
    Set Plage4 = Range("F2:G300")	'colonne F avec age, colonne G avec nombre voyage
     
     
            With Plage4     'age sup à 26 et inf à 35 + nombre voyage égal à 12
            For Each Cellule In Plage4
            If ((Cellule.Value >= "26" And Cellule.Value <= "35") And (Cellule.Value = "12")) Then Cellule.Interior.Color = vbYellow
            Next Cellule
            End With
     
     
     
    End With
     
    Set Plage4 = Nothing
     
    Application.ScreenUpdating = True
    End Sub

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2013
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur décisionnel
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2013
    Messages : 151
    Points : 182
    Points
    182
    Par défaut
    Bonjour,

    Dans ton code "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ((Cellule.Value >= "26" And Cellule.Value <= "35") And (Cellule.Value = "12"))
    ,
    cette condition ne peut JAMAIS être remplie avec ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    And (Cellule.Value = "12")
    Bien à toi.

    re

    N'ayant pas de réponse, je t'envoie ce message car dans ton code, tu testes la valeur "12" dans la même cellule que "26" et "35",

    Il faudrait essayer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim NumLg As Integer  'Numero de ligne
     
    Dim i As Integer  'boucle For
     
    NumLg = 2   'Ligne de départ
     
    For i = 1 to 299 'A tester pour lire toutes les lignes
     
         If ((Cells(NumLg,6).Value >= "26" And Cells(NumLg,6).Value <= "35") And (Cells(NumLg,7).Value = "12")) Then '6 et 7 correspondent à "F" et"G"
            Range(Cells(NumLg,6),Cells(NumLg,7)).Interior.Color = vbYellow 'Code à tester car je suis devant un Mac sans Excel, il faudra peut-être faire un "Select"?
            NumLg = NumLg + 1
         EndIf
     
    Next i


    Bonne soirée

  3. #3
    Membre habitué Avatar de midge
    Homme Profil pro
    Conseiller
    Inscrit en
    Juillet 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2010
    Messages : 72
    Points : 139
    Points
    139
    Par défaut Boucle ne donne pas le resultat escompté
    Merci pour la réponse, mais cela ne marche pas aucun code d'erreur cependant ... Help ?

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 181
    Points : 377
    Points
    377
    Par défaut A essayer
    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
    Sub Essai()
     
    Dim Cellule As Range
    Dim Plage4 As Range
     
    Application.ScreenUpdating = False
     
    With Sheets("Feuil3")
        Set Plage4 = .Range("F2:F300")
        'colonne F avec âge, colonne G avec nombre de voyages
        For Each Cellule In Plage4
            If Cellule.Value > 26 And Cellule.Value < 35 Then
                If Cellule.Offset(0, 1).Value = 12 Then
                    Cellule.Interior.Color = vbYellow
                End If
            End If
        Next Cellule
    End With
     
    Set Plage4 = Nothing
     
    Application.ScreenUpdating = True
     
    End Sub

    electrons a raison.
    Il faut contrôler la valeur d'une colonne, ici F ; et si la condition est validée, alors regarder la colonne suivante, donc G.

    Si vous utilisez l'instruction "With", il serait bon de mettre le "." avant le "Range" ; sinon vous ne ferez pas forcément une vérif. sur la bonne feuille.

  5. #5
    Membre habitué Avatar de midge
    Homme Profil pro
    Conseiller
    Inscrit en
    Juillet 2010
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseiller
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2010
    Messages : 72
    Points : 139
    Points
    139
    Par défaut
    bonjour,
    Merci pour vos conseils, cela fonctionne maintenant !

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

Discussions similaires

  1. Boucle à plusieurs conditions
    Par ccadic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2013, 17h28
  2. [Débutant] Boucle if avec plusieurs conditions ?
    Par Imène_23 dans le forum MATLAB
    Réponses: 2
    Dernier message: 22/09/2011, 14h06
  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. syntaxe boucle if then (plusieurs conditions)
    Par oscar.cesar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/04/2008, 14h42

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