Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/09/2011, 15h51   #1
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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 :
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
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 15h58   #2
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
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 :
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
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 16h12   #3
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
Oui mais j'ai modifié certaines choses.

Je n'ai plus d'en-tête sur ma première colonne.
au niveau code :
Code :
Set Tbl = .Range("B2:AF21")
au lieu de
Code :
Set Tbl = .Range("A2:AF19")
Du coup,
Code :
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 :
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.
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 16h22   #4
Membre éprouvé
 
Homme Franck PRESSE
Inscription : août 2010
Messages : 202
Détails du profil
Informations personnelles :
Nom : Homme Franck PRESSE
Âge : 38
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : août 2010
Messages : 202
Points : 444
Points : 444
Laisse :
Code :
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 :
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
__________________
Cordialement,
Franck P.


Ps : n'oubliez pas de placer vos posts comme "résolus" () si tel est le cas...
pijaku est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 16h31   #5
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
Oui, c'est ce que j'ai fait... Ca n'empèche que ça ne fonctionne pas
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 12h10   #6
Membre régulier
 
Femme
Inscription : septembre 2011
Messages : 86
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 : 86
Points : 75
Points : 75
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 :
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 :
.ListItems(L + 1).ForeColor = Couleurs(L, 0)
Ciao
Cocotte278 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h42.


 
 
 
 
Partenaires

Hébergement Web