XL 2010 MFC Afficher evolution par rapport a semaine - 1

Niouf

XLDnaute Occasionnel
Bonjour le forum !

Je cherche a faire un truc tout simple a priori.

Je vous laisse consulter le tableau joint au prealable.
J'aimerai, pour chacune des lignes comparer S-1 a M-1 et afficher sur S-1 et afficher la tendance, si c'est plutoa la baisse, a la hausse ou ca ne bouge pas.
J'y arrive tres fqcilement pour une seule ligne.
Mais j'ai besoin de creer une seule MFC pour l'ensmble de la plage ...

Est possible, et si oui comment ?

Merci d'avance :)
 

Pièces jointes

  • Ex.xlsx
    75.4 KB · Affichages: 43

Niouf

XLDnaute Occasionnel
Salut,

Alors sauf erreur de ma part ... Ca ne fonctionne pas .
J'ai une evolution positive que ca passé de 44 a 45 ok, mais positive aussi quand je passe de 25 a 20 ... et continue quand je passe de 12.2 a 11.6 .
J'ai essaye de bricoler ta regle mais en vain ^^
 

job75

XLDnaute Barbatruc
Bonjour Niouf, JHA,

Voyez le fichier joint et la MFC à 3 conditions sur A:B.

La condition pour la croissance :
Code:
=ARRONDI(-(""&$A1);3)<ARRONDI(-(""&$B1);3)
La petite gymnastique -(""&$A1) élimine les cellules vides.

A+
 

Pièces jointes

  • Ex(1).xlsx
    76.2 KB · Affichages: 38
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour Niouf, JHA, le forum,

Une solution VBA avec cette macro dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Range, c As Range
Set r = Intersect(Target.EntireRow, [A:B], Me.UsedRange.EntireRow)
If r Is Nothing Then Exit Sub
For Each r In r.Rows 'en cas d'entrées multiples (copier-coller)
  Set c = r.Cells(1)
  If IsNumeric(CStr(c)) And IsNumeric(CStr(c(1, 2))) Then
    Select Case Round(c - c(1, 2), 3)
      Case Is < 0: c.NumberFormat = "[Red] - * 0.0%": If Not c.Font.Bold Then c.Font.Bold = True
      Case Is = 0: c.NumberFormat = " = * 0.0%": If c.Font.Bold Then c.Font.Bold = False
      Case Is > 0: c.NumberFormat = "[Blue] + * 0.0%": If c.Font.Bold Then c.Font.Bold = False
    End Select
  Else
    If r.Row > 1 Then c.NumberFormat = "0.0%": c.Font.Bold = False 'RAZ
  End If
Next
End Sub
Des formats Nombre personnalisés sont créés en colonne A.

Fichier .xlsm joint.

Pour tester j'ai copié le tableau A2:B54 sur 5300 lignes.

Chez moi sur Win 10 - Excel 2013 la macro s'exécute en 1,9 seconde.

Edit : j'ai ajouté des tests sur c.Font.Bold pour gagner du temps.

A+
 

Pièces jointes

  • Ex VBA(1).xlsm
    83.4 KB · Affichages: 31
Dernière édition:

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16