Résolu Copier la mise en forme sans la mise en forme conditionnelle

Ozzoun

XLDnaute Nouveau
Bonjour,

J'ai crée un petit macro qui permet d'exporter le tableau actuel qui sert de modèle, dans une feuille à part. Sur ce premier tableau j'ai de multiple mise en forme conditionnelle..
Actuellement, mes feuilles exportées, reprennent la mise en forme conditionnelle en fonction de mon modèle, donc pas vraiment cohérent..
Je souhaiterais savoir, si il est possible de copier le tableau, en gardant les couleurs de la mise en forme conditionnelle, les valeurs, ... l'ensemble du tableau mais sans que les cellules restent liées à la feuille du modèle.

Merci d'avance.
 

_Thierry

XLDnaute Barbatruc
Bonjour @Ozzoun , le Forum

Il y a bien longtemps, ici même dans ce Forum, je me souviens d'un fil de discussion où tous les cracs de l'époque ont mis la main à la patte, mais si je me souviens bien il n'y a pas de simple solution "miracle" pour récupérer les couleurs mises en place par Format Conditionnel sans "embarquer" le dit Format Conditionnel...

La solution paliative était de ne pas mettre les couleurs par Format Conditionnel mais par un Algo VBA, là évidemment pas de souci pour copier dans d'autres tableaux exportés...

Bon courage
@+Thierry
 

Dudu2

XLDnaute Accro
Bonjour,
l'ensemble du tableau mais sans que les cellules restent liées à la feuille du modèle.
Je ne suis pas sûr de comprendre cette phrase.
Dans le tableau copié, est-ce que tu souhaites récupérer seulement les formats issus des MFC du tableau dans son état à la copie en tant que formats de cellules comme le laisse entendre la réponse de Thierry ?
Ou bien veux-tu tu débarrasser des MFC dans le tableau copié ?
Ou encore garder les MFC sans qu'elles ne fassent référence à la feuille d'origine ?
 

Ozzoun

XLDnaute Nouveau
Bonjour @_Thierry , @Dudu2

Alors pour détailler un petit peu plus, il s'agit d'un planning pour un suivi d'heure.

J'ai une feuille "Mois" où je viens sélectionner le mois en cours et l'année, puis je saisis les heures correspondant à la journée et au numéro d'affaire traité.

J'ai des MFC pour indiquer les jours chômés et lorsque la quantité horaire est atteinte.

Arrivé en fin de mois, j'exporte le mois dans une feuille à part pour garder un suivi avec pour nom "Mois + Année". Cependant, les MFC de la feuille exportée sont toujours liés à la feuille "Mois".


En passant ma feuille "Mois" à Juillet, les jours chômés ne sont plus les mêmes qu'en Juin, cependant, ils sont pris en compte sur ma feuille "Juin 2020" et je perd donc en lisibilité, j'ai donc des heures saisies sur des jours chômés (Pris en référence sur Juillet).

Dans l'idéal, comme l'a indiqué _Thierry, l'idéal pour moi aurait été de garder la mise en forme de la MFC sans la parti conditionnel après exportation de la feuille..

Si cela n'est pas possible, je pense que j’enlèverai tout simplement les MFC à la copie, pour rester un minimum cohérent.

Merci de vos réponses.
 

Ozzoun

XLDnaute Nouveau
Petit plus, j'ai peut-être mal fouiller le forum avant de poster.. Je viens de tomber sur ce post avec pour solution le code suivant, si j'ai bien compris, je pourrai exécuter quelque chose de ce style sur la feuille exportée afin de définir les couleurs puis supprimer la MFC ?
J'ai peur d'avoir mal interprété ^^

VB:
Sub CopierFormatConditionnel()

    Dim plg As Range, a As Range, c As Range

    On Error Resume Next

    Set plg = ActiveSheet.UsedRange.SpecialCells(xlCellTypeAllFormatConditions)

    On Error GoTo 0

    If Not plg Is Nothing Then

        For Each a In plg.Areas

            For Each c In a.Cells

                c.Interior.Color = c.DisplayFormat.Interior.Color

                c.Font.Color = c.DisplayFormat.Font.Color

                c.Font.Bold = c.DisplayFormat.Font.Bold

            Next

        Next a

        'Suppression des MFC

        plg.FormatConditions.Delete

    End If

End Sub
 

_Thierry

XLDnaute Barbatruc
Bonjour @Ozzoun , @Dudu2, le Forum

Wow si cette macro fait ce qu'elle est supposée faire, tu as gagné le jackpot !!!
A l'époque on n'avait pas trouvé la propriété "DisplayFormat" d'un objet Range...

Merci d'avoir redistribué ce code ! Ca peut être très utile !
Bien à toi
@+Thierry
 

Ozzoun

XLDnaute Nouveau
@_Thierry

Je viens de l'essayer sur un tableau de 35x125 c'est nickel !
Le temps d’exécution est un peu long (~20s), mais vu ce qu'elle traite, on peut la pardonner :)

Je pense que mon soucis est résolu désormais ^^

Merci pour tout
 

Dudu2

XLDnaute Accro
Très intéressante propriété en effet qui mérite d'être connue !

Malgré tout, si tu n'y vois pas d'inconvénient, j'aimerais savoir en quoi
les MFC de la feuille exportée sont toujours liés à la feuille "Mois".
Les formules font référence à la feuille ? Cela m'étonne un peu.
 

Ozzoun

XLDnaute Nouveau
Bien entendu, alors pour mieux t'expliquer le soucis.
Je pense que cela est avant tout de ma faute, j'ai sans doute dans mes MFC des cellules lié à ma feuille "Mois", après avoir fait une copie de cette feuille et renommer, la MFC reste liée à la cellule de mon modèle.
Du coup en changeant le mois en cours sur ma feuille "Mois", j'ai mes MFC qui réagissent sur mes feuilles exporté.

Ayant énormément de MFC, c’était juste impensable de tout reprendre pour les fixer à la feuille en cours uniquement, et sans être sûr que cela fonctionnerai également.
 

Dudu2

XLDnaute Accro
Bonjour,
OK, merci pour ton explication. Je te l'ai demandée car je me suis fait un outil pour manipuler les MFC (export/import, copier/coller, etc...) et je me demandais si ça aurait pu t'être utile.
En l'occurrence non puisque de toutes façons c'est donc dans leur définition qu'elles posent problème.
Bonne journée.
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas