Somme d'une variable incrémenté

Résolu/Fermé
Jerome - 17 févr. 2016 à 09:14
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 17 févr. 2016 à 11:17
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 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
17 févr. 2016 à 09:24
Bonjour,

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

Désolé mais je n'ai pas compris ta formule !
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
17 févr. 2016 à 09:39
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
Merci mais cela ne m'aide pas a écrire un code dans VBA.
0
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
Modifié par Pierre1310 le 17/02/2016 à 10:05
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 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020
17 févr. 2016 à 09:58
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 71 Date d'inscription samedi 21 novembre 2015 Statut Membre Dernière intervention 3 juillet 2018 5
17 févr. 2016 à 09:40
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
On voit que je débute car je n'ai pas compris ce que tu m'as expliqué!
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
17 févr. 2016 à 10:08
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
Super c'est exactement ce que je charchais ! merci
0
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 31
17 févr. 2016 à 11:17
Pas de souci, merci de passer le sujet en Résolu si c'est tout bon pour vous ;)
0