Somme d'une variable incrémenté

Résolu
Jerome -  
Theo.R Messages postés 585 Statut Membre -
Bonjour,

Je débute en VBA et des que ca se complique je galere.
J'ai besoin d'incrementé un valeur fixe, ma variable (0.002) dans un tableau en fonction du nombre de ligne de mon tableau (qui peut varier en fonction des mes enregistrements).
Donc comment faire une boucle qui me calcul le nombre de ligne de mon tableau et qui ajoute 0.002 à la premiere ligne et qui incrémente 0.002 pour les lignes suivante jusqu'a la derniere. Ce qui doit donner si j'ai 6 lignes dans mon tableau ligne1:0.002 ; ligne2:0.004 ; ligne3:0.006 ; ligne4:0.008 ; ligne5:0.010 ; ligne6:0.012.
J'espere avoir était assez clair.
Merci de votre aide.


3 réponses

Pierre1310 Messages postés 8854 Statut Membre 652
 
Bonjour,

tu peux faire ça avec une formule.
=0,002
puis = cellule d'en haut + 0,002
0
Jerome
 
Bonjour,

Désolé mais je n'ai pas compris ta formule !
0
Pierre1310 Messages postés 8854 Statut Membre 652
 
Tu as 0,002 dans ta 1ère cellule. Tu peux écrire dans ta 2e cellule qu'elle vaut la première + 0,002.
0
Jerome
 
Merci mais cela ne m'aide pas a écrire un code dans VBA.
0
Pierre1310 Messages postés 8854 Statut Membre 652
 
dim ma_variable as integer
dim cpt as integer

cells(1,1).value =0,002

cpt = ce que tu veux

For ma_variable = 2 to cpt
cells(ma_variable,1).value=cells(ma_variable-1,1).value+0,002
Next ma_variable
0
Jerome > Pierre1310 Messages postés 8854 Statut Membre
 
Que signifie cpt ? Compteur? comment ca marche ?
J'ai du mal a comprendre la formule, peux tu me la détailler?
0
Heas Messages postés 73 Statut Membre 5
 
Bonjour,

en supposant que la valeur fixe à ajouter soit dans la cellule D1,

déclarer la somme en se référant à $D$1 (Coordonnée absolue).

Autre solution, définir un nom, exemple CONST
Insertion Nom Définir saisir le nom sélectionner D1

Dans la formule, saisir + Insertion Nom Coller CONST
0
Jerome
 
On voit que je débute car je n'ai pas compris ce que tu m'as expliqué!
0
Theo.R Messages postés 585 Statut Membre 31
 
Pour le peu de détails que tu donnes, je dirais qu'étirer une simple formule suffit. Après VBA peut t'aider à adapter le calcul au nombre de lignes du tableau.

Quelques pistes pratiques :

1) Trouver le nb de lignes de ton tableau : on définit une variable. Ex: Calculer n° Dernière ligne non vide (feuille 1 en A:A)
Dim DernLigne As Long
DernLigne = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row


Une fois que tu as le nb de lignes de ton tableau, tu peux utiliser une boucle :

2) Boucle de type "For i = 1 to 10" (...) "Next i" : Le code entre ces deux bornes de la boucle se répètera dans l'ordre en donnant à i la valeur de 1, puis de 2, (...) jusqu'à 10 inclus.
Dans ton cas, tu peux utiliser DernLigne comme valeur max au lieu de 10, voire commencer à 2 si ton tableau à des en-têtes.
Ex:
 For i = 2 to DernLigne
Cells(i,1).value = i * 0,002
Next i

-> dans cet exemple, la cellule en Ai prend est valorisée à 0,002 * ligne en question (i). Donc pour i = 2, on aura A2 = 0,004, pour i = 3 on aura A3 = 0,006, et ainsi de suite. Cela colle à ta demande ;)

D'autres types de boucles peuvent faire l'affaire, comme "Do until (...) Loop" ou "While (...) Loop". Mais pour débuter les boucles en "For...Next" sont pas mal ;)
0
Jerome
 
Super c'est exactement ce que je charchais ! merci
0
Theo.R Messages postés 585 Statut Membre 31
 
Pas de souci, merci de passer le sujet en Résolu si c'est tout bon pour vous ;)
0