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 :

Couleur de police dans première colonne de ListView [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut Couleur de police dans première colonne de ListView
    Bonjour à tous

    Une question qui a l'air banal... Mais je me creuse la tête dessus depuis ce matin.

    Je travaille dans une ListView et j'arrive (grâce à l'aide de Daniel et Franck ) à changer la couleur de ma police via tableaux.

    Le souci est que ça fonctionne pour toutes mes colonnes sauf la première.

    Voici mon 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
    24
     
    Dim Tbl As Range, D As Range
    Dim LN(19, 37)
    Dim Couleurs(19, 37)
    Dim L As Integer, c As Integer
     
    With Worksheets("Septembre")
        Set Tbl = .Range("B2:AF21")
        For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 2) = D.Font.Color
            LN(D.Row - 2, D.Column - 2) = D.Value
        Next D
    End With
     
    With ListView9
        .ListItems.Clear
        For L = 0 To UBound(LN, 1)
            .ListItems.Add , , LN(L, 0)
            For c = 1 To UBound(LN, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , LN(L, c)
                .ListItems(L + 1).ListSubItems(c).ForeColor = Couleurs(L, c)
            Next
        Next
    End With
    Merci d'avance

  2. #2
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Salut,
    Il ne faut pas ouvrir un nouveau sujet, juste pour une petite précision dans ton code...
    Là tu en es à trois sujets ouverts pour la même problématique...
    Bon, ça passe pour cette fois.
    En fait, je ne te l'ai pas coloriée hier car ta colonne 1 de Listview est la seule à avoir une entête... Du coup...
    Ca donne :
    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
    With Worksheets("Feuil2")  'C'est là que ça se gâte !
        'DerL = .Range("A20").End(xlUp).Row
        Set Tbl = .Range("A2:AF19")
        For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 1) = D.Font.Color
            LN(D.Row - 2, D.Column - 1) = D.Value
        Next D
    End With
     
    With ListView1
        .ListItems.Clear
        For L = 0 To UBound(LN, 1)
            .ListItems.Add , , LN(L, 0)
            'C'EST ICIIIIIIIIIIIIIIII !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
            .ListItems(L + 1).ForeColor = RGB(255, 255, 255) 'couleur à adapter
            For c = 1 To UBound(LN, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , LN(L, c)
                .ListItems(L + 1).ListSubItems(c).ForeColor = Couleurs(L, c)
            Next
        Next
    End With

  3. #3
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut
    Oui mais j'ai modifié certaines choses.

    Je n'ai plus d'en-tête sur ma première colonne.
    au niveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tbl = .Range("B2:AF21")
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tbl = .Range("A2:AF19")
    Du coup,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 2) = D.Font.Color
            LN(D.Row - 2, D.Column - 2) = D.Value
    Next D
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 1) = D.Font.Color
            LN(D.Row - 2, D.Column - 1) = D.Value
    Next D
    Et avec ça, j'ai des données qui devraient être colorées dans ma première colonne mais qui ne le sont pas.
    Avec ton code, bah il me re-décale tout d'une colonne. pour pouvoir colorer mes premières données...

    PS : désolée pour la nouvelle discussion mais je pensais que si je continuais l'autre tu n'airais pas vu, vu qu'elle est résolue.

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Laisse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 2) = D.Font.Color
            LN(D.Row - 2, D.Column - 2) = D.Value
    Next D
    au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 1) = D.Font.Color
            LN(D.Row - 2, D.Column - 1) = D.Value
    Next D

  5. #5
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut
    Oui, c'est ce que j'ai fait... Ca n'empèche que ça ne fonctionne pas

  6. #6
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 87
    Par défaut Réponse
    Bonjour,

    bon, j'ai trouvé mon souci : j'ai oublié une ligne de code !

    Voici ce que j'ai maintenant :

    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
    With Worksheets("Janvier")
        Set Tbl = .Range("B2:AF21")
        For Each D In Tbl
            Couleurs(D.Row - 2, D.Column - 2) = D.Font.Color
            LN(D.Row - 2, D.Column - 2) = D.Value
        Next D
    End With
     
    With ListView1
        .ListItems.Clear
        For L = 0 To UBound(LN, 1)
            .ListItems.Add , , LN(L, 0)
            .ListItems(L + 1).ForeColor = Couleurs(L, 0)
            For c = 1 To UBound(LN, 2)
                .ListItems(.ListItems.Count).ListSubItems.Add , , LN(L, c)
                .ListItems(L + 1).ListSubItems(c).ForeColor = Couleurs(L, c)
            Next
        Next
    End With
    La ligne en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .ListItems(L + 1).ForeColor = Couleurs(L, 0)
    Ciao

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

Discussions similaires

  1. Plusieurs couleurs de police dans un TEdit?
    Par bryce426 dans le forum Débuter
    Réponses: 3
    Dernier message: 18/02/2010, 17h47
  2. Couleur de police dans un publipostage
    Par Tintou dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/06/2007, 16h17
  3. Réponses: 1
    Dernier message: 22/09/2006, 10h30
  4. [C#][VS 2005]Supprimer la première colonne dans un DatagridView
    Par cmoiscrat dans le forum Windows Forms
    Réponses: 2
    Dernier message: 29/06/2006, 15h20
  5. [JTable] Insertion d'images dans la première colonne
    Par cocolepelo dans le forum Composants
    Réponses: 2
    Dernier message: 29/11/2005, 15h17

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