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

  1. 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
    1. Jerome
       
      Bonjour,

      Désolé mais je n'ai pas compris ta formule !
      0
    2. 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
    3. Jerome
       
      Merci mais cela ne m'aide pas a écrire un code dans VBA.
      0
    4. 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
    5. 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
  2. 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
    1. Jerome
       
      On voit que je débute car je n'ai pas compris ce que tu m'as expliqué!
      0
  3. 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
    1. Jerome
       
      Super c'est exactement ce que je charchais ! merci
      0
    2. 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