Manipulation de variable tableau

golzag

XLDnaute Nouveau
Bonjour à tous,
Je commence à essayer d'utiliser les variables tableaux pour gagner en performance, mais j'ai des trucs un peu bizarre.

Pour me familiariser avec l'utilisation de tableau j'affiche les valeurs stockées mais il m'affiche des valeurs arrondies ? Est-ce que quelqu'un à deja eu ce problème ?

Je vous mets le fichier joint en exemple. C'est la Macro_5

Autre question:

est-ce qu'il est possible de faire des calculs de type moyenne sur des colonnes du tableau ? est-ce qu'il y a des fonctions raccourcis pour ce type de manip ?

Merci d'avance
 

Pièces jointes

  • tableau.xls
    32.5 KB · Affichages: 54
  • tableau.xls
    32.5 KB · Affichages: 55
  • tableau.xls
    32.5 KB · Affichages: 52

golzag

XLDnaute Nouveau
Re : Manipulation de variable tableau

Merci,
Je ne mettais pas rendu compte.

Autre question dans la cas d'un calcul de moyenne :

sachant que a est un tableau en 2D (10 lignes , 2 colonnes)

comment déclarer pour avoir la moyenne seulement de la colonne 1 ?

z = Application.WorksheetFunction.Average(a(.....)


MErci d'avance
 

RENAUDER

Nous a quitté
Repose en paix
Re : Manipulation de variable tableau

Bonjour,
je ferai quelque chose comme cela
Code:
Sub Macro5()
    Dim a(1 To 30, 1 To 2)
    Dim Temp As Double
    'Remplissage du tableau
    j = 2:    g = 6
    For Z = 1 To 2
        For i = 1 To 30
            a(i, Z) = Sheets("Feuil1").Cells(i + 8, j + Z).Value
        Next i
        If Z = 1 Then MsgBox "The average is " & Application.Average(a)
        Valeur = 0
    Next Z
End Sub
Par contre si je veux afficher la moyenne de la deuxième colonne, il faut faire une seconde boucle et ne plus mettre For Z= 1 to 2.
Je n'ai trouvé d'autre astuce.
 

RENAUDER

Nous a quitté
Repose en paix
Re : Manipulation de variable tableau

Bonjour,
Oui j'ai testé.
Et dans ce cas tu peux avoir la moyenne pour chaque colonne
Code:
Sub Macro5()
    Dim a(1 To 30, 1 To 2)
    Dim Temp As Double
    'Remplissage du tableau
    j = 2: G = 6
    For Z = 1 To 2
        For i = 1 To 30
            a(i, Z) = Sheets("Feuil1").Cells(i + 8, j + Z).Value
        Next i
        MsgBox Application.Average(Application.Index(a, , Z))
    Next Z
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16