Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…