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)
Jusqu'ici pas de problème.
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
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
Mais si j'essaie de remplacer R3C5 par MonTableau(i) cela ne marche plus.
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
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...
Partager