.formula avec variable dans VBA

Benjy

XLDnaute Occasionnel
Bonjour,

j'ai un petit soucis avec un code vba.
Est-il possible de mettre des variables dans un .formula ?

Code:
dim x as integer
dim j as integer
dim a as integer

For x = 15 To j
Workbooks(c).Sheets("Bâtiment").Range("Q" & x).Formula = "=Sum(RC[-6]:RC[-1])"
Next x

est il possible de mettre dans la formule SUM ma variable "a" ?


Pour le moment je traite le problème comme ceci :
Code:
Range("Q" & x).Value = Application.Sum(Range("Q" & x - 1 & ":Q" & x - 1 - b1).Value)

avec b1 variable également.
La formule me renvoie bien la valeur que je souhaite mais la cellule n'est pas mis à jour si une valeur change.
Et je trouve un peu long de relancer la macro pour chaque changement.

Merci de votre aide !
 

Gorfael

XLDnaute Barbatruc
Re : .formula avec variable dans VBA

Salut Benjy et le forum
j'ai un petit soucis avec un code vba.
Non !
Je tu voulais réellement de l'aide, tu nous fournirais les informations nécessaires ! Pour dépanner un code, il faut l'intégralité du code (toute la ou les macros, de Sub à End Sub), et pas un extrait où tu supposes que se situe le problème !
Est-il possible de mettre des variables dans un .formula ?
Oui, en tenant compte du fait que la variable doit être hors du texte :
.formula ="=A1+B1" <=> .formula = "A1+" & B1
est il possible de mettre dans la formule SUM ma variable "a" ?
Code:
Formula = "=Sum(RC[-6]:RC[-1]," & a &")"
À condition que a soit une valeur.
Code:
Range("Q" & x).Value = Application.Sum(Range("Q" & x - 1 & ":Q" & x - 1 - b1).Value)
La formule me renvoie bien la valeur que je souhaite mais la cellule n'est pas mis à jour si une valeur change.
Et je trouve un peu long de relancer la macro pour chaque changement.
Petit rappel : Il n'y a ni devin, ni télépathe sur ce site, et vraisemblablement un seul qui sache de quoi tu parles : toi. Sans plus d'idées de ce que l'on cherche, tu vas attendre longtemps.

Juste ue petite question : pourquoi faire inscrire une formule, si tu as un résultat à inscrire ? Utilises une Function, avec .volatil, pour faire ton calcul.
A+
 

Benjy

XLDnaute Occasionnel
Re : .formula avec variable dans VBA

Re,

Effectivement mes explications ne sont pas claires. Autant pour moi. Si j'avais pu te fournir le fichier complet tu penses bien que je m'en serais pas privé.

J'aimerais inscrire dans une cellule par vba une formule qui somme une plage de cellules.
Le premier point c'est que la cellule ou est inscrit la formule est variable. Pour ce point pas de soucis.
Le second point c'est que la plage de somme est également variable.
Exemple je peux être amené a sommer de C1 à C100, ou alors de C15 à C19.
Mes variables sont des entiers et renvoient le numéros de ligne soit dans l'exemple ci dessus :
a = 15
b = 19

J'aimerais savoir s'il est possible d'inscrire ceci :
.Formula = "=Sum(C & a:C & b)"
Sachant que a et b sont des entiers définit plutôt dans la macro.
 

bof

XLDnaute Occasionnel
Re : .formula avec variable dans VBA

Bonjour,
Il n'est jamais demandé un fichier complet, juste une démo qui illustre le problème.
En fournissant une macro complète tu permets aux intervenant de suggérer de meilleures solutions...
La réponse à ta question.
Code:
.Formula = "=Sum(C" & a & ":C" & b & ")"
A+
 

Discussions similaires

Réponses
2
Affichages
153