Boucle de Mise en forme avec condition

Bonjour à tous,

*EDIT une MFC ne pourra pas convenir ici car les données doivent être exportées dans différents documents, et la MFC ne peut pas être copiée collée

J'aurais besoin d'un peu aide pour mettre en place 2 maccros qui iraient mettre en forme une ligne en fonction d'une valeur dans une des colonnes,

1ere maccro:

Si il y a un X dans la Colonne H , mettre en Jaune toute la ligne

2eme maccro :

Si en col H a valeur est égale à "Whilst stock last" , mettre en forme les COL (B&C&D) en remplissage bleu et bordure haut & bas en pointillé en bleu plus foncé

Si en col H la valeur est égale à supprimé mettre en forme les COL (B&C&D) en remplissage rouge et bordure haut & bas en rouge + foncé

Si en Col H la valeur est égale à new , mettre en forme les COL (B&C&D) en remplissage vert clair et bordure haut et bas en pointillé en vert plus foncé,

j'ai fais un fichier excel avec une idée du resultat attendu,

Mille merci pour votre aide,

Et très bonne journée !

Bonjour,

C'est l'affaire de MFC ce que tu demandes ! Pas besoin de perdre du temps à écrire une macro alors qu'une formule sera plus rapide à insérer pour faire la même chose !

Cordialement.

Non Justement,

J'ai hésité à le préciser car j'attendais cette remarque...

ce sont des données qui seront plus tard exportées dans différents documents donc c'est justement pas la MFC qui sera efficace, réécrire toutes les formules à chaque fois me parait fastidieux, de plus les mise en forme conditionnelle ne peuvent pas être "copiée, collée",

Donc non merci pour la MFC,

Cordialement

Les MFC se copient et se collent.

Tu parles d'opération ultérieure d'export... En l'état, pour l'opération telle qu'indiquée, j'exclue une macro. Sur l'ensemble je ne sais pas, ça se décide après évaluation de la solution la plus économique...

En particulier, dès lors qu'il s'agit de copier-coller, j'évite d'en faire autant que je le peux, je pourrais donc trouver plus économique un transfert direct de valeurs suivi d'une reconstruction de MFC (par macro s'entend, donc dans un cas pareil je pourrais faire la première partie en construisant les MFC par macro, la procédure devant alors être réutilisée).

Mais tant qu'on n'a pas toutes les données de la question globale pour décider, je ne me lance pas (mais je n'ai rien contre que d'autres s'amusent à le faire...)

Cordialement.

MFerrand a écrit :

Les MFC se copient et se collent.

Cordialement.

Peux tu me donner plus de précisions car je n'ai jamais réussi a copier une donnée excel sujette à une MFC pour la coller avec cette même mise en forme dans un nouveau document, si cela est possible peux tu m'expliquer ?

Copier coller les formules de MFC est exlcure car trop long,

Je ne comprends pas pourquoi tu exclus la macro, c'est ce qui semble être le plus rapide pour aller mettre en forme la donnée qui vient d’être collée dans un nouveau document, une macro enregistrée dans le Personal.xlsb et le tour est joué non ?

De plus les mises en forme conditionnelle sont rapidement instables, et les utilisateurs finaux de ces fichiers ne sont pas des grand afficionados d'excel, entendez par la qu'il n'auront pas forcément des réflexes de bonne pratique. je souhaiterai donc que les mise en forme soit attachées en dur au au cellules ou elle doivent se trouver et qu'elles ne se supprime pas si l'utilisateur venait a modifier la donnée qui déclenche la MFC.

Ma demande n'a donc rien a voir avec une mise en forme conditionnelle

Cordialement

des fois que ça intéresse ou dépanne quelqu'un voici la solution que j'ai trouvé :

Je remercie également tous ceux qui m'ont apporté de l'aide !

Sub MEF_FCSTLSTG()
'Code pour mise en forme des Statuts du fichier de Forecast Listing
Application.ScreenUpdating = False

Dim ligne As Long: Dim colonne As Long: Dim der_ligne As Long: Dim der_colonne As Long
ligne = 1

'permet de trouver les dernière ligne et dernières colonnes
der_ligne = Cells.SpecialCells(xlCellTypeLastCell).Row
der_colonne = Cells.SpecialCells(xlCellTypeLastCell).Column

'creation du tableau
    Cells.Select
    Range("A1").Activate
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$1:" & "$" & der_ligne), , xlYes).Name = _
        "Tableau1"

While ligne < der_ligne
'26 est ici la colonne ou je cherche si mon test est vrai
    If (Cells(ligne, 26).Value = "x" Or ((Cells(ligne, 26).Value = "X"))) Then

                Range("A" & ligne, "AG" & ligne).Select

                With Selection.Interior
                    .Color = 10092543
                End With
                With Selection.Borders(xlEdgeTop)
                    .LineStyle = xlContinuous
                    .ThemeColor = 8
                    .TintAndShade = 0.399945066682943
                    .Weight = xlThin
                End With
                With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlContinuous
                    .ThemeColor = 8
                    .TintAndShade = 0.399945066682943
                    .Weight = xlThin
                End With
    End If

    If (Cells(ligne, 25).Value = "NEW") Then

                Range("d" & ligne, "h" & ligne).Select

                With Selection.Interior
                    .Color = 5296274
                End With
                With Selection.Borders(xlEdgeTop)
                    .LineStyle = xlDash
                    .Color = -11489280
                    .Weight = xlMedium
                End With
                With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlDash
                    .Color = -11489280
                    .Weight = xlMedium
                End With

    ElseIf (Cells(ligne, 25).Value = "WHILST STOCKS LAST") Then

                Range("d" & ligne, "h" & ligne).Select

                With Selection.Interior
                    .ThemeColor = xlThemeColorAccent1
                    .TintAndShade = 0.399975585192419
                End With
                With Selection.Borders(xlEdgeTop)
                    .LineStyle = xlDash
                    .ThemeColor = 5
                    .TintAndShade = -0.249946592608417
                    .Weight = xlMedium
                End With
                With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlDash
                    .ThemeColor = 5
                    .TintAndShade = -0.249946592608417
                    .Weight = xlMedium
                End With

    ElseIf (Cells(ligne, 25).Value = "SUPPRIME") Then

                Range("d" & ligne, "h" & ligne).Select

                With Selection.Interior
                    .Color = 13311
                End With
                With Selection.Interior
                    .Color = 13311
                End With
                With Selection.Font
                    .Strikethrough = True
                End With
                    With Selection.Borders(xlEdgeTop)
                    .LineStyle = xlDash
                    .Color = -16777024
                    .Weight = xlMedium
                End With
                With Selection.Borders(xlEdgeBottom)
                    .LineStyle = xlDash
                    .Color = -16777024
                    .Weight = xlMedium
                End With
End If

    ligne = ligne + 1

Wend

Application.ScreenUpdating = True
End Sub
Rechercher des sujets similaires à "boucle mise forme condition"