Afficher les calculs d'une boucle dans une colonne

slipman25190 Messages postés 20 Statut Membre -  
slipman25190 Messages postés 20 Statut Membre -
Bonjour,

Je suis débutant avec le langage macro (VBA) de Excel et je sollicite votre aide parce que je n'arrive pas à réaliser se que je souhaite, je m'explique :

J'ai réalisé une fonction qui calcul la somme d'une équation de 0 à n-1.
je voudrais pouvoir afficher tous les résultats et non que le résultat final dans une colonne du tableur par exemple :

Colone A
Résultat calcul pour n=0
Résultat calcul pour n=1
...................
Résultat calcul pour n=n-1

Voici également un extrait de ma fonction :

Function SOMMETK(a, n, Te)
For k = 0 To n - 1
SOMMETK = SOMMETK + (a + k * Te)
Next k
End Function

1 réponse

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Par exemple en A1 :
    =sommetk(18;LIGNES($1:1)-1;2)
    à tirer vers le bas
    1
    1. slipman25190 Messages postés 20 Statut Membre
       
      Merci pour votre réponse, cela fonctionne très bien !
      Cependant n'y a t-il pas qqc de plus automatique ? ou est-ce trop complexe ?
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      « Cependant n'y a t-il pas qqc de plus automatique ? ou est-ce trop complexe ? » i.e ???
      0
    3. slipman25190 Messages postés 20 Statut Membre
       
      Une ligne à rentré dans ma macro pour éviter d'étendre ou de supprimer des cellules dès que n varie
      0
    4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Ta macro est une fonction, il très fortement déconseillé d'utiliser cette fonction pour écrire dans des cellules. Gardes lui son rôle de fonction !
      Tu peux utiliser une procédure pour appliquer ta fonction à certaines cellules :
      Option Explicit
      Sub Etendre()
      Dim col As Range
      Dim a As Double
      Dim n As Long
      Dim Te As Double
      Dim i As Long
        'Initialisation des variables
        a = 18
        n = 12
        Te = 2
        Set col = ActiveSheet.Columns("A")
        'Effacement des résultats précédents
        col.Clear
        'Mise en place des résultats
        For i = 0 To n - 1
          col.Cells(i + 1, 1).Value = SOMMETK(a, i, Te)
        Next i
      End Sub
      
      Function SOMMETK(a, n, Te)
      Dim k as long
        For k = 0 To n - 1
          SOMMETK = SOMMETK + (a + k * Te)
        Next k
      End Function
      0
      1. slipman25190 Messages postés 20 Statut Membre > Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention  
         
        Merci c'est super !
        0