Optimiser programme de calcul

Colombine

XLDnaute Junior
Bonjour à tous, j'ai fait un petit bout de programme qui fonctionne super ( il calcule la somme de mes colonnes et me le note 2 lignes en dessous de la derniere ligne dans la colonne correspondante) :
-------------------------------------------------
Worksheets("Feuil1").Select
derniereligne = ActiveSheet.UsedRange.Rows.Count
Range("c" & derniereligne + 2).Value = Application.Sum(Range("c1").EntireColumn)
Range("d" & derniereligne + 2).Value = Application.Sum(Range("d1").EntireColumn)
Range("e" & derniereligne + 2).Value = Application.Sum(Range("e1").EntireColumn)
Range("f" & derniereligne + 2).Value = Application.Sum(Range("f1").EntireColumn)
Range("g" & derniereligne + 2).Value = Application.Sum(Range("g1").EntireColumn)
Range("h" & derniereligne + 2).Value = Application.Sum(Range("h1").EntireColumn)
-------------------------------------------------
j'aurais aimé l'améliorer pour faire varier mes colonnes et avoir moins de lignes de programmes mais cela ne fonctionne pas, voici ce que j'ai fait:

----------------------------------------------------

Dim indice As Integer

Worksheets("Feuil1").Select
dernierecolonne = ActiveSheet.UsedRange.Columns.Count
derniereligne = ActiveSheet.UsedRange.Rows.Count

For indice = 3 To dernierecolonne
range(indice & derniereligne + 2).Value = Application.Sum(Range(indice & "1").EntireColumn)
Next indice

-------------------------------------------------

je pense que c'est encore un programme de déclaration de variable ou de syntaxe mais je colle.
Merci d'avance pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Optimiser programme de calcul

Bonjour,

regarde peut être ceci :
Code:
Dim i As Integer, l As Integer
With Worksheets("Feuil1")
    l = .UsedRange.Rows.Count + 2
    For i = 3 To 8
        .Cells(l, i) = Application.Sum(.Columns(i))
    Next i
End With
bon après midi
@+
 

Colombine

XLDnaute Junior
Re : Optimiser programme de calcul

Erreur de ma part dans une autre partie de mon programme, ça marche nickel.
par contre j'ai un problème avec ma ligne juste en dessous qui doit contenir la moyenne de ma colonne.
en effet dans ma colonne je n'ai pas que des chiffres, je peux avoir du texte, je veux donc qu'il fasse la moyenne de tous les entiers sans prendre en compte les valeurs si c'est du texte et en plus je ne comprends pas bien comment fonctionne la fonction AVERAGE.
Merci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Optimiser programme de calcul

Bonjour,

comprends pas bien, chez moi ne prends pas en compte les valeurs "texte"... ci-dessous extrait de l'aide Excel sur la fonction :
Notes

Les arguments doivent être soit des nombres, soit des noms, des matrices ou des références contenant des nombres.
Si une matrice ou une référence utilisée comme argument contient du texte, des valeurs logiques ou des cellules vides, ces valeurs ne sont pas prises en compte. En revanche, les cellules contenant la valeur 0 sont prises en compte.

bonne journée
@+
 

Colombine

XLDnaute Junior
Re : Optimiser programme de calcul

en fait je n'arrive pas à traduire ce petit bout de programme en y insérant des variables :

------------------
Range("J2").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-9]:RC[-1])"
Range("J3").Select
ActiveCell.FormulaR1C1 = "=AVERAGE(RC[-9]:RC[-1])"
-------------------

j'ai déja des variables:
dercol = derniere colonne
derligne = derniere ligne
indice = numero de colonne de départ

je voudrais qu'il m'affiche en dercol+1 pour chaque ligne la moyenne correspondante en commençant par la colonne de mon indice ( si sur ligne 1, indice = 3 et dercol =5, je veux qu'il mette en F1 la moyenne de c1,d1,e1)

j'espere que c'est plus clair :eek:
 

Colombine

XLDnaute Junior
Re : Optimiser programme de calcul

merci pour votre aide, après plusieurs doses de café j'ai trouvé :

With Worksheets("Feuil1")
l = .UsedRange.Columns.Count + 2
For i = 2 To derniereligne
.Cells(i, l) = Application.Average(.Rows(i))
Next i
End With

c'est trop beau quand ça marche !! Bonne journée à vous
 

Discussions similaires

Statistiques des forums

Discussions
312 519
Messages
2 089 267
Membres
104 083
dernier inscrit
hecko