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 :

[VBA-E] boucler sur une colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut [VBA-E] boucler sur une colonne
    bonjour
    je souhaite boucler sur une colonne A et en fonction du contenu de la cellule OK ou NOK mettre du rouge ou du vert
    ce code ne marche pas je ne trouve pas pourquoi
    pouvez vous m'aider svp ?
    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
    24
    25
    26
    27
    28
     
    Dim Cell As Range
    Dim x As Integer
     
    'récupère le numéro de la dernière ligne non vide
    'dans la colonne A
    x = Range("A65536").End(xlUp).Row
     
    'Boucle sur les cellules de la colonne A
    For Each Cell In Range("A2:A" & x)
     
        Phrase = Cell
     
        If Phrase = "OK" Then
        With Selection.Interior
            .ColorIndex = 45
            .Pattern = xlSolid
        End With
     
       ElseIf Phrase = "NOK" Then
        With Selection.Interior
            .ColorIndex = 43
            .Pattern = xlSolid
        End With
     
    Next Cell
     
    End Sub

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

    Déjà tu déclare ta variable x comme un entier, déclare là comme un long, car au delà de 32000 lignes tu auras un soucis

    puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    For Each Cell In Range("A2:A" & x & "")
    Dejà dans un premier temps.
    Et soit plus explicit, donne nous le message d'erreur s'il y en as et où s'arrête le programme

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    j ai le message Next sans for qui saffiche comme erreur

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    il te manque un "End if" avant le next cell

    Starec

  5. #5
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    ca ne marche pas il colore en rouge la cellule sur laquelle je me trouve lorsqu j'execute la macro

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    C'est normal, car avec l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    With Selection.Interior
            .ColorIndex = 45
            .Pattern = xlSolid
        End With
    tu colorie la cellule sélectionné, donc active, il faut avant que tu sélectionnes la cellule

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range("A" & x & "").select
    Starec

  7. #7
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    voici mon nouveau code

    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
     
     
    Dim Cell As Range
    Dim x As Integer
     
    'récupère le numéro de la dernière ligne non vide
    'dans la colonne A
    x = Range("A65536").End(xlUp).Row
     
    'Boucle sur les cellules de la colonne A
    For Each Cell In Range("A2:A" & x & "")
     
        Phrase = Cell
     
        If Phrase = "OK" Then Range("A" & x & "").Select: With Selection.Interior
            .ColorIndex = 45
            .Pattern = xlSolid
        End With: ElseIf Phrase = "NOK" Then Range("A" & x & "").Select: With Selection.Interior
            .ColorIndex = 43
            .Pattern = xlSolid
        End With
     
    Next Cell

    j ai le message end if sans bloc if
    avec cette partie grisee If Phrase = "OK" Then Range("A" & x & "").Select: With Selection.Interior

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    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
    26
     
     
    Dim Cell As Range
    Dim x As long
     
    'récupère le numéro de la dernière ligne non vide
    'dans la colonne A
    x = Range("A65536").End(xlUp).Row
     
    'Boucle sur les cellules de la colonne A
    For Each Cell In Range("A2:A" & x & "")
     
        Phrase = Cell
     
        If Phrase = "OK" Then 
              With Range("A" & x & "").interior
                   .ColorIndex = 45
                   .Pattern = xlSolid
              end with
        else
              with Range("A" & x & "").interior
                  .ColorIndex = 43
                  .Pattern = xlSolid
            End With
        end if
    Next Cell
    dans la mesure où tu n'as que deux valeurs possible

    Cela devrait être mieux, pas testé

    Starec

  9. #9
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    marche pas ce code

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Je viens de réditer

    Starec

  11. #11
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    perdu ! marche pas
    je peux avoir des cellules vides aussi ou bien un autre texte

  12. #12
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    un case peu-être ...?


    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
    26
    27
    28
    29
    30
    31
    32
     
     
    Dim Cell As Range
    Dim x As Long
     
    'récupère le numéro de la dernière ligne non vide
    'dans la colonne A
    x = Range("A65536").End(xlUp).Row
     
    'Boucle sur les cellules de la colonne A
    For Each Cell In Range("A2:A" & x & "")
     
        Select Case Cell.Text
     
        Case "OK"
              With Cell.Interior
                   .ColorIndex = 45
                   .Pattern = xlSolid
              End With
        Case "NOK"
              With Cell.Interior
                  .ColorIndex = 43
                  .Pattern = xlSolid
            End With
         Case Else 'Pour les autre cas
              With Cell.Interior
                  .ColorIndex = xlNone
     
            End With
        End Select
    Next Cell
    End Sub

  13. #13
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 119
    Par défaut
    impecable
    merci

  14. #14
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Et le résolu, on doit le mettre pour toi?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

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

Discussions similaires

  1. ListObject : boucler sur une colonne dont on connait le nom
    Par c.piette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2015, 08h42
  2. [VBA-E] Minimum d'une colonne avec condition sur autre colonne
    Par Currahee dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2007, 17h01
  3. [VBA/Excel] Boucler sur les colonnes
    Par jefe.k dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 23/02/2007, 08h42
  4. [VBA-EXCEL]bloquer la saisie utilisateur sur une colonne
    Par calimero91 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/06/2006, 14h37
  5. Check sur une colonne de table "en cours"
    Par in dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/07/2003, 09h47

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