Recopier les formats uniquement d'une MFC (Même apparence sans utilisation de MFC)

Kiriko

XLDnaute Occasionnel
Bonjour à tous !

Je cherche, par une méthode quelconque, à recopier une feuille pleine de MFC sur une seconde feuille, tout en gardant les mêmes formats, mais sans MFC. (Les formats "issus" d'une MFC doivent devenir des formats "classiques", même apparence de cette seconde feuille mais sans aucune MFC...)

J'ai tenté toute les options de collage spécial sans succès...

Le fichier joint comporte 3 onglets :
- L'onglet "original" comportant plusieurs MFC
- Un second onglet qui a exactement la même apparence, mais ou le résultat n'est pas obtenu par MFC. Pour l'exemple, j'ai donc ici appliqué les formats "manuellement", le but étant donc d'obtenir cet onglet en l'état mais automatiquement
- A toute fin utile, un 3ème onglet correspondant à l'original, vidé de MFC et sans "ajout manuel" de format.

Je précise que ce fichier peut comporter un nombre conséquent de lignes (quelquefois 10 000!).
L'idée étant de trouver une méthode qui puisse s'appliquer à tout onglet comportant des MFC, quelle qu'elles soient, méthode pas forcément spécifiquement adaptée à cet exemple exclusif...

Merci par avance !!!
 

Pièces jointes

  • MFC.xlsm
    95.1 KB · Affichages: 42
  • MFC.xlsm
    95.1 KB · Affichages: 49
  • MFC.xlsm
    95.1 KB · Affichages: 52

Misange

XLDnaute Barbatruc
Re : Recopier les formats uniquement d'une MFC (Même apparence sans utilisation de MF

Bonjour

tu oublies l'idée de récupérer le format d'une mefc. LEs couleurs ont la même apparence mais par une mefc elles n'ont pas d'index récupérable.
Tu peux par macro aller chercher la condition qui a prévalu à l'application de la mefc et coder l'application d'une couleur qui soit en apparence la même. Mais aucun copier/coller ne fera ce que tu souhaites
 

Kiriko

XLDnaute Occasionnel
Re : Recopier les formats uniquement d'une MFC (Même apparence sans utilisation de MF

Bonjour Misange, et merci de ta réponse.
C'est ce que je craignais...
Par contre, toute méthode m'intéresse, celle de la macro qui va chercher les conditions des MFC et code ensuite les couleurs me conviendrait pour le coup...
Bien sûr, je n'ai aucune idée de la manière de procéder...
 

Kiriko

XLDnaute Occasionnel
Re : Recopier les formats uniquement d'une MFC (Même apparence sans utilisation de MF

Je suis tombé sur la fonction suivante en fouillant internet, par contre, je ne sais pas si cela peut contribuer à résoudre mon soucis :
Code:
Public Function CouleurMFC(RG As Range, Optional Mode As Byte = 0) As Variant
Dim e As Long, i As Byte, LoTest As Boolean
Dim LoMFC As FormatCondition
    Application.Volatile
    'boucle sur le nombre de condition(s)
    'Si pas de MFC .FormatConditions.Count renvoi 0
    For i = 1 To RG.FormatConditions.Count
        Set LoMFC = RG.FormatConditions(i)
        If LoMFC.Type = xlCellValue Then
        'tester le type de la formule entrée
            Select Case LoMFC.Operator
            Case xlEqual
                LoTest = RG = Evaluate(LoMFC.Formula1)
            Case xlNotEqual
                LoTest = RG <> Evaluate(LoMFC.Formula1)
            Case xlGreater
                LoTest = RG > Evaluate(LoMFC.Formula1)
            Case xlGreaterEqual
                LoTest = RG >= Evaluate(LoMFC.Formula1)
            Case xlLess
                LoTest = RG < Evaluate(LoMFC.Formula1)
            Case xlLessEqual
                LoTest = RG <= Evaluate(LoMFC.Formula1)
            Case xlNotBetween
                LoTest = (RG < Evaluate(LoMFC.Formula1) Or RG > Evaluate(LoMFC.Formula2))
            Case xlBetween
                LoTest = (RG >= Evaluate(LoMFC.Formula1)) And (RG <= Evaluate(LoMFC.Formula2))
            End Select
            If LoTest Then
                'Peu ajouter d'autre format si nécessaire,
                'comme la bordure, la police etc..
                Select Case Mode
                Case 0
                    CouleurMFC = LoMFC.Interior.ColorIndex
                Case 1
                    CouleurMFC = LoMFC.Interior.Color
                End Select
                Exit Function
            End If
        End If
    Next i
    CouleurMFC = 0
End Function

Merci !!
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG