• Initiateur de la discussion Initiateur de la discussion khazar49
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

khazar49

XLDnaute Nouveau
Bonjour,

Je cherche depuis plusieurs jours à faire une macro de mise en forme avec condition mais je m'y connais très peu en VBA.

Pour info, je ne veux pas utiliser la mise en forme conditionnel car elle ogmente considérablement la taille de mon fichier.

Voilà ce que je voudrais comme macro:

Suivant la valeur qui se trouve da la colonne C je voudrai que la macro mette en forme les lignes de la colonne C jusqu'à la colonne M.

La mise en forme peut être soit une mise en forme du texte soit un replissage de la cellule.

Par exemple: si dans la colonne C j'ai une ou plusieurs cellules qui contienne la valeur "ST", je veux qua l'enseble de ces lignes de la colonne C à M soit remplie en vert.

Et la même chose se répète pour les cellule qui contienne un "G", un "T", ou "ATT".

Quelqu'un peut-il m'aider à écrire cette macro et me l'expliquer pour que je puisse la modifier pour plusieurs autres tableaux excel.

Merci

test excel.jpg
 

Pièces jointes

  • test excel.jpg
    test excel.jpg
    73.9 KB · Affichages: 37
  • test excel.jpg
    test excel.jpg
    73.9 KB · Affichages: 44
Re : Macro mise en forme

Bonjour, khazar49, le Forum,

A l'avenir, merci de bien vouloir déposer, à la place d'une image, un fichier sans donnée confidentielle.

Un essai avec le présent code.

Code:
Option Explicit
Sub MFC()
    Dim c As Range
    With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
    For Each c In Range("c10", Cells(Rows.Count, "c").End(xlUp))
        Select Case c
        Case "ST"
            c.Resize(, 11).Interior.ColorIndex = 43
        Case "T"
            c.Resize(, 11).Interior.ColorIndex = 6
        Case "ATT"
            c.Resize(, 11).Font.ColorIndex = 3
        Case "G"
            c.Resize(, 11).Font.Bold = True
        End Select
    Next
    With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub

A bientôt 🙂
 
Re : Macro mise en forme

Bonjour, khazar49, le Forum,

La ligne permet d’accélérer l’action du code :

- "ScreenUpdating = False" fige l’écran ;

- "Calculation = xlManual" interrompt le calcul automatique ;

- "EnableEvents = False" suspend l’action de macros événementielles éventuellement présentes.

Ne jamais oublier sa petite soeur, en fin de macro, avec cette ligne :

Code:
With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With

L'explication est-elle claire ?

A bientôt 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
187
Réponses
6
Affichages
217
Retour