Conditions, couleurs et additions.

matorel

XLDnaute Nouveau
[résolu] Conditions, couleurs et additions.

Bonjour à tous,

Je me bagarre avec ça depuis un moment maintenant sous excel 2000, je n'ai jamais fait de macro et je pêche donc pas mal, malgrès les aides que j'ai trouvé sur votre fofo...

J'ai un tableau d'un nombre fixe de colonne mais d'un nombre aléatoire de ligne (en fait,une extraction d'une base de donnée).

J'ai besoin de compter le nombre de lignes et additionner les valeurs dans la 3ème colonne en fonction des valeurs des deux premières colonnes.
J'avais donc pensé à attribuer une couleur (parmis 4 vu qu'il y a 4 cas) et faire les sommes par la suite en me basant sur les couleurs.

Ainsi :
- je regarde la valeur dans la colonne C qui est "Paris" ou "lyon",
- je regarde ensuite la valeur dans la colonne M qui est soit "posée" soit "Rn".
- et en fonction, j'attribue une couleur à la cellule de la colonne N... puis je passe à la ligne suivante.

Ensuite, j'additionne les valeurs de la colonne C en fonction des couleurs et en même temps, je compte combien il y a de lignes en bleue, rouge, vert et orange (au pif, les couleurs).

j'avais écrit ça, mais si ça me selectionne mes trois colonnes... ça ne modificis pas les couleurs de textes (pour l'instant, un problème à la fois, je cherche simplement à modifier les couleurs).

Dim Gest As String
Dim Loc As String

Range("C1,M1,N1").EntireColumn.Select
For Each Line In Selection
If Gest = "paris" Then
If Loc = posee" Then
Cellule.Font.ColorIndex = 5
Else
Cellule.Font.ColorIndex = 26
End If
Else
If Gest = "lyon" Then
If Loc = pose" Then
Cellule.Font.ColorIndex = 10
Else
Cellule.Font.ColorIndex = 43
End If
End If
End If
Next Line

End Sub

En vous remerciant par avance.

[edit] quelle horreur, préoccupé à saisir explicitement mon soucis, je n'avais mis aucune formule de politesse élémentaire ! Honte à moi !
 
Dernière édition:

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Conditions, couleurs et additions.

Bonjour

Juste une petite précision. J'ai vu ton post de présentation et donc que tu es nouveau sur ce forum.

Je t'encourage à lire la charte qui te permettra de profiter pleinement du forum.

Bonne lecture et à tout de suite
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Conditions, couleurs et additions.

RE

Le problème se trouve surtout au niveau de la politesse. Ici on est un peu tatasse sur les bonjours et les merci. Cela permet de garder une bonne ambiance au forum

Sinon pour ton problème tu n'as vraiment pas besoin d'une macro pour faire ce que tu cherches

Mais si tu veux à tout prix une macro voici un exemple

Code:
Option Explicit

Sub essai()

Dim MaLigne As Integer, x As Integer
Dim ParisP As Integer, ParisNr As Integer, LyonP As Integer, LyonNr As Integer

MaLigne = Range("C65536").End(xlUp).Row

For x = 1 To MaLigne
    If Range("C" & x) = "paris" Then
        If Range("M" & x) = "posée" Then
            Range("N" & x).Font.ColorIndex = 5
            ParisP = ParisP + 1
        Else
            Range("N" & x).Font.ColorIndex = 26
            ParisNr = ParisNr + 1
        End If
    ElseIf Range("C" & x) = "lyon" Then
        If Range("M" & x) = "posée" Then
            Range("N" & x).Font.ColorIndex = 10
            LyonP = LyonP + 1
        Else
            Range("N" & x).Font.ColorIndex = 43
            LyonNr = LyonNr + 1
        End If
    End If
Next x

Range("A" & MaLigne + 1) = "Paris posée"
Range("B" & MaLigne + 1) = ParisP
Range("A" & MaLigne + 2) = "Paris Nr"
Range("B" & MaLigne + 2) = ParisNr
Range("A" & MaLigne + 3) = "Lyon posée"
Range("B" & MaLigne + 3) = LyonP
Range("A" & MaLigne + 4) = "Lyon Nr"
Range("B" & MaLigne + 4) = LyonNr

End Sub

Bon courage
 

matorel

XLDnaute Nouveau
Re : Conditions, couleurs et additions.

Pascal76 à dit:
RE

Le problème se trouve surtout au niveau de la politesse. Ici on est un peu tatasse sur les bonjours et les merci. Cela permet de garder une bonne ambiance au forum

c'est normal, j'anime également un forum et veille particulièrement à la bonne ambiance et aux règles élémentaires de savoir vivre... je me lacère moralement jusqu'au petit linge de m'être montré si cavalier.
 

matorel

XLDnaute Nouveau
Re : Conditions, couleurs et additions.

En tout cas, merci pour la réponse très rapide.

Je vais broder un peu histoire de montrer que c'est moi qui l'ait fait... heu, enfin, je vais additionner les valeurs en fonction des couleurs et posterais le code, si ça peut aider quelqu'un d'autres.

Merci d'avoir fait ... bah, tout le boulot en fait. merci, merci.
 

matorel

XLDnaute Nouveau
Re : Conditions, couleurs et additions.

chose promise, chose due, je mets donc le code final qui fonctionne bien et un grand merci à Pascal car c'est grâce à lui. j'ai juste renommé une ou deux variable

Sub essai()

Dim MaLigne As Integer, x As Integer
Dim ParisPose As Integer, Paris As Integer, LyonPose As Integer, Lyon As Integer
Dim Totalparis As Variant, Totalparispose As Variant, Totalyonpose As Variant, Totalyon As Variant

MaLigne = Range("C65536").End(xlUp).Row

Totalparis = 0
Totalparispose = 0
Totalyon = 0
Totalyonpose = 0

For x = 1 To MaLigne
If Range("C" & x) = "paris" Then
If Range("M" & x) = posee" Then
Range("N" & x).Font.ColorIndex = 5
ParisPose = ParisPose + 1
Totalparispose = Totalparispose + Range("N" & x).Value
Else
Range("N" & x).Font.ColorIndex = 26
Paris = Paris + 1
Totalparis = Totalparis + Range("N" & x).Value
End If
ElseIf Range("C" & x) = "lyon" Then
If Range("M" & x) = "posee" Then
Range("N" & x).Font.ColorIndex = 10
LyonPose = LyonPose + 1
Totalyonpose = Totalyonpose + Range("N" & x).Value
Else
Range("N" & x).Font.ColorIndex = 43
Lyon = Lyon + 1
Totalyon = Totalyon + Range("N" & x).Value
End If
End If
Next x

Range("A" & MaLigne + 1) = "Paris posée"
Range("B" & MaLigne + 1) = ParisPose
Range("C" & MaLigne + 1) = Totalparispose
Range("A" & MaLigne + 2) = "Paris"
Range("B" & MaLigne + 2) = Paris
Range("C" & MaLigne + 2) = Totalparis
Range("A" & MaLigne + 3) = "Lyon posée"
Range("B" & MaLigne + 3) = LyonPose
Range("C" & MaLigne + 3) = Totalyonpose
Range("A" & MaLigne + 4) = "Lyon"
Range("B" & MaLigne + 4) = Lyon
Range("C" & MaLigne + 4) = Totalyon

End Sub
 

Statistiques des forums

Discussions
312 305
Messages
2 087 082
Membres
103 457
dernier inscrit
fab2614