Somme critérielle dans une base de données

Résolu
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   -  
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   - 10 mars 2018 à 00:49
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.

A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour

peut-^tre...
un exemple ressemblant avec des formules Excel (rechercheV, sommeprod...)
https://mon-partage.fr/f/jTvVwJNd/
0
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci quand meme mais l'exemple n'est pas en rapport avec la nature de ma requete si on pouvait dre 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
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour

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

Dans l’attente
0
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   2
 
https://mon-partage.fr/f/wzjBF4Nd/

Bien merci encore.ci haut le lien apres partage de mon fichier source
0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention    
bonsoir, connais-tu les tableaux croisés dynamiques?
0
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   2
 
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" é 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
0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   1 583 > Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention  
 
je n'ai pas compris pourquoi un TCD ne te convenait pas totalement.
0
Luronco27 Messages postés 17 Date d'inscription   Statut Membre Dernière intervention   2
 
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
0