Sommer et incrémenter cellules dont des vides

louloutte63 -  
latoopa Messages postés 278 Date d'inscription   Statut Membre Dernière intervention   -
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 278 Date d'inscription   Statut Membre Dernière intervention   32
 
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
louloutte63
 
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
louloutte63
 
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
barbouze85
 
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 278 Date d'inscription   Statut Membre Dernière intervention   32
 
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