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 :

mettre une condition if dans un for each


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut mettre une condition if dans un for each
    bonjour à tous,

    voilà j'ai un souci pour placé une condition (If) dans un bloc For Each
    ce que je souhaite faire c'est colorisé la date quand celle ci et inférieur a la date du jour
    j'ai 2 colonne avec des dates

    j'arrive pas trouver le bonne objet auquel me référer
    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
     
    k = Worksheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row 'k égale derniere cellule remplie de la colonne B
     
            For Each Cell In Worksheets("Feuil1").Range("A2:A" & k)
                ligne = ligne + 1
     
                .ListItems.Add , , Cell
                .ListItems(ligne).ListSubItems.Add , , Cell.Offset(0, 1)
                .ListItems(ligne).ListSubItems.Add , , Format(Cell.Offset(0, 2), "dd/mm/yy")
                .ListItems(ligne).ListSubItems.Add , , Format(Cell.Offset(0, 3), "dd/mm/yy")
                .ListItems(ligne).ListSubItems.Add , , Cell.Offset(0, 4)
                .ListItems(ligne).ListSubItems.Add , , Cell.Offset(0, 5)
                .ListItems(ligne).ListSubItems.Add , , Cell.Offset(0, 6)
     
                If IsDate(Cell) Then
                    Cell.Offset(0, 3).ForeColor = RGB(0, 0, 255)
                End If
     
             Next
    merci pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    c'est la cellule source dans excel ou la cellule dans ton listview que tu veux colorier ?
    choisi, les deux sont en dessous

    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
    Dim Tablo
    Tablo = Worksheets("Feuil1").Range("A2", "G" & Worksheets("Feuil1").Range("B" & Rows.Count).End(xlUp).Row)
    For i = LBound(Tablo, 1) To UBound(Tablo, 1)
        .ListItems.Add , , Tablo(i, 1)
        With .ListItems(i).ListSubItems
            .Add , , Tablo(i, 2)
            .Add , , Format(Tablo(i, 3), "dd/mm/yy")
            .Add , , Format(Tablo(i, 4), "dd/mm/yy")
            .Add , , Tablo(i, 5)
            .Add , , Tablo(i, 6)
            .Add , , Tablo(i, 7)
        End With
     
        If IsDate(Tablo(i, 1)) Then
            ' colorier la cellule
            Worksheets("Feuil1").Cells(i, 4).Font.Color = RGB(0, 0, 255)
            ' colorier la valeur dans le listview
            .ListItems(i).ListSubItems(3).ForeColor = RGB(0, 0, 255)
        End If
    Next i

  3. #3
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    merci c'est le contenu qui ce trouve dans la listview

    mais j'en profite et-il possible de récupérer la couleur d'une date qui se trouve dans ma feuil
    dans la listview ?

    encore merci joe.levrai

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Regarde, ici on a la propriété voulue pour nos deux objets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     ' colorier la cellule
    Worksheets("Feuil1").Cells(i, 4).Font.Color = RGB(0, 0, 255)
    ' colorier la valeur dans le listview
    .ListItems(i).ListSubItems(3).ForeColor = RGB(0, 0, 255)
    une petite égalité entre les deux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListItems(i).ListSubItems(3).ForeColor = Worksheets("Feuil1").Cells(i, 4).Font.Color
    devrait faire l'affaire ? en adaptant la cellule si besoin

  5. #5
    Membre très actif Avatar de tony76
    Homme Profil pro
    Développeur pour le plaisir....
    Inscrit en
    Avril 2014
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur pour le plaisir....

    Informations forums :
    Inscription : Avril 2014
    Messages : 131
    Par défaut
    sa ne fonction pas

    et pourtant c'est le top ce que ma donner

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    oui y'a un décalage que j'ai oublié de mettre, désolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListItems(i).ListSubItems(3).ForeColor = Worksheets("Feuil1").Cells(i + 1, 4).Font.Color

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

Discussions similaires

  1. [AC-2010] Mettre une condition si dans un formulaire
    Par sebing dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/09/2011, 19h19
  2. Mettre une condition dans une action
    Par barouz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/04/2007, 11h24
  3. [C# 2.0]Mettre une condition dans un repeater
    Par giloutho dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/11/2006, 19h13
  4. mettre une condition dans l'ajout de données
    Par ash_rmy dans le forum Access
    Réponses: 2
    Dernier message: 27/07/2006, 13h29
  5. Mettre une condition if dans une requete sql
    Par Sardonnen dans le forum Oracle
    Réponses: 4
    Dernier message: 24/03/2006, 11h25

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