Modification formule fonctionne pas

Bonjour, je veux changer une formule dans une cellule d'une feuille excel mais ça ne fonctionne pas. Je change ma formule en utilisant une variable. mais j'ai des accolades qui s'inscrivent dans la formule alors que dans ma fonction, la formule est bien écris.

voici ma fonction:

Function Formule()

Dim Form As String

Range("f" & Ligne - 1).Select

Form = ActiveCell.Formula

Form = "ab" & N + 3 & ":ab" & N2 + 3

ActiveCell.FormulaR1C1 = "=SOMME(Équipement!" & form & ")"

End Function

N est une somme des items qu'ils parcourent.

Ligne est le row sur lequelle il est positionné.

Vous pouvez remplacer Ligne par 1 et N par 1 et N2 par 10.

Lorsque je regarde dans ma fonction, la valeur qu'elle me donne, j'obtient comme résultat ceci: ActiveCell.FormulaR1C1= "=SOMME(Équipement!ab4:ab12)"

mais dans ma feuille excel, le résultat est : =SOMME(Équipement!'ab4':'ab12') naturellement, ça ne fonctionne pas.

Je ne sais pas ce qui fait qu'il importe des accolades dans la formule.

merci de votre aide

Bonsoir,

essayez avec :

ActiveCell.FormulaR1C1 = "=SUM(Équipement!R[" & (N + 3) - ActiveCell.Row & "]C[" & 28 - ActiveCell.Column & "]:R[" & (N2 + 3) - ActiveCell.Row & "]C[" & 28 - ActiveCell.Column & "])"

En effet FormulaR1C1 veut dire un décalage de rang et de colonne par rapport à la cellule active.

Donc AB = 28

pour tomber sur AB lorsque la cellule active est en X colonne il faut faire un décalage de 28-X colonnes

pour tomber en ligne N+3 lorsque la cellule active est en Y ligne il faut un décalage de (N+3) - Y lignes

Enfin c'est ce que je pense, je n'ai pas essayer...

Par contre j'ai essayer activecell.value = "=SOMME(Équipement!" & form & ")"

Cela affiche la bonne syntaxe mais n'est pas reconnu comme formule sauf si on entre dans la cellule est qu'on revalide par entrée...

@ bientôt

LouReeD

Bonjour,

Je ne comprends pas mais essaie :

ActiveCell.Formula = "=SUM(Equipement!" & Form & ")"

Cela fonctionne avec une Sub.

Cdlt.

Bonjour, merci pour vos réponse. J'ai pris celle de LooReeD qui fonctionne très bien et merci pour les explications.

Passé une bonne journée!

Re bonjour,

Moi c'est Loureed avec OU et non pas OO !

Quant à la solution, c'est laquelle ?

.value = formule ou celle "compliquée" avec les décalages ? juste pour savoir, merci

@ bientôt

LouReeD

Bonjour, désolé de vous avoir débaptisé. J'ai pris cette solution-ci:

ActiveCell.FormulaR1C1 = "=SUM(Équipement!R[" & (N + 3) - ActiveCell.Row & "]C[" & 28 - ActiveCell.Column & "]:R[" & (N2 + 3) - ActiveCell.Row & "]C[" & 28 - ActiveCell.Column & "])"

merci encore!

Ok @ bientôt

LouReeD

Rechercher des sujets similaires à "modification formule fonctionne pas"