Moyenne de valeurs pour des lignes manquantes

Résolu
HeilyHeily Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
Raymond PENTIER Messages postés 58998 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir tout le monde,

Je suis un bon gros novice en VBA/macro et malgré avoir débroussaillé partout sur le web, je n'ai trouvé de solution. Donc, voilà, je m'en remets à vous.

Bref, j'ai un fichier où sont rangés en première colonne les dates, et le reste, des valeurs (des taux pour être plus précis). Soit à peu près ça (excusez mes erreurs s'il y en a, je suis encore novice ici):



01/02/1999 | 3,2 | 3,1| 2,4| 3,4| 3,5|
02/02/1999 | 2,2 | 3,2| 3,4| 2,3| 4,5|
03/02/1999 |
04/02/1999 |
05/02/1999 |
06/02/1999 | 3,2 | 3,2| 3,5| 2,2| 3,5|
07/02/1999 |

et ainsi de suite jusqu'en 2015, et il manque sur certaines lignes des valeurs. (en fait, j'ai du insérer les lignes manquantes par macro ).

Donc pour la suite, je dois créer une boucle où la macro parcours chaque ligne, et quand elle voit une ligne vide, elle fait la moyenne entre les valeurs du haut et du bas pour chaque colonne, donc une moyenne des valeurs qui les encadrent. Ici donc, une moyenne entre 2,2 et 3,2 pour la 2ème colonne à la date du 03/02/1999, 3,2 et 3,2 pour la 3ème colonne même date, et ainsi de suite...

Pour 04/02/1999, à la première colonne, on aura donc une moyenne entre la valeur obtenue de 03/02/1999 et 3,2 (valeur du 06/02/1999).

Donc, si vous me suivez bien, je pense que les valeurs de 03/02/1999 et 04/02/1999 seront légèrement différentes. Même chose pour 05/02/1999.

J'espère qu'une âme charitable voudra bien m'aider dans ma galère.

Merci grandement d'avance

2 réponses

via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir

Un exemple de macro d'après tes données :
http://www.cjoint.com/c/ELkw5W6ElT7

La macro colore en même temps les cellules vides qu'elle remplit ce qui permettra après de retrouver lesquelles ont été remplies "artificiellement"

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
0
HeilyHeily Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Super !!! en plus c'est simple à comprendre :)

Bon,ça devrait marcher mais j'ai oublié de préciser qu'il pouvait y avoir des cellules avec des variables indiquées "ND" soit non définies, au lieu de les avoir vide. Ce qui fait que je suis un peu coincé après l'ajout de cette condition.

Du coup, on a par exemple:

01/02/1999 | 3,2 | 3,1| 2,4| 3,4| 3,5|
02/02/1999 | 2,2 | 3,2| 3,4| 2,3| 4,5|
03/02/1999 |
04/02/1999 | ND| ND| ND| ND| ND|
05/02/1999 |
06/02/1999 | 3,2 | 3,2| 3,5| 2,2| 3,5|
07/02/1999 | 3,2 | 3,1| 2,4| 3,4| 3,5|
08/02/1999 | ND| ND| ND| ND| ND|
09/02/1999 |
10/02/1999 |
11/02/1999 | ND| ND| ND| ND| ND|
12/02/1999 | 2,2 | 3,2| 3,4| 2,3| 4,5|
13/02/1999 | 3,2 | 3,2| 3,5| 2,2| 3,5|

Si il y a moyen de remplacer les ND par une moyenne toujours
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > HeilyHeily Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Il devrait suffire d'intégrer cette condition dans le IF :
'si cellule vide
        If Cells(lig, col) = "" Or Cells(lig, col) = "ND" Then

et dans la boucle :
' Boucle tant que la cellule suivante est vide
Do While Cells(x, col) = "" Or Cells(x, col) = "ND"

Cdlmnt
Via
0
HeilyHeily Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Génial !!!!!

Ca marche nickel !!!!

Merci beaucop via55 :) :) :)
0
Raymond PENTIER Messages postés 58998 Date d'inscription   Statut Contributeur Dernière intervention   17 369
 

Quand tu estimes que ta discussion est close, clique sur Résolu !
0