Excel 2003 macro enregistrée ne fonctionne pa

Fermé
zetoon92 Messages postés 2 Date d'inscription jeudi 20 mars 2008 Statut Membre Dernière intervention 12 janvier 2011 - 12 janv. 2011 à 10:54
 melanie1324 - 18 janv. 2011 à 12:22
Bonjour,

J'ai un problème que je n'arrive pas à résoudre en VBA.
Je souhaite qu'une plage de cellules verticales contigues se colorie en fonction d'une cellule où est stockée la somme de la plage.
J'ai utilisé le format conditionnel et je souhaite recopier uniquement les formats conditionnels dans une plage de cellules.

J'ai enregistré une macro, ça se passe bien à l'enregistrement, mais ça ne fonctionne pas quand je relance la macro (le paste.special ne fonctionne pas)

Ci joint la macro enregistrée qui ne fonctionne pas

Range("F9:AC23").Select
'suppression du format conditionnel
Selection.FormatConditions.Delete
Range("F9:AC23").Select
' copie des cellules (pour mémoriser les valeurs avant copy du format)
Selection.Copy
Range("AF9").Select
ActiveSheet.Paste
Range("F9").Select
Application.CutCopyMode = False
Selection.FormatConditions.Delete
'ajout d'une formule de format conditionnel
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SI($F26>1;VRAI;FAUX)"
'coloration en rouge si > 1
Selection.FormatConditions(1).Font.ColorIndex = xlAutomatic
Selection.FormatConditions(1).Interior.ColorIndex = 3
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SI($F26<1;VRAI;FAUX)"
'coloration en vert si < 1
Selection.FormatConditions(2).Interior.ColorIndex = 35
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=SI($F26=1;VRAI;FAUX)"
'coloration en jaune si = 1
Selection.FormatConditions(3).Interior.ColorIndex = 19
Selection.Copy
Range("F9:AC23").Select
' propagation des formules conditionnelles
Selection.PasteSpecial Paste:=xlAllExceptBorders, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("AF9:BC23").Select
Application.CutCopyMode = False
Selection.Copy
' copie des valeurs mémorisées
ActiveWindow.SmallScroll ToRight:=-4
Range("F9:AC23").Select
' recopie uniquement des valeurs
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("AF9:EM23").Select
Application.CutCopyMode = False
' suppression de la plage de cellules memorisées
Selection.EntireColumn.Delete
ActiveWindow.LargeScroll ToRight:=-1

Pouvez vous m'aider?

Sinon, j'ai aussi un autre problème: est il possible de propager en VBA uniquement les formats conditionnels, sans modifier les bordures ni les valeurs?

merci

A voir également:

1 réponse

Bonjour,
Voici le code uniquement pour le format conditionnel

Range("F9:AC23").Select
Selection.FormatConditions.Delete
'ajout d'une formule de format conditionnel
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$F$26>1"
'coloration en rouge si > 1
Selection.FormatConditions(1).Font.ColorIndex = xlAutomatic
Selection.FormatConditions(1).Interior.ColorIndex = 3
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$F$26<1"
'coloration en vert si < 1
Selection.FormatConditions(2).Interior.ColorIndex = 35
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=$F$26=1"
'coloration en jaune si = 1
Selection.FormatConditions(3).Interior.ColorIndex = 19
0