La somme d'un ensemble valeur obtenu en utilisant la fonctio sum

sabri - 15 févr. 2016 à 00:17 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention
- 16 févr. 2016 à 20:12
Bonjour,
J'aimerais bien savoir comment utiliser la fonction sum pour faire la somme de n nombre sachant que mon expression est f=somme (1/Ui)
Afficher la suite 

9 réponses

ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 15/02/2016 à 07:26
0
Merci
Bonjour,
Parles-tu de la fonction SOMME de Excel ou de la méthode Sum de l'objet WorkSheetFunction de VBA ?

Dans un cas comme dans l'autre, les nombres à sommer doivent être passés en arguments. S'ils se trouvent dans une plage continue d'une feuille Excel, cette plage peut être utilisée comme argument. S'ils se trouvent définis dans un array, cet array peut être utilisé comme argument.
Dans tous les cas de figure, enfin, ce sont les nombres (suite, plage ou array) qui sont à passer en arguments , c'est à dire les résultats de ton expression f et on l'expression.

EDIT : peux-tu nous dire :
- ce que devient la discussion que tu avais ouverte ici :
http://codes-sources.commentcamarche.net/forum/affich-10060498-la-somme-d-une-colonne-specifique-d-un-tableau-grid
- si finalement il s'agit de la même question, mais en précisant cette fois-ci que tu développes sous VBA
?????

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Merci
Non je travail pour un programme en visual basic et j'aimerais bien faire la somme d'une colonne d'un tableau (grid) ou d'un listbox en utilisant la fonction sum ou d'autres fonctions utile
salutations
merci d'avance
jordane45 22847 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 16 févr. 2016 à 00:42
Bonjour,


je travail pour un programme en visual basic

Lequel ? VB6 ? VB.NET ?

En .NET tu pourrais par exemple faire comme ceci je pense (sûrement utilisable aussi en VB6 ) :
  Function SumColumn()  
 
        Dim intSumColumnValue As Integer 
 
        For x As Integer = 0 To MyDataGridName.RowCount - 1  
            intSumColumnValue += MyDataGridName.Rows(x).Cells("MyColumnName").Value  
        Next 

     SumColumn = intSumColumnValue 
    End Function 
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 16 févr. 2016 à 07:08
0
Merci
Bonjour, jordane45,
Je commence à subodorer (subodorer seulement, du fait de toutes les imprécisions présentes) qu'il développe avec VBA d'une application qui n'est pas Excel. Mais bien malin serait celui qui pourrait deviner laquelle ? car :
- si VBA/ACCESS, c'est une requête, qu'il doit exécuter
- si VBA/Word, que je ne connais pas, il veut peut-être :
-------- parler d'un objet TableStyle ?
-------- ou parler d'un tableau Word et de ses bordures (line grid) ?
- si VBA tout court (en général, donc) : il veut peut-être parler d'un tableau dynamique (une matrice) ou d'un Array ...
- etc ... etc ...
Voilà où mènent les imprécisions, tant de cette discussion, que de l'autre ouverte sur ce qui paraît être le même sujet ...

0
Merci
Jordan 45 C'est très généreux de votre part
désolé j'ai oublier de préciser la version de vb utilisé, je travail serte avec VB6 mais pour l'exercice que je travail j'ai utilise la version 4 parce que j'ai pas la version complète pour trouver ou utiliser microsoft grid alors j'ai utiliser VB4 pour utilise microsoft grid alors je me suis trouver ce problem de la somme de la colonne N3
merci d'avance
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 16/02/2016 à 10:57
0
Merci
VB4 ! Mais tu as ouvert cette discussion dans le sous-forum VBA (rien à voir avec VB4) !
VB4 n'étant plus utilisé depuis belle lurette, je doute qu'un forumeur de passage ait encore en tête le fonctionnement (propriétés, méthodes et évènements) de grid.ocx de VB4.
Tu auras probablement plus de chance en ouvrant cette discussion dans le forum "Le café des membres" de ce site. Et en espérant qu'un visiteur passant par et possédant et utilisant encore VB4 soit en mesure de te répondre.
Attention toutefois : pour accéder au forum "Le Café des Membres", il te faut d'abord t'inscrire comme membre de codes-sources et te "logger" ensuite sous le pseudo de ton inscription.
Bonne chance

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
jordane45 22847 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 16 févr. 2016 à 11:06
VB4 ! Mais tu as ouvert cette discussion dans le sous-forum VBA (rien à voir avec VB4) !

Oula. non.. par défaut il était dans VB tout court ...
c'est moi, à l'époque, qui l'avait mis dans VBA.
(vu qu'il parlait de colonnes..... )


VB4 n'étant plus utilisé depuis belle lurette, je doute qu'un forumeur de passage ait encore en tête le fonctionnement (propriétés, méthodes et évènements) de grid.ocx de VB4.

C'est clair ! ... C'est même étonnant que tu aies pu trouver une version compatible avec un ordinateur "récent".

En tous cas... bon courage.
jordane45 22847 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention > jordane45 22847 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 16 févr. 2016 à 11:07
NB: J'ai remis le message dans la section VB (tout court) du forum .... qui sait..
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 17/02/2016 à 07:48
0
Merci
Je vais essayer d'aider, mais sans garantie du gouvernement, car ma mémoire s'amenuise avec l'âge (et voilà environ 3 décennies que je n'ai plus vu VB4).
Je CROIS me rappeler que les valeurs des cellules de ce contrôle Grid étaient accessibles en lecture et écriture en trois étapes :
- étape 1 : définir la colonne
- étape 2 : définir la ligne
- étape 3 : lire le contenu (de type string)
(un peu le même mécanisme que celui qui prévaut en ce qui concerne d'autres contrôles, même modernes, tels une richtextbox où l'on sélectionne d'abord le texte à formater, puis en décide le format)
Ce qui devrait donc en ce qui te concerne s'écrire ainsi , pour un contrôle Grid nommé toto :

somme = 0
toto.col = ..... ' le rang de ta colonne N, qu'on fixe une seule fois, pour toute la boucle sur les lignes
for i = 1 to .... (nombre de lignes de ton contrôle GRID nommé toto)
toto.row = i
somme = somme + val(toto.text)
next
msgbox somme ' pour voir le résultat de somme

Je ne parviens toutefois plus à me rappeler avec assurance comment déterminer le nombre de lignes de ce contrôle toto,; mais ne serais pas étonné de ce que ce soit tout simplement la propriété count de la collection rows de ce contrôle... Et donc, très vraisemblablement :
for i = 1 to toto.rows.count  (nombre de lignes de ton contrôle GRID nommé toto)


NB : il se peut enfin que le premier index ne soit pas 1, mais 0 (ajuster alors).
A toi de jouer maintenant, en tâtonnant sur ces bases.... Je n'ai pas VB4 et ne peux donc le faire à ta place...

EDIT : Voilà : je me souviens maintenant de ce que le nombre de lignes de ce contrôle était (si nommé toto) : toto.rows (directement, donc sans ajouter .count). Je n'arrive par contre pas à me rappeler si la boucle doit se faire de 1 à toto.rows ou de 1 à toto.rows-1 ou de 0 à toto.rows-1 ou enfin de 0 à toto.rows. Essaye les 4.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.