Copié - Collé sur l'ensemble d'un tableau la mise en forme conditionnelle

Bonjour,

image 1

Je souhaite utiliser la mise en forme conditionnelle pour faire ressortir le moment ou le nombre change

Cela permet de pouvoir identifier à l’œil nu le jour à la quantité en stock d'une référence change

Sur un petit tableau comme celui-ci dessus j’ai juste à sélectionner l’ensemble du tableau puis faire une mise en forme conditionnelle.

Mais sur le tableau original avec plus de 800 références et 90 dates, lorsque je sélectionne l’ensemble du tableau et effectue une mise en forme cela me donne ce résultat :

image 2

Dans mon fichier orignal, j’ai réussi à créer une macro qui permet de reproduire la mise en forme de la ligne 1 sur la ligne 2. Cependant je ne sais pas comment aller jusqu’à la fin du tableau car ma connaissance de VBA est limité, je pense qu’il faut utiliser une boucle, cela permettrait d’aller jusqu’à la fin du tableau, j’ai cherché des solutions sur internet mais je n’en ai pas trouvé.

Auriez vous des indices ou une solution ?

Merci d'avance pour vos réponses

'   'Sélection de la ligne avec la mise en forme conditionnelle
    Range("J19").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy

    'Copie de la mise en forme conditionnelle sur la ligne suivante
    Range("J20").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
12exemple.xlsm (17.85 Ko)

Bonjour,

Un essai ...

Sub Macro9()
Dim DCol As Integer, DLig As Integer

    DCol = Range("P5").End(xlToRight).Column        ' trouver dernière colonne
    DLig = Cells(Rows.Count, "O").End(xlUp).Row     ' trouver dernière ligne

    Range("P6").Copy

    'Copie de la mise en forme conditionnelle sur la ligne suivante
    Range(Cells(6, Range("P5").Column), Cells(DLig, DCol)).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False

    Application.CutCopyMode = False
    Range("P6").Select
End Sub

ric

Bonjour,

Merci pour votre réponse et d'avoir pris le temps de chercher une solution

J'ai testé votre code sur la base de donnée exemple et cela fonctionne mais sur la véritable base de donnée avec plusieurs références cela me donne le résultat suivant :

cc 2

Le résultat souhaité est le suivant sur l'ensemble de la base de donnée :

cc

Bonjour,

Peut-être que le fichier exemple n'est pas suffisamment représentatif de ton fichier de travail ...

ric

Voici en copie...un exemple plus représentatif de ce que je souhaite faire...

Merci encore RIC de prendre le temps de regarder

12exemple.zip (763.27 Ko)

Bonjour,

Au départ, j'ai cru que tu demandais seulement pour copier la mise en forme conditionnelle de H6 sur l'ensemble de la plage ... cela fonctionne bien.

En examinant un peu partout dans cette plage, la mise en forme s'applique correctement selon les valeurs par rapport à la mise en forme conditionnelle de départ en H6.

Si c'est la mise ne forme conditionnelle de départ qui pose problème, c'est autre chose.

ric

12exemplev2.zip (763.72 Ko)

Ric,

Merci encore

En faite je souhaite copié collé la mise en forme de la ligne entière sur la suivante et pas seulement copié la cellule.

Bien cordialement,

Lothin NJOH TCHAPPI

Bonjour,

J'ai 3 écrans sur mon ordi ... j'ai ouvert 3 instances de Excel ...

J'ai ouvert 3 copies de ton fichier (V1, V2, V3) chacun sur un écran.

Dans V1, la macro copie H6 sur la plage H6:DJ2015.

Dans V2, la macro copie la ligne H6:DJ6 d'un coup sur la plage H7:DJ2015.

Dans V3, la macro copie la ligne H6:DJ6 ligne par ligne jusqu'à la ligne 2015 (ça prend 1 minute).

Eh bien, sur les 3 fichiers affichés simultanément, chacun sur un écran ... le résultat est parfaitement identique.

Conclusion : la mise en forme conditionnelle n'est peut-être pas exactement celle qu'il faut pour le résultat que tu escomptes.

Désolé ...

Je t'envoie les 3 macros si tu veux tester.

ric

8les-3-macros.txt (3.02 Ko)

Bonjour,

Le soucis doit venir que les références sont mélangées et donc les quantités 0 de la ref 1 et les quantité 1800+ des ref 63 ne ont un ecart tellement important que les variations de couleurs ne sont pas si flagrante.

Si ce que je pense est correct, tu veux une mise en forme par reference ?
Supprime toutes tes mise en forme et lance ça. (je recommence la mise en forme en ligne 6 qui s'applique aux colonnes H : DJ jusqu'a ta derniere ref)

Si la mise en forme ne te convient pas change par la tienne entre les '**********

Sub Macro1()
Dim Lig As Integer
Dim DerLig As Integer
DerLig = Cells(Rows.Count, "G").End(xlUp).Row
For Lig = 6 To DerLig
    Range("H" & Lig & ":DJ" & Lig).Select

'*****************************************************************************************************************
    Selection.FormatConditions.AddColorScale ColorScaleType:=3
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    Selection.FormatConditions(1).ColorScaleCriteria(1).Type = _
        xlConditionValueLowestValue
    With Selection.FormatConditions(1).ColorScaleCriteria(1).FormatColor
        .Color = 7039480
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).ColorScaleCriteria(2).Type = _
        xlConditionValuePercentile
    Selection.FormatConditions(1).ColorScaleCriteria(2).Value = 50
    With Selection.FormatConditions(1).ColorScaleCriteria(2).FormatColor
        .Color = 8711167
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).ColorScaleCriteria(3).Type = _
        xlConditionValueHighestValue
    With Selection.FormatConditions(1).ColorScaleCriteria(3).FormatColor
        .Color = 8109667
        .TintAndShade = 0
    End With
'*******************************************************************************************************************

    Range("G" & Lig).Select
Next Lig
End Sub

A+

Rechercher des sujets similaires à "copie colle ensemble tableau mise forme conditionnelle"