Rechercher : dans
Par :

Formule vba avec variable ?

Dernière réponse le 4 jan 2008 à 18:40:28 bruyaso, le 4 jan 2008 à 10:01:00 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un petit pb concernant les formules sous vba avec un nombre variable d'éléments.

Ex :

Je souhaite faire la somme d'une plage variable

Range( Cells ( 2, 2) , Cells (2, i ))


Je n'arrive pas mettre cette valeur dans une cellule A1
J'ai essayé en faisant :
Range("A1").Formula = "=SUM(A" & 1 & ":" & i & "2")"


Mais ça ne fonctionne pas car les variables sont sur les colonnes (pb ac les chiffres)

Existe t il une manière d'écrie une formul un peu dans l'esprit :

Range(Cells(R,i),Cells(R,i)).Formula= "="SUM("&Range(Cells(6,9),Cells(R,i))&")"


Merci beaucoup
Configuration: Windows XP
Firefox 2.0.0.11

Meilleures réponses pour « Formule vba avec variable ? » dans :
VBScript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Il s'agit en fait d'une zone de la mémoire réservée pour le stockage d'une valeur. Les...
VBScript - Types de données VoirLe type de données Variant Le type d'une variable correspond à la manière dont l'ordinateur stocke la variable en mémoire, c'est-à-dire la succession de 0 et de 1 dans les cases mémoire. VBScript comprend un type de données par défaut pouvant...

1

ego, le 4 jan 2008 à 11:53:02

Dim x as integer, y as integer

x = 5
y = 2
Range("A1").Select
ActiveCell.Formula = "=SUM($B$" & y & ": $B$" & x & ")"

End Sub
pour la colonne B de y a x 'B2 a B5
tu peux changer les chiffres, y a pas de copyright
:o)

Répondre à ego

2

bruyaso, le 4 jan 2008 à 12:03:03

Merci Ego,

Je suis d'accord avec toi, mais si la variable est la colonne et non la ligne ça fonctionne comment ?

Dans ton exemple :

 ActiveCell.Formula = "=SUM($B$" & y & ": $B$" & x & ")" 


Ma variable serait la colonne soit B

Merci pour votre aide

Répondre à bruyaso

3

ego, le 4 jan 2008 à 13:06:39

Tu peux donner la valeur ascii de la lettre fonction chr() et incrementer la variable caractere 65 pour A, 66 pour B etc ...
ActiveCell.Formula = "=SUM($ " chr(66) & "$" & y & ": $ " & chr(66) & "$" & x & ")"
voili ;o)

Répondre à ego

4

ego, le 4 jan 2008 à 13:09:15

Bien sur, tu peux mettre le code ASCII du caractere enn variable, ce qui ferait SUM($ " & chr(x) & " avec x=66

Répondre à ego

5

ego, le 4 jan 2008 à 13:30:19

Attention a bien separer tes definitions de variables par " & mavariable & " sinon ca marche po

Répondre à ego

6

bruyaso, le 4 jan 2008 à 14:15:00

Merci Ego,

ça semble parfait....

Je fait un check générale, mais tu m'aides vraiment

A bientôt

Répondre à bruyaso

7

 bruyaso, le 4 jan 2008 à 18:40:28

Après Vérif j'ai toujours un problème :

ActiveCell.Formula = "=SUM($ " chr(66) & "$" & y & ": $ " & chr(66) & "$" & x & ")" 

C'est valable pour les colonnes allant de A à Z, mais comment faire si mes colonnes variables vont de AA à ZA ?

Merci bcp

Répondre à bruyaso
Collection CommentÇaMarche.net