Mise en forme conditionelle sous VBA

Erwith

XLDnaute Nouveau
Bonjour,

Voici mon problème :

J'aimerais créer une macro de mise en forme conditionnel qui colore en vert la valeur MIN d'une colonne et en rouge la valeur MAX de cette même cellules.

Le problème, c'est que j'aimerai que cette macro soit appllicable à différentes colonnes.

J'ai crée une macro permettant de trouver la cellule maximal mais elle indique sa valeur dans une autre cellule, il ne m'est dès lors plus possible de demandé une coloration de la cellule MAX se trouvant dans la colonne.

J'ai également crée une macro permettant de colorer, mais vu que je n'arrive pas à l'intégrer à l'autre, elle est inutile.

Je vous joint mon fichier exemple.

Mon but est de faire en sorte que le 2ème tableau apparaissent comme le 1er avec une macro.

Etant donné que j'aurais 1 tableau complet en plus chaque jour, je me dois de trouver une macro à la place de la mise en forme conditionnelle relativement longue.

Si vous avez une piste, je suis preneur.

Cordialement, Erwith.
 

Pièces jointes

  • Exemple.xls
    52.5 KB · Affichages: 49
  • Exemple.xls
    52.5 KB · Affichages: 53
  • Exemple.xls
    52.5 KB · Affichages: 55

tototiti2008

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Bonjour Erwith,

Déjà, sur le 1er tableau, tu peux appliquer la même MFC sur tout le tableau en supprimant les $ appropriés


Code:
=B8=MAX(B$8:B$13)

Ce qui fait que si tu as une nouvelle colonne, il suffit de copier la mise en forme de la colonne précédente
En espérant que ça réponde à ta question
 

Erwith

XLDnaute Nouveau
Re : Mise en forme conditionelle sous VBA

Merci beaucoup pour ta réponse, malheureusement, le programme final ne sera pas pour moi et les personnes qui devront s'en occuper ne savent pas faire de la mise en forme conditionnelle.

C'est pourquoi la solution du VBA, qui produisait le même effet uniquement avec un bouton étais préférable.

Si tu as d'autres pistes, je suis preneur.

Autrement, merci pour ta réponse qui me fait bien avancé quand même !
 

Erwith

XLDnaute Nouveau
Re : Mise en forme conditionelle sous VBA

Re-bonjour,

Après multiple tentative, je n'arrive à rien.

Mon problème principal est que je n'arrive pas à faire séléctionner ou reconnaître par VBA la cellule possédant la valeur MAX.

Si quelqu'un a une ébauche de code ou une meilleure idée que ma principale, je l'en remercie d'avance.

Bonne soirée.
 

tototiti2008

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Re,

Explique nous déjà, sur base de ton fichier fourni, quelles opérations devront faire les utilisateurs pour avoir la mise en forme MIN/MAX
Ils devront sélectionner le nouveau tableau ?
Si non, comment fais-tu pour déterminer à quel tableau appliquer la mise en forme ? (puisque, si j'ai compris, tu auras de nouveaux tableaux en-dessous des anciens régulièrement)
 

Paritec

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Bonjour Erwith Totottiti:) le forum
voilà teste et redis moi, enfin si la macro s'applique sur une sélection de cellules mais là pas sur
a+
papou:)
VB:
Sub Test_Max_Sum()
    Dim Cellules As Range, x, max As Range, xx As Range, y&, yy As Range
    Set Cellules = Selection
    x = Application.WorksheetFunction.max(Cellules)
    y = Application.WorksheetFunction.Min(Cellules)
    Set xx = Cellules.Find(x)
    Cells(xx.Row, xx.Column).Interior.ColorIndex = 3
    Set yy = Cellules.Find(y)
    Cells(yy.Row, yy.Column).Interior.ColorIndex = 43
End Sub
 
Dernière édition:

Erwith

XLDnaute Nouveau
Re : Mise en forme conditionelle sous VBA

Bonsoir,

Tout d'abord, pour répondre à tototiti, il faudrait séléctionné la plage manuellement avant de cliquer sur le bouton permettant de mettre les couleurs en fonctions des chiffres.

Ensuite, merci beaucoup à Paritec, c'est exactement ça que je cherchais, j'ai juste modifié ton code car un "&" c'étais glissé derrière le variable y. je ne sais pas si c'étais fais exprès, mais en tout cas ça faussais l'apparition des couleurs.

De plus, il me reste un petit soucis, c'est qu'avec ce code, si il y a par exemple 2 nombres soit : 1.600 et 1.625, il choisira de mettre 1.625 comme MIN. A mon avis, il ne prend en compte que la première décimale, mais je ne vois pas quoi modifié dans ton code.

Merci encore, ça m'avance déjà bien et ça m'apprend à utiliser les formules.

Cordialement,

Erwith
 

Paritec

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Bonsoir Erwith le forum
bon oui j'avais tout faux voilà revu et corrigé, mais c'était un essai pour voir si cela te convenait ou pas
là les variables sont correctes et le résultat je pense ce que tu souhaites
a+
papou:)
 

Pièces jointes

  • ExempleErwithV1.xls
    58.5 KB · Affichages: 52

tototiti2008

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Bonjour Paritec,
Re,

Ou alors, tu sélectionnes tout le nouveau tableau et tu lances la macro là

Code:
Sub MFC_MIN_MAX()
Dim LigneDeb As Long, LigneFin As Long, ColDeb As String
    With Selection
        .Range("A1").Activate
        LigneDeb = ActiveCell.Row
        LigneFin = LigneDeb + Selection.Rows.Count - 1
        ColDeb = Left(ActiveCell.Address(True, False, xlA1), InStr(1, ActiveCell.Address(True, False, xlA1), "$") - 1)
        .FormatConditions.Delete
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & ColDeb & LigneDeb & "=MAX(" & ColDeb & "$" & LigneDeb & ":" & ColDeb & "$" & LigneFin & ")"
        .FormatConditions(1).Interior.ColorIndex = 3
        .FormatConditions.Add Type:=xlExpression, Formula1:="=" & ColDeb & LigneDeb & "=MIN(" & ColDeb & "$" & LigneDeb & ":" & ColDeb & "$" & LigneFin & ")"
        .FormatConditions(2).Interior.ColorIndex = 4
    End With
End Sub

Edit : Re Paritec ;),
oui moi aussi je me suis demandé s'il ne fallait pas faire le tableau complet mais !!! ???

D'où ma question du message #6
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Mise en forme conditionelle sous VBA

Re bonsoir Erwith le forum
le & derrière la variable signifie que je l'ai déclarée en Long c'est comme y as long il n'y a pas d'erreur sauf que il fallait en # soit en y as double !!!!!
a+
papou:)

PS: Re Tototiti, oui moi aussi je me suis demandé s'il ne fallait pas faire le tableau complet mais !!! ???
 

Erwith

XLDnaute Nouveau
Re : Mise en forme conditionelle sous VBA

Bonjour Tototiti et Paritec,

Tout d'abord, merci pour votre rapidité. Les 2 codes proposés représentent exactement ce que je voulais faire.

Merci pour tes explications sur le 1er code également.

Il ne me reste plus qu'à analyser vos codes afin d'en comprendre la totalité.

Merci encore et au plaisir.

Cordialement, Erwith.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 505
Messages
2 089 071
Membres
104 020
dernier inscrit
Mzghal