Boucle et fonction somme
Résolu
marilou_271
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
marilou_271 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
marilou_271 Messages postés 19 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis débutante dans le vba et là au secours !!
Je vous explique
Je dispose d'un fichier avec des lignes de bons de réception reprenant un code fournisseur et la quantité d'articles réceptionnée que j'ai classé par code fournisseur.
J'aimerai calculer la somme des quantités réceptionées par code fournisseur....
Voilà ce que j'ai commencé
Sub calcul()
ligne=4
colonne=2
while (cells(ligne, colonne)<>0)
if cells(ligne, colonne).value = cells(ligne+1, colonne) then
...et là je n'arrive pas à insérer ma fonction somme.
La somme devrait se calculer en cells(ligne, colonne+11)
et les quantités se situent dans le colonne 10(J)
Je ne maîtrise absolument pas!!
Help please !!
Merci beaucoup
A bientôt
Je suis débutante dans le vba et là au secours !!
Je vous explique
Je dispose d'un fichier avec des lignes de bons de réception reprenant un code fournisseur et la quantité d'articles réceptionnée que j'ai classé par code fournisseur.
J'aimerai calculer la somme des quantités réceptionées par code fournisseur....
Voilà ce que j'ai commencé
Sub calcul()
ligne=4
colonne=2
while (cells(ligne, colonne)<>0)
if cells(ligne, colonne).value = cells(ligne+1, colonne) then
...et là je n'arrive pas à insérer ma fonction somme.
La somme devrait se calculer en cells(ligne, colonne+11)
et les quantités se situent dans le colonne 10(J)
Je ne maîtrise absolument pas!!
Help please !!
Merci beaucoup
A bientôt
A voir également:
- Boucle et fonction somme
- Fonction si et - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Fonction miroir - Guide
5 réponses
Bonjour,
Je ne comprends pas comment sont organisées tes données
Pourquoi tu fais le test "if cells(ligne, colonne).value = cells(ligne+1, colonne)", je suppose c'est le code fournisseur.
Toutes les lignes ne font-elles pas référence au même fournisseur?
Le total doit il se faire en partiel à chaque ligne ou en cumulé à la dernière ligne?
A+.
Je ne comprends pas comment sont organisées tes données
Pourquoi tu fais le test "if cells(ligne, colonne).value = cells(ligne+1, colonne)", je suppose c'est le code fournisseur.
Toutes les lignes ne font-elles pas référence au même fournisseur?
Le total doit il se faire en partiel à chaque ligne ou en cumulé à la dernière ligne?
A+.
Bonjour Marilou,
as-tu absolument besoin d'une macro ?
Si tes données sont déjà triées par code fournisseur, un Sous-Total peut te calculer ta somme par fournisseur. (Données/Sous-Total)
Sinon, un tableau croisé dynamique (c'est tout simple à utiliser) ferait aussi vachement bien l'affaire dans ton cas, il me semble.
A suivre...
as-tu absolument besoin d'une macro ?
Si tes données sont déjà triées par code fournisseur, un Sous-Total peut te calculer ta somme par fournisseur. (Données/Sous-Total)
Sinon, un tableau croisé dynamique (c'est tout simple à utiliser) ferait aussi vachement bien l'affaire dans ton cas, il me semble.
A suivre...
Non je pense pas mais le souci c'est que j'ai un fichier par jour sur 9 semaines
j'aimerai par la suite déterminer un volume moyen, min, max et une fréquence de livraison
Ca m'paraissait l'idéal...Non
Et j'aurais utilisé le croisé dynamique pour le final...
Mais je ne suis pas très douée lol
alors peut être as tu la solution ??
j'aimerai par la suite déterminer un volume moyen, min, max et une fréquence de livraison
Ca m'paraissait l'idéal...Non
Et j'aurais utilisé le croisé dynamique pour le final...
Mais je ne suis pas très douée lol
alors peut être as tu la solution ??
Marilou,
un joli petit tableau croisé dynamique te calculera tes moyennes, tes mini et maxi, et plus si affinité. Douée ou pas douée, ça sera toujours plus simple que des macros. Au pire, ça nécessitera un peu de mise en forme dans tes données de base. As-tu besoin d'aide dans ce sens ?
I.
un joli petit tableau croisé dynamique te calculera tes moyennes, tes mini et maxi, et plus si affinité. Douée ou pas douée, ça sera toujours plus simple que des macros. Au pire, ça nécessitera un peu de mise en forme dans tes données de base. As-tu besoin d'aide dans ce sens ?
I.
nonjour,
Il faut une variable pour faire la somme:
Sub calcul()
Dim somme As Double
somme = 0
ligne=4
colonne=2
while (cells(ligne, colonne)<>0)
if cells(ligne, colonne).value = cells(ligne+1, colonne) then
cells(ligne, colonne+11).Value = somme + cells(ligne, colonne+8)
...
;o)
polux
Il faut une variable pour faire la somme:
Sub calcul()
Dim somme As Double
somme = 0
ligne=4
colonne=2
while (cells(ligne, colonne)<>0)
if cells(ligne, colonne).value = cells(ligne+1, colonne) then
cells(ligne, colonne+11).Value = somme + cells(ligne, colonne+8)
...
;o)
polux
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J'ai élaboré cette macro en partant du principe que le code fournisseur en ligne 4 colonne2 servait de comparaison pour toutes les autres cellules de la colonne 2
Si le code Fournisseur est égal à celui de l 4 c 2 alors e l'ajoute aux quantités précédents et le total partiel est en colonne 11. Le dernier code fournisseur de la colonne contient le total cumulé.
Voila la macro
Sub calcul()
Dim ligne As Integer, colonne As Integer
Dim total As Double
ligne = 4
colonne = 2
total = Cells(ligne, 10).Value
Cells(ligne, 11).Value = total
ligne = ligne + 1
While (Cells(ligne, colonne).Value <> 0)
If Cells(4, colonne).Value = Cells(ligne, colonne) Then
total = total + Cells(ligne, 10).Value
Cells(ligne, 11).Value = total
End If
ligne = ligne + 1
Wend
End Sub
Dis moi si j'ai bien compris ou reformule ton problème
A+.
J'ai élaboré cette macro en partant du principe que le code fournisseur en ligne 4 colonne2 servait de comparaison pour toutes les autres cellules de la colonne 2
Si le code Fournisseur est égal à celui de l 4 c 2 alors e l'ajoute aux quantités précédents et le total partiel est en colonne 11. Le dernier code fournisseur de la colonne contient le total cumulé.
Voila la macro
Sub calcul()
Dim ligne As Integer, colonne As Integer
Dim total As Double
ligne = 4
colonne = 2
total = Cells(ligne, 10).Value
Cells(ligne, 11).Value = total
ligne = ligne + 1
While (Cells(ligne, colonne).Value <> 0)
If Cells(4, colonne).Value = Cells(ligne, colonne) Then
total = total + Cells(ligne, 10).Value
Cells(ligne, 11).Value = total
End If
ligne = ligne + 1
Wend
End Sub
Dis moi si j'ai bien compris ou reformule ton problème
A+.
Oui c'est organisé ainsi
code fournisseur ; nom ; etc..colonne J les quantités
je voudrais calculer les quantités par fournisseur en ligne J
if cells(ligne, colonne).value = cells(ligne+1, colonne).value
car tant que c'est le même code fournisseur, je voudrais qu'il prenne en compte dans la somme la quantité
Suis-je clair ? lol
Pas évident !
Merci