Bonjour,

je suis en train de me créer quelques petites macro pour un projet personnel et j'ai un petit soucis avec la gestion des formules à copier dans les cellules.

Pour faire simple je pars d'une liste de "Nb" noms stockés dans un tableau "MonTableau(Nb)".

Au début, j'affichais dans Nb cellules la concaténée d'un texte fixe "MonTexte"
et le nom stocké à l'indice Nb de mon tableau MonTableau(i)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Dim i as Byte
Dim Nb as Byte
Nb = 4 (par exemple)
Dim MonTableau(Nb) as String
 
For i=1 to Nb
 
     Cells(3,i).Formula = "MonTexte" & MonTableau(i)
 
Next
Jusqu'ici pas de problème.

Maintenant je souhait afficher à la suite le résultat d'une somme calculée en dynamique. Je ne vais donc plus envoyer une chaîne de caractère "simple" mais une formule.

C'est là que je bloque. Je n'arrive plus à reccuperer le contenu de mon tableau.

En utilisant un seul nom situé dans la cellule R3C5 (E3) cela fonctionne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
For i=1 to Nb
 
     Cells(4,i).FormulaR1C1 = "=""MonTexte"" & R3C5 & Sum(R21C" & Debut & ":R21C" & Fin & ")"
 
Next
Mais si j'essaie de remplacer R3C5 par MonTableau(i) cela ne marche plus.
De même, j'ai voulu modifier la cellule R3C5 par R3Ci selon le modèle utilisé à l'intérieur de la somme mais là encore je n'obtient pas ce que je souhaite.


Pourquoi excel interprète bien "R3C5" et le "SUM" et pas les fonctions que j'ai écrites moi même?
(J'avais essayer de remplacer R3C5 par LC(Cells(3,i)) qui renvoie la cellule sous la forme d'une string "R3Ci")

Est-ce que quelqu'un peut m'éclairer sur la gestion d'excel par rapport au formules qui mixent variables et chaines de caractère car la je suis un peu perdu...