VBA - Bug lors de la duplication d'une feuille avec formule matricielle

Iznogood1

XLDnaute Impliqué
Bonjour,

Exemple simpliste à fin d'illustration :

Soit la formule matricielle
Code:
={SOMME(INDEX({1\2;4\5};0;{1\2}))}
sur 2 cellules adjacentes (validée par shift + entrée)
qui renvoie la somme de chaque colonne, soit la matrice {5\7}
(1+4 = 5 et 2+5 =7).


Quand je duplique la feuille manuellement, tout est OK.
Si je la duplique par VBA
Code:
ActiveSheet.Copy After:=ActiveSheet
la formule n'est pas "calculée/mise à jour" et renvoie {3\3} !


Voir la démo ci-jointe Ce lien n'existe plus

Serait-ce un bug d'XL ?
(version testée : XL 2007)

Merci
 

Iznogood1

XLDnaute Impliqué
Re : VBA - Bug lors de la duplication d'une feuille avec formule matricielle

La solution

Code:
ActiveSheet.Copy After:=ActiveSheet
DoEvents
Application.SendKeys "^%+{F9}", True

pour forcer un recalcule complet du fichier, y-compris les fonctions non volatiles.

Merci Isabelle.
 

Iznogood1

XLDnaute Impliqué
Re : VBA - Bug lors de la duplication d'une feuille avec formule matricielle

Merci Pierrot,
malheureusement
Code:
Application.Calculate
ne fonctionne pas.

Plus étrange encore
Code:
Application.CalculateFull
modifie la matrice {5\7} de la feuille originale et la transforme en {3\3} !

Alors que CaulculateFull est le code génèré par l'enregistreur de macro quand on fait CTRL+ALT+F9.
Combinaison qui, elle, met bien à jour les matrices que ce soit par saisie au clavier ou par SendKeys.

Vraiment bizarre ce comportement.
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 591
Membres
103 248
dernier inscrit
Happycat