Problème avec FormulaLocal sur Excel 2011 Mac

vehbi

XLDnaute Nouveau
Bonjour tout le monde,

Je suis un nouveau dans votre forum, qui est très intéressant et très utile et j'aurais besoin de vos lumières pour un problème assez précis.

J'ai un niveau d'Excel assez moyen, donc ne soyez pas vexé de voir mon code pas comme vous aimeriez le voir ;-)

Je suis sur Excel Mac 2011 avec les dernières Updates...

J'ai le code suivant qui ne marche pas, pourtant la formule marche quand je l'insère à la main, et elle fait ce que j'ai besoin, mais pas quand je la passe par du VBA:

La formule est la suivante:

=SIERREUR(SI(ET(DATE(ANNEE(AUJOURDHUI());MOIS(A2);JOUR(A2))>=AUJOURDHUI();DATE(ANNEE(AUJOURDHUI());MOIS(A2);JOUR(A2))<=AUJOURDHUI()+90);1;0);"")

Elle me sert dans une feuille dans laquelle je trie des coupons d'obligations financières, afin d'avoir un échéancier et de voir quand je vais recevoir mes prochains coupons dans les 90 prochains jours à partir d'aujourd'hui en se basant sur les Maturity des obligations en colonne A...

Donc une fois cette formule insérée dans le champs voulu, je lance une autre macro qui me laisse visible que les ligne où j'ai 1 à ma colonne M et me masque les ligne où j'ai 0 à la colonne M.

La partie qui ne marche pas est la suivante en VBA:

'Insertion de la formule pour trier les coupons avant 3 mois
Range("M2").Select
ActiveCell.FormulaLocal = "=SIERREUR(SI(ET(DATE(ANNEE(AUJOURDHUI());MOIS(A2);JOUR(A2))>=AUJOURDHUI();DATE(ANNEE(AUJOURDHUI());MOIS(A2);JOUR(A2))<=AUJOURDHUI()+90);1;0);"")"
Range("M2").Select
Selection.AutoFill Destination:=Range("M2:M1500"), Type:=xlFillDefault
Range("M2").Select

Le but c'est que ma formule reste en français et que ce soit vraiment cette formule qui soit insérée, car elle fait exactement ce que je veux faire.

Merci pour votre précieuse aide.

Meilleures salutations.


Vehbi
 

Efgé

XLDnaute Barbatruc
Re : Problème avec FormulaLocal sur Excel 2011 Mac

Bonjour vehbi,
Je ne suis pas sur mac, mais dans les FormulaLocal il faut doubler les " qui se trouvent dans les formules :
ActiveCell.FormulaLocal = "=SIERREUR(SI(ET(DATE(ANNEE(AUJOURDHUI());MOIS(A2) ;JOUR(A2))>=AUJOURDHUI();DATE(ANNEE(AUJOURDHUI()); MOIS(A2);JOUR(A2))<=AUJOURDHUI()+90);1;0);"""")"

EDIT
Tu peux d'ailleurs aller plus vite :
VB:
Sub test()
Range("M2:M1500").FormulaLocal = "=SIERREUR(SI(ET(DATE(ANNEE(AUJOURDHUI());MOIS(A2) ;JOUR(A2))>=AUJOURDHUI();DATE(ANNEE(AUJOURDHUI()); MOIS(A2);JOUR(A2))<=AUJOURDHUI()+90);1;0);"""")"
End Sub

Cordialement
 
Dernière édition:

Discussions similaires

Réponses
4
Affichages
242

Statistiques des forums

Discussions
312 304
Messages
2 087 069
Membres
103 453
dernier inscrit
Choupi