Mise en forme conditionnelle VBA excel

Résolu
CescoCorp Messages postés 8 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 11 mars 2007 - 25 févr. 2007 à 14:19
CescoCorp Messages postés 8 Date d'inscription dimanche 25 février 2007 Statut Membre Dernière intervention 11 mars 2007 - 11 mars 2007 à 11:26
Bonjour,
Je souhaiterais, dans excel, avec une macro, sélectionner une plage (morceau d'une ligne) et dans cette plage mettre en couleur (rouge par exemple) et en gras les x plus grandes valeurs, sachant que "x" est une valeur inscrite dans une cellule (A1 par exemple).
Ensuite, dans chaque cellule adjacente à cette ligne (à droite), je voudrais que soit calculée la somme des valeurs des cellules en rouge (et gras).
Ceci serait réalisé sur une centaine de colonnes.

En fait, c'est pour faire réaliser un classement pour une association sportive, au lieu de tout faire à la main ! (comme c'est le cas jusqu'à présent)

Si quelqu'un a une solution à mon problème, qu'il n'hésite pas...
Merci

14 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 févr. 2007 à 15:16
Re,
Oups, petit buig de ma part je recherchais toujours la premiere valeur dans la plage de donnée avec Find, je n'avais pas prévue que l'on pouvais avoir plusieurs fois les même valeurs.
Essaie donc celle ci alors.

Dim i As Integer
Dim ValMax As Long
Dim TotalMax As Long

   'Selection de la plage de recherche
   Range("A1:D4").Select
   
   'Enleve tout les valeur en gras
   Selection.Font.Bold = False
   Selection.Interior.ColorIndex = xlNone
   'De 1 à la valeur saisie dans E1
   '=> le nombre de valeurs cherchées
   For i = 1 To ActiveSheet.Range("E1").Value
       'Récupération des X plus grande valeur
       ValMax = Application.WorksheetFunction.Large(Selection, i)
       'Recherche de la valeur dans la meme plage de recherche
       Call Selection.Find(ValMax, , xlValues).Activate
       'Si la cellule est déjà en gras c'est qu'on doit chercher
       'l'occurence suivante
       While ActiveCell.Font.Bold = True
           'On recherche donc une nouvelle fois dans la plage
           Call Selection.Find(ValMax, ActiveCell, xlValues).Activate
       Wend
       
       'Avec la cellule active
       With ActiveCell
           'On met en gras
           .Font.Bold = True
           'On colore en rouge
           .Interior.Color = vbRed
       End With
       TotalMax = TotalMax + ValMax
   Next
   'On place le total en F1
   ActiveSheet.Range("F1").Value = TotalMax
   Call ActiveSheet.Range("F1").Select, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
3
Rejoignez-nous