Formula R1C1

Résolu
Enito Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
Enito Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Dans le cadre de la macro que je suis entrain d'écrire, j'ai un problème avec formulaR1C1.

Voici le code que j'ai entré,

ActiveCell.FormulaR1C1 = "=sum(R[-i]C:R[-1]C)"

À noter que le i est une variable qui provient d'une inputbox. Et je pense que c'est là que le problème se pose. Je souhaite utiliser la variable i car il n'y pas toujours le même nombre de lignes dans mon tableau. Est-ce que quelqu'un pourrait me soumettre une idée pour régler ça. À moins que le problème provienne de la déclaration de la variable.

Merci d'avance et Bonne journée,

Enito !

3 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
ActiveCell.FormulaR1C1 = "=sum(R[-" & i & "]C:R[-1]C)"

Patrice
1
Enito Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Merci patrick pour cette suggestion mais lorsque je tape ce code, j'obtiens une erreur de compilation disant attendu : fin d'instruction. Ça surligne en bleu a partir de signe de concatenation jusqu'au dernier guillemet. As-tu une idée de la raison pour laquelle j'obtiens ça.

Enito !
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Il n'y a pas de raison, tu as du te tromper !

Copies la ligne ci-dessus et colles la dans ton code.
0
Enito Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Salut Patrice,

J'ai pris pour acquis que l'éditeur VBA allait automatiquement ajouter des espaces entre les guillemets et les signes de concaténations. Visiblement ce n'était pas le cas. Mais tout fonctionne bien maintenant en ayant ajouter les espaces.

Merci encore pour l'aide,

Enito !
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonjour,

à noter que tu as .formulalocal souvent plus pratique :

ActiveCell.FormulaLocal = "=SOMME(A1:A12)"
ou
ActiveCell.FormulaLocal = "=SOMME(A1:A" & i & ")"

eric
1
Enito Messages postés 21 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Éric pour cette précision. Cependant, je ne pourrais pas utiliser cette formulation car les données ne sont jamais a la même place.

Bonne journee,

Enito
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Pour les parametres tu dois fabriquer ta chaine (comme pour .formulaR1C1), ce qui est interessant c'est que tu écris la fonction en français et les références en style A1...
eric
0
Paf
 
bonjour

un sujet qui pourrait apporter des idées:

http://www.commentcamarche.net/forum/affich-23745169-selection-d-une-cellule-selon-indice-sous-vba

bonne suite
1