XL 2013 [RESOLU] Formule matricielle et VBA

Citronflexe

XLDnaute Junior
Bonjour à tous,

J'ai besoin, dans un tableau excel, de pouvoir étirer différentes formules sur plusieurs colonnes.
Ci-dessous une partie du code..

Code:
Range("B" & i & ":B88").Formula = Range("B" & i).Formula
.....
Range("AK" & i & ":AK88").Formula = Range("AK" & i).Formula
Range("AM" & i & ":AM88").Formula = Range("AM" & i).FormulaArray
Range("AN" & i & ":AN88").Formula = Range("AN" & i).FormulaArray

Dans les colonnes AM et AN se trouvent des formules matricielles.
L'étirement de toutes les formules normales fonctionne parfaitement, mais lorsque je veux étirer les formules matricielles, cela me renvoie #VALEUR, et les formules sont étirées sans les { ... }.

Après des recherches sur le forum, j'ai lu qu'il fallait spécifier Range(..).FormulaArray et non pas Range(..).Formula, ce que j'ai essayé, sans succès.

Pouvez-vous m'aider ? Qu'est-ce que j'ai manqué ?

Merci d'avance,

Bruno
 

Nairolf

XLDnaute Accro
Salut,

Ce n'est pas un étirement que tu fais et ça ne peut pas marcher sur une plage complète dans le cas de formules matricielles, il faut plutôt faire une boucle dans ce cas là:
VB:
For j = i To 88
    Range("AM" & j).FormulaArray = Range("AM" & i).FormulaArray
Next j
Une autre solution qui est vraiment un étirement :
VB:
Range("AM" & i).AutoFill Destination:=Range("AM" & i & ":AM88"), Type:=xlFillDefault
 

Citronflexe

XLDnaute Junior
@Nairolf ,

Bonjour,

Merci beaucoup, du coup j'ai créé deux boucles, une pour la colonne AM et l'autre pour la colonne AN, et ça fonctionne parfaitement.

EDIT: en fait ca ne fonctionnait pas, avec la boucle, ca recopiait la valeur de la cellule, sans incrémenter les variables de la formule, par contre avec la deuxième solution apportée, a priori pas de problème. Merci encore!

Bonne journée !



Y'a-t-il un moyen de mettre le topic en résolu?
 
Dernière édition:

Discussions similaires