Copier/coller avec couleur mais pas mfc

Bonsoir tout le monde

voila dans le classeur joint j'ai une feuille avec une mise en forme conditionnelle

et une macro archiver, le probleme que j'ai c'est que j'aimerais archiver les couleur mais pas les mise en forme conditionnelle et je n'y arrive pas.

Quelqu'un saurait-il comment modifier cette macro pour y arriver?

merci

https://www.excel-pratique.com/~files/doc2/mfc.xls

cordialement

Salut le forum

Une MFC gère sa propre couleur.

Mytå

Bonjour à tous

j'ai déjà fait ça pour quelqu'un, la macro est issue de celle de Laurent Longre

Cette macro ne fonctionne que sur des versions < 2007

elle se base sur une fonction qui renvoie l'index de la MFC qui est appliquée mais ne peut fonctionner en aucun cas en dehors d'une macro. On ne peut l'utiliser dans une formule car un désagrément d'excel fait évoluer les formules des MFC selon la cellule active et non pas la cellule elle même ce qui oblige à sélectionner les cellules.

ceci dit : voici la fonction

Function quelle_MFC(cellule As Range) As Byte
    Dim fc As FormatCondition, F1, F2
    Dim c As Range, num As Byte, q As Byte
    Set c = Cells.Find(Empty)
    cellule.Select
    num = 0: q = 0
    For Each fc In Selection.FormatConditions ' on scrutte toute les MFC
        num = num + 1
        c.FormulaLocal = fc.Formula1: F1 = c ' Si c'est une formule, mise en place de cette formule dans une cellule, resultat Vrai ou Faux
        If fc.Type = xlCellValue Then ' si le type de MFC est : La valeur de la cellule (ce n'est pas une formule)
            Select Case fc.Operator
                Case xlBetween, xlNotBetween:
                    c.FormulaLocal = fc.Formula2: F2 = c
                    If fc.Operator = xlBetween Then
                        If cellule >= F1 And cellule <= F2 Then q = 1
                        If fc.Operator = xlNotBetween Then If ActiveCell < F1 Or ActiveCell > F2 Then q = 1
                    End If
            Case xlEqual
                If ActiveCell = F1 Then q = 1
            Case xlGreater
                If ActiveCell > F1 Then q = 1
            Case xlGreaterEqual
                If ActiveCell >= F1 Then q = 1
            Case xlLess
                If ActiveCell < F1 Then q = 1
            Case xlLessEqual
                If ActiveCell <= F1 Then q = 1
            Case xlNotEqual
                If ActiveCell <> F1 Then q = 1
            End Select
        Else
            If F1 = True Then q = 1
        End If
        If q = 1 Then
            quelle_MFC = num
            Exit For
        End If
    Next fc
    c.Clear
End Function

Voici une macro qui te permet de transformer les MFC en couleur Figée mais uniquement sur la feuille active, puisqu'il il faute selectionner les cellules

Sub Mfc_Figée()
    Dim maplage As Range, i As Byte, c As Range
    Set maplage = ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)
    For Each c In maplage
        c.Select
        i = quelle_MFC(c)
        If i > 0 Then c.Interior.ColorIndex = c.FormatConditions(i).Interior.ColorIndex
        c.FormatConditions.Delete
    Next
End Sub

Bonsoir,

Un grand merci, ça fonctionne bien, malheureusement, ça me mets un défaut de mémoire insuffisante car c'est un gros fichier, je vais chercher une autre façon d'arriver a ce que je veux.

En tout cas, je garde ta solution au chaud car elle me servira pour d'autre fichier.

encore merci

Cordialement

Rechercher des sujets similaires à "copier coller couleur pas mfc"