OVH Cloud OVH Cloud

MACRO EXCEL

5 réponses
Avatar
alexpression1980
Bonjour,

Je cherche =E0 faire une macro relativement simple en VBA mais je n'y
connais pas grand chose. Si quelqu'un pouvait m'aider, ce serait super.
En fait, je suis limit=E9 par le nombre de SI imbriqu=E9s sur Excel (7).

Ce que je cherche =E0 faire :
1- savoir combien de cellules sont vides sur une plage
2- a partir de l=E0, calculer la variation entre 2005 et 2006 sur les
cellules pleines (ex. donn=E9es 2006 renseign=E9es que jusqu'=E0 mars -->
nb cellules vides =3D9 donc calcul de la variation cumul=E9e 2005 par
rapport =E0 2006 la plage des 3 cellules pleines)
3- renvoyer la variation dans une cellule excel


=E7a doit donner quelque chose de ce genre l=E0 ? :

nb_cells_vides =3D NB.VIDE(plage_cellules_2006);

for i=3D0 to 12 'il y a douze cellules sur ma plage
{
if nb_cells_vides =3D i
{
variation =3D
somme(plage_cellule_pleine_2006)/somme(plage_cellule_pleine_2005)-1;
write variation ;
}

}
end for

5 réponses

Avatar
Jacky
Bonjour,

Si tu le souhaites, un exemple brouillon avec la structure des données et le
résultat souhaité sur:
http://cjoint.com

Salutations
JJ

a écrit dans le message de
news:
Bonjour,

Je cherche à faire une macro relativement simple en VBA mais je n'y
connais pas grand chose. Si quelqu'un pouvait m'aider, ce serait super.
En fait, je suis limité par le nombre de SI imbriqués sur Excel (7).

Ce que je cherche à faire :
1- savoir combien de cellules sont vides sur une plage
2- a partir de là, calculer la variation entre 2005 et 2006 sur les
cellules pleines (ex. données 2006 renseignées que jusqu'à mars -->
nb cellules vides =9 donc calcul de la variation cumulée 2005 par
rapport à 2006 la plage des 3 cellules pleines)
3- renvoyer la variation dans une cellule excel


ça doit donner quelque chose de ce genre là ? :

nb_cells_vides = NB.VIDE(plage_cellules_2006);

for i=0 to 12 'il y a douze cellules sur ma plage
{
if nb_cells_vides = i
{
variation somme(plage_cellule_pleine_2006)/somme(plage_cellule_pleine_2005)-1;
write variation ;
}

}
end for
Avatar
alexpression1980
Bonjour, je ne vois ce qu'apporte cette adresse à mon problème ?
N'hésitez pas à me contacter sur mon adresse e-mail :

En vous remerciant,
Avatar
AV
Pas besoin de macro..!

* Avec en "Feuil1" B2:B13 les valeurs de l'année 2005
* Avec en "Feuil1" C2:Cxx les valeurs de l'année 2006

Insertion > Nom > Définir :
Nom dans le classeur : "SOM_2005"
Fait référence à :
=SOMME(DECALER(Feuil1!$B$2;;;NBVAL(Feuil1!$C$2:$C$12)))
Nom dans le classeur : "SOM_2006"
Fait référence à :
=SOMME(DECALER(Feuil1!$C$2;;;NBVAL(Feuil1!$C$2:$C$12)))

Calculer l'évolution (cellule au format %) :
=((SOM_2005)-(SOM_2006))/SOM_2006

Exemple là :
http://cjoint.com/?bzsBqR5Sau

AV
Avatar
AV
Pffff...

Pour l'évolution 2005 >> 2006 , il faut, évidemment, inverser les termes :
=((SOM_2006)-(SOM_2005))/SOM_2005

AV
Avatar
alexpression1980
Salut! Merci beaucoup, c'est super sympa! Connaîtriez vous un bon
manuel Excel ?