Somme critérielle dans une base de données [Résolu/Fermé]

Signaler
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
-
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
-
Bonjour,
Je travaille actuellement sur un projet de BD consistant à comptabiliser des retours ou envois de palettes avec nos clients. En ligne 1 et de la colonne A à F nous avons: Date/ Client /Mouvement/Avoir Precedent /Solde
Si par exemple au 02/02/18 le client x a ramené 12 palettes et qu'il avait nos 20 palettes le solde sera 20-12=8 palettes
Ensuite au 14/02/18 on l'envoit 5 palettes alors il en aura maintenant 5+8=13 palettes
Le problème c'est que je n'arrive pas définir une fonction VBA afin d'actualiser automatiquement l'état des palettes dans le tableau vu qu'il y a plusieurs clients (calcul automatique des avoirs et du solde de palettes en fonction du client en question).
Merci beaucoup d'avance God Bless U
NB: Une solution en formule Excel aussi serait gentille.

2 réponses

Messages postés
16192
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 mai 2020
2 955
Bonjour

peut-^tre...
un exemple ressemblant avec des formules Excel (rechercheV, sommeprod...)
https://mon-partage.fr/f/jTvVwJNd/
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
1
Merci quand meme mais l'exemple n'est pas en rapport avec la nature de ma requete si on pouvait joindre un fichier excel peut etre serais je plus explicite.
Mais Imaginons toujours selon l'exemple de depart que :
- 05/03/18 il y a envoi de 12 palettes au client A qui en possedait 14 ainsi solde restant = 12+14=26
-06/03/18 retour de 24 palettes du client B qui en possedait 16 d'ou le solde = 24- 16=8
-07/02/18 retour de 15 par client A qui en possede mtn une quantité correspondant au solde dernier soit 26 d'ou le nouveau solde restant est 26-15= 11
Ainsi de suite pour les autres clients. J'ai fais un formulaire vba pour enregistrer automatiquement les saisies dans les cellules situées en dessous de la ligne 1 avec pour colonnes allant de : Date, Mouvement,Qté Precedente,Solde restant.
Je voudrais donc que lorsqu'on enregistre un mème client a un autre jour sa situation s'actualise automatiquement, en occurence les qtés precedentes et le solde restant en fonction bien sur de sa situation anterieure a cette nouvel saisie...(Excusez moi si j'ai trop ecrire c'est pour mieux detailler le probleme de depart)
Remerci encore d'avance
Messages postés
16192
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 mai 2020
2 955
Bonjour

Mettre le classeur sans données confidentielles en pièce jointe sur
https://mon-partage.fr/
Puis faire un clic droit copier le raccourci et coller dans votre message

Dans l’attente
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
1
https://mon-partage.fr/f/wzjBF4Nd/

Bien merci encore.ci haut le lien apres partage de mon fichier source
Messages postés
11178
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635
bonsoir, connais-tu les tableaux croisés dynamiques?
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
1
Susu un tableau croisé dynamique ferait bien l'affaire sauf que cela m'obligerais a enregistrer en vrac les infos et a les filtrer via un TCD mais cest ausssi une bonne solution a mon probleme merci j'appliquerait ça.
Toutefois j'ai aussi opté pour une resolution via vba ...je recherche un code du genre si cells(2,1)= Client A alors cells(2,2) qui est la celulle "avoir precedent" recoit le "solde reestant" passé du client A contenu sur la ligne precedente dans la cellule Cells(1,3)
Le probleme cest que je ne gere pas client par client car chaque enregistrement peut concerner un client different d'ou le soucis de trouver une parade pour que les calculs (avoir precedent qui est en fait le solde precedent du clent x et son nouveau solde ) se fasse dès un nouvel enregistrement.
Am I clear now? Voila pkw je me contenterai bien d'une formule excel ausssi en attendant . Merci encore d'avance
Messages postés
11178
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 mai 2020
635 >
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019

je n'ai pas compris pourquoi un TCD ne te convenait pas totalement.
Messages postés
17
Date d'inscription
mercredi 20 décembre 2017
Statut
Membre
Dernière intervention
10 janvier 2019
1
Susu mais j'ai voulu tout de meme tester qqchose en vba.
Ok apres plusieurs essais j'en suis arrivé au fait que le probleme etait tres simple il me fallait juste enregistrer les envois de palettes positives et les retours negatifs et appliquer Sumif .

Private Sub Btnrepartition_Click()
Dim lr As Integer '  pour la derniere ligne
Sheets("Suivi").Activate
Range("A4").Select
If Range("A5") = "" Then lr = Range("A5").Row Else lr = Range("A4").End(xlDown).Row + 1
If MsgBox("Confirmez-vous l'ajout de cette saisie?", vbYesNo, "Ajout") = vbYes Then
       Cells(lr, 1) = Now
       Cells(lr, 2) = CboMvt 'pour le type de mouvement Envoi ou retour
       If Cells(lr, 2) = "Retour" Then Cells(lr, 3) = -1 * 
         CInt(Txtpal) Else Cells(lr, 3) = CInt(Txtpal) ' pour enregistrer les qté envoyées ou ramenées de palettes
       Cells(lr, 4) = CboClient
      If lr = Range("A5").Row Then Cells(lr, 5) = 0 
Else:Cells(lr,5).Value=Application.WorksheetFunction.SumIf(Range("T_Client"), Cells(lr, 4).Value, Range("T_Palettes")) ' pour enfin calculer le solde de palettes restantes
End If
End Sub



Mille merci encore a tous