Excel - Max SI ou DBMAX - Mise en forme

Fermé
Snow - Modifié par Snow le 17/11/2010 à 17:06
 Snow - 26 nov. 2010 à 11:17
Bonjour,

J'en viens à vous car après essayé plusieurs choses avec les formules je n'y arrive pas

j'ai un tableau du type :

N°A_|_N°B_|_Date___|_Dernier_effectué
2.20 | 8213 | 13/11/10 | *
2.21 | 7215 | 15/06/10 | *
2.22 | 8158 | 25/09/10 | *
2.20 | 8213 | 18/10/09 |
2.21 | 7215 | 04/07/09 |
2.22 | 8158 | 14/08/09 |

Pour le moment la petite étoile dans dernier effectué est mise à la main.

Première chose : Ce que je cherche à faire, c'est en automatique de préférence (ou avec une macro le cas échéant) que lorsque l'on rentre une nouvelle ligne avec un type de numéro (N°A) il m'affiche une étoile dans "dernier efféctué" uniquement pour le plus récent par type de numéro
L'idée est d'avoir toujours une étoile pour la date la plus récente (et uniquement pour la plus récente) par type de N°A

Seconde chose : Changer la couleur de fond de la colonne date (par rapport à la date d'aujourd'hui):
Si la date est la plus récente et inférieur à un an -> jaune
Si la date est la plus récente et à un an -330jours (1 mois avant échéance) -> orange
Si la date n'est pas la plus récente -> gris
Si la date est la plus récente et supérieure à un an -> rouge

Sur le papier mon problème est simple mais à faire je ne m'y retrouve plus, je préçise que je suis sous Excel 2003

Quelqu'un a t'il une idée de comment faire ?
J'ai essayé avec dbmax et faire un MAX(SI mais sans succès
A voir également:

17 réponses

Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
Modifié par Le Pingou le 17/11/2010 à 17:49
Bonjour,
Pour la première demande, mettre la formule qui suit dans la cellule [D2] et la tirer vers le bas (valable jusqu'à la ligne 50) :
=SI(C2=SOMMEPROD(MAX(($A$2:$A$50=A2)*$C$2:$C$50));"*";"")

Pour la deuxième vous utilisez la mise en forme conditionnelle.
Salutations.
Le Pingou
3
Merci beaucoup Pingou, quel épine tu viens de m'enlever, je vais déjà pouvoir commencer par arreter de m'arracher les cheveux sur le premier problème =)

Je l'ai même modifié un peu pour que l'étoile n'apparaisse que si les deux champs sont complétés:

=SI(OU(A2="";D2="");"";SI(D2=SOMMEPROD(MAX(($A$1:$A$50=A2)*$D$1:$D$50));"*";""))

Encore merçi

Reste plus que le second problème mais qui je pense est plus simple
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
Modifié par Le Pingou le 17/11/2010 à 21:26
Bonjour,
Oui, mais le second est pour vous en passant par la Mise en forme conditionnelle.
En principe vous avez 4 règles à établir dont la première :
Formule : =ET($A2<>"";$C2<>"";$D2="")
Remplissage: Gris
S'applique ä : =$D$2:$D$50
Salutations.
Le Pingou
0
La mise en forme confitionnelle sur 2003 est limité à 3, dans mon cas j'ai 4 conditions
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
18 nov. 2010 à 11:04
Bonjour,
Et bien c'est tout simple, vous élimlnez la condition inutile en l'occurence la Grise.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je ne peux éliminer la condition grise:

Pas de date ou pas de n° -> blanc
Si la date n'est pas la plus récente -> gris
Si la date est la plus récente et inférieur à un an -> jaune
Si la date est la plus récente et à un an -330jours (1 mois avant échéance) -> orange
Si la date est la plus récente et supérieure à un an -> rouge

Il est possible que je doive rajouter:

Si la date est la plus récente et à un an -300jours (2 mois avant échéance) -> orange clair


J'ai déjà fait une mise en forme conditionnelle supérieure à 3 en rajoutant une feuille pour celà avec la macro suivante dans this workbook:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)    
    Dim i As Integer, j As Long, Mfc As FormatCondition, c As Range, Ws1 As Worksheet    
    On Error GoTo fin ' en cas de mauvaise manipulation, ça plante sur l'ordre suivant    
    Application.EnableEvents = False    
    Set Ws1 = Sheets("MFC")    
    For i = 1 To Target.FormatConditions.Count    
        Set Mfc = Target.FormatConditions(i)    
        If UCase(Left(Mfc.Formula1, 7)) = "=MA_MFC" Then    
            Ws1.Range("A1").Value = Target.Value    
            Set c = Nothing    
            For j = 2 To Ws1.Range("A65536").End(xlUp).Row    
                If Ws1.Range("A" & j) = True Then    
                    Set c = Ws1.Range("A" & j)    
                    Exit For    
                End If    
            Next j    
            If c Is Nothing Then Set c = Ws1.Range("A1")    
            c.Copy    
            Target.PasteSpecial (xlPasteFormats)    
            Application.CutCopyMode = False    
        End If    
    Next i    
    Application.EnableEvents = True    
fin:    
    On Error GoTo 0    
End Sub >


J'aurais voulu faire une seconde colonne dans la feuille MFC (D par exemple pour remplacer la A dans la même pour éviter de multiplier les feuilles annexes) car la première mise en forme se fait par rapport à du texte et la seconde par rapport à des formules sur les dates mais celà ne marche pas, je pense qu'il faut séparer les textes et les dates.

En tout cas merçi du temps et de l'aide préçieuse que tu m'apportes
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
18 nov. 2010 à 13:44
Bonjour,
Dans ce cas c'est correct de passer par une procédure. Par contre celle que vous proposez n'a aucun sens pour moi sans le fichier correspondant.
Je veux bien regarder la faisabilité d'une procédure avec les conditions que vous fixez à condition de me mettre à disposition une copie du fichier sur https://www.cjoint.com/ et poster le lien.
0
Voiçi le fichier:

https://www.cjoint.com/?0lspWwEvRqE

Dans l'idéal la couleur devrait changer en direct sans avoir à cliquer sur la cellule
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
18 nov. 2010 à 17:57
Bonjour,
Merci pour le fichier.
Après une petite étude, il se trouve que la procédure existante ne peut pas être utiliser car elle se réfère à une seule cellule et dans ce nouveau cas il faut mettre à jour toute la colonne [E6 :E156 ] selon les valeurs des nouvelles données ..
Je regarde pour une autre procédure, un peu de patience.
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
Modifié par Le Pingou le 18/11/2010 à 22:46
Bonjour,
Je vous laisse le soin de contrôler si cela vous convient : https://www.cjoint.com/?3lswR5KKPye
Note : vous pouvez changer les couleurs directement dans le tableau sur la feuille [MFC].

Salutations.
Le Pingou
0
Bonjour,

Ca ne marche pas chez moi, je modifie la date pour tester mais la couleur de la colonne E ne change pas. (j'aurais voulu changer la couleur de la colonne D)
0
Je me pose la question, est il possible de modifier ma macro existante de tel sorte qu'avec une formule différente en mise en forme conditionnelle (Mb=MFC par exemple) la mise en forme aille se chercher sur la colonne D de la feuille MFC et non A ?

(j'avoue que la macro je l'avais déjà récupéré et que je ne la comprends pas plus que ça)

je vous joints ma feuille "mis à jour"

J'ai essayé de séparer les calculs et la mise ne forme pour essayer de changer la couleur de la case par rapport au résultat sur la colonne F (sur la feuille principale) mais sans suççès.

J'ai pas l'impression d'tre clair :-/

https://www.cjoint.com/?0ltj5CjZbHv
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
Modifié par Le Pingou le 19/11/2010 à 14:18
Bonjour,
Concernant la procédure existante je vous ai donné une explication ici : https://forums.commentcamarche.net/forum/affich-19863329-excel-max-si-ou-dbmax-mise-en-forme#9 de plus elle ne traite pas les conditions mais applique un format de remplissage par rapport au texte que vous entrez dans la cellule.
Il est absolument nécessaire d'avoir une procédure qui teste chaque cellule selon les conditions et non uniquement la cellule concernée.
Je viens de faire un test en changeant la date de la cellule [D6] et j'obtiens les couleurs correspondant selon vos critères pour la cellule [E6].
Par contre je constate que j'ai pris en compte la mauvaise colonne.
La correction va suivre.
Est-ce que la couleur doit être appliquée au 2 colonnes D et E ?
merci d'une réponse rapide.

Salutations.
Le Pingou
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
19 nov. 2010 à 15:40
Bonjour,
J'ai décidé d'attribuer le résultat à la colonne [D] : https://www.cjoint.com/?3ltpOpjGnXx
0
C'est presque ça que je cherchais à faire :-)
Encore merçi (dsl pour le temps de ma réponse)
Pourrais je encore abuser un peu de votre temps pour une dernière manip ?
J'aurais voulu que la case change de couleur automatiquement même lorsque ne touche pas à la cellule en question.
Par exemple lorsque je rajoute ou date avec le même n° dans A donc l'ancienne n'aura plus l'étoile qu'elle passe en gris automatiquement, ou lorsque la couleur aurait du changer car il s'est passé un mois qu'elle change de couleur automatiquement.
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
20 nov. 2010 à 22:55
Bonjour,
Eh bien ce cas est déjà réglé dans ma proposition et de manière automatique.
Par exemple si j'ajoute dans la première ligne vide en [A70] - 5.13 et en [D70] la date 16.11.2010 vous constaterai que la cellule [D66] devient grise et le "*" disparait de la [E66] .... c'est bien ce que vous avez demandez.
Ou alors vous avez un problème ... ?
Note : ceci en rapport avec mon fichier.
0
Le Pingou Messages postés 12241 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 19 février 2025 1 458
20 nov. 2010 à 23:57
Bonjour,
Selon votre demande : lorsque la couleur aurait du changer car il s'est passé un mois qu'elle change de couleur automatiquement.
J'ai ajouté une procédure qui met à jour les données (colonne [D] selon la date du jour, chaque fois que vous ouvrez le classeur.
Modification procédure sous : Feuil3 (Archives préventif) , ThisWorkbook et Module lepingou.
Le fichier : https://www.cjoint.com/?3lux8wtJcRj
0
Désolé de ne pas avoir pu répondre plus tôt, je n'ai pas eu le tps de vérifier si c'était ok je regarde ça dans la journée
0