Macro avec copie de la mise en forme conditionnelle

sr94

XLDnaute Occasionnel
Bonjour

J'ai créé (avec votre grande aide) la macro suivante pour générer plusieurs fichiers à partir d'un fichier source :

Code:
Sub CreeClasseurs()
  Application.DisplayAlerts = False
  [A1:D10000].AdvancedFilter Action:=xlFilterCopy, CopyToRange:=[g1], Unique:=True
  For Each c In Range("G2", Range("G65000").End(xlUp))
    Range("G2") = c
    Sheets.Add
    Sheets("BD2").[A1:D10000].AdvancedFilter Action:=xlFilterCopy, _
       CriteriaRange:=Sheets("BD2").[G1:G2], CopyToRange:=[A1], Unique:=False
    ActiveSheet.Copy
    nf=Replace(c,"/","_")         ' remplace / par _
    ActiveSheet.Name = nf      '
    ActiveWorkbook.SaveAs Filename:=nf  '
    ActiveWorkbook.Close
    ActiveSheet.Delete
    Sheets("BD2").Select
  Next c
End Sub

Actuellement seule la mise en forme est récupérée dans les fichiers générés et j'ai besoin de récupérer aussi la mise en forme conditionnelle du fichier source. Est ce possible en modifiant ce code ?

Sinon peut-on la rajouter dans la macro ? Il faudrait que les cellules soient rouges avec police blanche, les conditions correspondent à

Code:
=SI($O5<>"";$X5>=$O5;$X5>=$M5)

Merci beaucoup !
 

sr94

XLDnaute Occasionnel
Re : Macro avec copie de la mise en forme conditionnelle

J'ai réussi à créer la mise en forme conditionnelle avec le code trouvé ci-dessous, mais j'ai un soucis, c'est que les conditions sont telles quelles ="SI($O1<>"""";$X1>=$O1;$X1>=$M1" donc ça ne marche pas à cause des "", que doit je modifier ? Merci beaucoup

Code:
Range("$X:$X").Select

        Selection.FormatConditions.Delete
        
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="SI($O1<>"""";$X1>=$O1;$X1>=$M1"
Selection.FormatConditions(1).Interior.ColorIndex = 3
Selection.FormatConditions(1).Font.ColorIndex = 1
Range("F1006").End(xlUp).Offset(1, 0).Select
 

sr94

XLDnaute Occasionnel
Re : Macro avec copie de la mise en forme conditionnelle

Petite précision : les données sont des dates. Je joins le fichier

La mise en forme conditionnelle créée est

Code:
="SI($O1<>"""";$X1>=$O1;$X1>=$M1"

Pour que ça marche il faudrait qu'elle soit sans les guillemets. Evidemment si je les enlève du code, j'ai un message d'erreur.

Code:
=SI($O1<>"""";$X1>=$O1;$X1>=$M1
 

Pièces jointes

  • Classeur_macro.xlsm
    16.5 KB · Affichages: 23
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Macro avec copie de la mise en forme conditionnelle

Re,

entre le code proposé et l'enregistreur de macro, les différences ne m'avaient pas sauté aux yeux:

Formula1:="=SI($O2<>"""";$X2>=$O2;$X2>=$M2)"

Bonne suite
 

Discussions similaires

Statistiques des forums

Discussions
311 733
Messages
2 082 015
Membres
101 868
dernier inscrit
pierreselo33