Sommer et incrémenter cellules dont des vides

Fermé
louloutte63 - 8 mars 2010 à 16:17
latoopa Messages postés 258 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 5 janvier 2012 - 9 mars 2010 à 17:03
Bonjour à tous,

Voilà je suis bloqué depuis pas mal de temps sur ce problème (en ce moment j'apprend à programmer sous VB par l'intermédiaire de mon projet) et j'espérais que quelqu'un puisse me venir en aide!

En fait j'ai une colonne de 10 cellules qui contiennet des entiers positifs ou des 0.

Mon objectifs est de sommer ces 10 cellules et de mettre le résultats dans une autre cellule de ma pages. Ceci n'est pas le plus dur, mais j'aimerais en parallèle en même temps que l'opération de somme s'effectue une incrémentation me retournant à la fin le nombre de cellules qui ont participée à la somme!! (donc en gros si je me suis mal exprimé: si sur les 10 cellules il y en a 2 qui ont un 0, l'incrément n de réponse doit être 8...).

Comme je ne suis pas un exper en VB j'ai cherché partout et suis parti dans toutes les directions, et maintenant je ne sais plus trop sur quoi m'appuyer pour ce programme!

Merci beaucoup pour votre aide!! :)

4 réponses

latoopa Messages postés 258 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 5 janvier 2012 32
8 mars 2010 à 17:21
Salut,

je ne suis pas un expert de VB (à vrai dire je n'y connais rien) mais je peux déjà t'aider sur la trame du programme :

for( indice1 = 0 ; indice < 10 ; indice = indice + 1 ) {

somme = somme + "la case numéro 'indice' de ta liste";   // là tu additionnes la case courante a la somme

if ( "la case numéro 'indice' de ta liste" == 0 ){                // si la case n'est pas vide
       nombreDeCasesNonVides =  nombreDeCasesNonVides +1 ;    // on ajoute 1 ici
}
}

ecritureDe("somme : "+somme);
ecritureDe("nombreDeCasesNonVides : "+nombreDeCasesNonVides );


Si tu ne comprends pas quelque chose n'hésites pas. Ciao
Toopa
0
ok merci beaucoup Toopa!! :)

je vais essayer cela demain matin en l'adaptant en language VB et si j'ai un problème je reviens!

Merci encore pour ta réponse!! :)
0
Re salut Toopa!

mais quand tu parles de "somme" dans ton programme, c'est également une autre macro que tu dois créer dans laquelle tu expliques l'opération de somme?! (je ne comprends pas/sais pas comment identifier/programmer cette fonction somme)!
0
Bonjour louloute63
"somme" est un entier dans lequel tu stoques la valeur de ta somme
si tu veux en français ton programme c'est
si la valeur de la case est différente de 0
tu l'ajoutes a la somme,
tu incrémentes ton entier "nnrcasesnonvides"
tu passes a la case suivante,
sinon
tu passes a la case suivante

en language ca doit doner un truc dans le genre

Dim Somme as integer
dim nbrcasesnonvides as integer
dim caseactuelle


If caseactuelle.value (ca je sais pas comment on fait appel a excel) != 0
then
Somme = somme + caseactuelle.value
nbrcasesnonvides++ (ou nbrcasesnonvides = nbrcasesnonvides+1)
caseactuelle=casesuivante (je sais pas comment tu fais)
endif
Else
caseactuelle=casesuivante
endElse

et tu fais une petite boucle for si tu connais le nombre de cases sinon tu fais un while avec nentier qui est a la valeur 0 tant que t'as pas atteint ta dernière case

voila ma petite louloute du 63
biz biz
barbouze85
toujours au service de ces dames
0
latoopa Messages postés 258 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 5 janvier 2012 32
9 mars 2010 à 17:03
Re-salut,

je pense que le tombeur "barbouze85" a assez bien expliqué..

ce que j'ai appelé "somme" est une variable (de type entier par exemple) que tu initialises à 0 au départ.
Ensuite, à chaque tour de boucle tu vas reprendre la valeur de "somme" précédente et lui ajouter la valeur contenue dans la case courante du tableau. Ce qui donne :

somme = somme + caseCouranteDuTableau

Somme n'est donc pas une fonction mais seulement une valeur qui va évoluer : une variable !

Voilà :) En espérant t'avoir un peu éclaircie.

Toopa
0