Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Casse tête : formule en VBA

8 réponses
Avatar
Christophe CAUCHOIS
Bonjour à tous,

Ca fait quelques heures que je butte sur un problème que je me refuse à
contourner car j'ai la tête dure et je n'abandonnerai pas tant que je
n'aurai pas compris ce qui ne va pas !
Je veux, sous VB, entrer une simple formule de totalisation dans une
cellule. MAIS, cette formule comporte une variable - appelons la MaVar - qui
est l'offset de la colonne de la première cellule de la zone à totaliser.

Admettons que MaVar soit égal à 5
La formule que je souhaite entrer dans la cellule : "=SUM(RC[-5]:RC[-1])"
Quand j'écris dans mon code VB :
With Cells(1,6)
.FormulaR1C1 = "=SUM(RC[-5]:RC[-1])"
.Font.Bold = True
End With
...y'a pas de problème.

Quand j'écris :
With Cells(1,6)
.FormulaR1C1 = "=SUM(RC[-" + Str(MaVar) + "]:RC[-1])"
.Font.Bold = True
End With
...ça plante avec l'erreur énervante 1004 (je la déteste cette erreur...j'ai
surnommé mon directeur "Milkat")
Alors, malin, j'écris :
Fml = "=SUM(RC[-" + Str(MaVar) + "]:RC[-1])" (...je vérifie que "Fml" est
bien égal à "=SUM(RC[-5]:RC[-1])")
With Cells(1,6)
.FormulaR1C1 = Fml
.Font.Bold = True
End With
...et, évidemment, ça ne marche toujours pas !!!!

J'ai fait le tour du NG et je n'ai pas trouvé de réponse parmi les 9723
messages de la liste.
Est-ce que quelqu'un aurait une idée de l'astuce à côté de laquelle je suis
passé ?

Merci d'avance,

Christophe

8 réponses

Avatar
JpPradier
Bonjour Christophe

Remplace Str(MaVar) par Cstr(MaVar)

j-p
Avatar
AV
J'ai fait le tour du NG et je n'ai pas trouvé de réponse parmi les 9723
messages de la liste.


Etonnant ....! ;-)

FormulaR1C1 = "=SUM(RC[-" & maVar & "]:RC[-1])"

AV

Avatar
AV
FormulaR1C1 = "=SUM(RC[-" & maVar & "]:RC[-1])"


Bah, non ;o)
Ca aussi je l'ai essayé Alain !
Le "CStr" de j-p en lieu et place du "Str" est la bonne réponse.


Ben on va dire que suis victime d'un micro-climat alors car ça fonctionne tout à
fait chez moi !
Hypothèse : tu faias une déclaration prélable de la variable "laVar" avec un
type erroné !

AV


Avatar
Christophe CAUCHOIS
Arghh !!! Merci j-p...j'ai honte !


"JpPradier" a écrit dans le message
de news:
Bonjour Christophe

Remplace Str(MaVar) par Cstr(MaVar)

j-p




Avatar
Christophe CAUCHOIS
Bah, non ;o)
Ca aussi je l'ai essayé Alain !
Le "CStr" de j-p en lieu et place du "Str" est la bonne réponse.
Merci tout de même,

Christophe

"AV" a écrit dans le message de
news:
J'ai fait le tour du NG et je n'ai pas trouvé de réponse parmi les 9723
messages de la liste.


Etonnant ....! ;-)

FormulaR1C1 = "=SUM(RC[-" & maVar & "]:RC[-1])"

AV





Avatar
Christophe CAUCHOIS
Non, non.
Je m'applique à faire des déclarations pour chaque variable utilisée et,
bien évidemment, dans le bon type.
Mais ça m'intrigue quand tu me dis que ça fonctionne chez toi.
Je vais de ce pas réessayer, par acquis de conscience, ta solution.

"AV" a écrit dans le message de
news:
FormulaR1C1 = "=SUM(RC[-" & maVar & "]:RC[-1])"


Bah, non ;o)
Ca aussi je l'ai essayé Alain !
Le "CStr" de j-p en lieu et place du "Str" est la bonne réponse.


Ben on va dire que suis victime d'un micro-climat alors car ça fonctionne
tout à

fait chez moi !
Hypothèse : tu faias une déclaration prélable de la variable "laVar" avec
un

type erroné !

AV






Avatar
Christophe CAUCHOIS
Bon, mille excuses, je retire ce que j'ai dit.
J'ai bien essayé le "&" à la place du "+" mais j'ai converti MaVar
auparavant avec "Str()"...ce qui ne fonctionne dans aucun des cas.
La concaténation avec "&" sans conversion préalable fonctionne sans
problème.

Ben j'ai appris deux trucs pour le prix d'une question ;o)

Encore merci,

Christophe

"AV" a écrit dans le message de
news:
FormulaR1C1 = "=SUM(RC[-" & maVar & "]:RC[-1])"


Bah, non ;o)
Ca aussi je l'ai essayé Alain !
Le "CStr" de j-p en lieu et place du "Str" est la bonne réponse.


Ben on va dire que suis victime d'un micro-climat alors car ça fonctionne
tout à

fait chez moi !
Hypothèse : tu faias une déclaration prélable de la variable "laVar" avec
un

type erroné !

AV






Avatar
AV
Ben j'ai appris deux trucs pour le prix d'une question ;o)


Bon, ça me rasssure ;-)

PS : Pour concaténer, rien ne vaut l'opérateur de concaténation...

AV