[Catégorie modifiée .Net --> VBA] VBA-Excel WorksheetFunction Average problem

Résolu
uspa Messages postés 12 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 16 octobre 2010 - 15 oct. 2010 à 15:01
uspa Messages postés 12 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 16 octobre 2010 - 16 oct. 2010 à 21:15
Bonjour,
J'ai un problème de lecture de la propriété Average pour la classe WorksheetFunction.
Merci par avance pour ceux ou celles qui auront la patience d'essayer de comprendre ce que j'ai voulu automatiser et de m'aider à résoudre mon problème.
Voici les quelques lignes avec commentaires:

Option Explicit
Dim li, co, cell As Integer

'Recherche du tableau "Cell number"
Rows(1).Find("Cell number").Select
'Se positionner dans la première cellule du tableau
Activecell.Offset(1, 1).Select

'Placer dans cette cellule la moyenne des valeurs des 4 premières cellules de la colonne "-19" (par rapport à la cellule active)
'Incrémenter dans le tableau horizontalement sur 11 colonnes (12 au total) et 7 lignes (8 au total)
' Pour chaque cellule du tableau les valeurs à moyenner proviennent des 4 lignes suivantes (incrément de 4)

cell = 0
For li = 0 To 7 'incrément sur 7 lignes
     For co = 0 To 11 'incrément sur 11 colonnes

Range(Activecell.Offset(li, co)).Value = WorksheetFunction.Average(Range(Activecell.Offset(cell, -19), Activecell.Offset(cell + 3, -19)))

cell = cell + 4
    Next co

Next li

' Au total les moyennes de quadruplicats sur 384 lignes (colonne "-19")sont présentées dans un tableau de 12 colonnes et 8 lignes.

Merci encore pour votre aide
Uspa

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 oct. 2010 à 20:32
Archive ?
Non, VBA est une sous catégorie de VB6 dont il découle.
C'est vrai que les thèmes ne sont pas clairs, mais notre big Jim ne peut pas modifier ces classifications sans refaire tous les sites.
Mais, normalement, quand on modifie la catégorie d'un post 3 fois pour tes 3 précédentes questions, on suppose que le membre à compris.
Merci d'y prêter attention.

J'avais pas le temps de regarder toute à l'heure, mais maintenant, je ne comprends pas quel est ton problème.
Tu parles de la fonction Average.
As-tu une erreur ? Laquelle ? Que valent les paramètres au moment du clash ?

As-tu suivi ton programme ligne à ligne pour voir comment tout ça évolue ?

Débogage :
- F9 sur une ligne de code
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
- F8 (VB6) ou F10 (.Net) pour avancer d'une ligne de code
- F5 pour continuer normalement

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
15 oct. 2010 à 15:23
A copier :
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
"Je fais du VBA et pas du VB.Net"
0
uspa Messages postés 12 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 16 octobre 2010
15 oct. 2010 à 16:20
Merci pour cette réponse particulièrement intéressante et qui est tout à fait encourageante pour un débutant.
Il est particulièrement évident de penser que la section du forum correspondant au VBA se trouve forcément dans le thème prénommé "ARCHIVE Visual Basic & VB.Net"!, les autres thèmes étant "VB.Net et VB 2005", "Visual Basic 6" et "CodeS-SourceS".
Si c'est le cas il serait plus judicieux de retirer le mot archive du titre du thème pour ne pas laisser penser qu'il s'agit d'un dossier d'archivage.

Uspa
0
uspa Messages postés 12 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 16 octobre 2010
16 oct. 2010 à 21:15
Bonsoir

Merci pour les infos concernant la façon de vérifier (via F9 et le curseur de la souris) la valeur des variables.
J'ai pu trouver l'erreur de "syntaxe" qui était:
Range(Activecell.Offset(li, co)).Value

au lieu de :
Activecell.Offset(li, co).Value


Mais je n'ai pas compris pourquoi cela ne marche pas avec "Range".

Uspa
0
Rejoignez-nous