0 votes

Gardez la mise en forme sur une cellule Excel

Essentiellement, je voudrais conserver le format existant d'une cellule Excel. Si j'utilise ActiveCell.Value2 = "nouvelle valeur";

La cellule active affiche "nouvelle valeur" mais perd le format défini par l'utilisateur (par exemple texte en rouge, arrière plan bleu), toutes les valeurs de mise en forme retournent aux valeurs de format par défaut d'Excel.

Remarque : Si vous remplacez une valeur de cellule en utilisant Excel, Excel conserve le format de l'utilisateur. Lors de l'enregistrement de cette action en tant que macro, Excel utilise la propriété FormulaR1C1 mais selon MSDN c'est une propriété utilisée pour les macros.

1voto

Doc Brown Points 13438

Si j'utilise ActiveCell.Value2 = "nouvelle valeur" l'ActiveCell affiche "nouvelle valeur" mais perd le format défini par l'utilisateur

Non, ce n'est pas le cas, je viens de tester (avec Excel 2003). J'ai ouvert un nouveau document vide, ai formaté une colonne avec quelques couleurs et un format de nombre défini par l'utilisateur et j'ai saisi

ActiveCell.Value2="1"

dans la fenêtre immédiate de l'éditeur VBA. Le format existant est conservé. Donc si vous rencontrez un autre scénario où le format est perdu, veuillez le décrire en détail.

ÉDIT : Si ce comportement est vraiment différent en VSTO, comme solution de contournement, vous pouvez essayer de sauvegarder les informations de format pertinentes de l'ActiveCell avant de changer la valeur, par exemple

fci = ActiveCell.Range.Font.ColorIndex
ici = ActiveCell.Range.Interior.ColorIndex
pat = ActiveCell.Range.Interior.Pattern
nf = ActiveCell.Range.NumberFormat

puis changer la valeur

ActiveCell.Value2 = "nouvelle valeur"

et ensuite réaffecter les informations de format à nouveau

ActiveCell.Range.Font.ColorIndex = fci
ActiveCell.Range.Interior.ColorIndex = ici
ActiveCell.Range.Interior.Pattern = pat
ActiveCell.Range.NumberFormat = nf

(mais attention, ceci est un 'code aérien').

0voto

ta.speot.is Points 15157

Vous voudrez peut-être copier la cellule et "Coller" le formatage - http://www.ozgrid.com/forum/showthread.php?t=56324

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X