Aide sur la gestion d'un stock

Fermé
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013 - 19 avril 2013 à 09:25
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 22 avril 2013 à 09:55
Bonjour à tous,

Je viens sur ce forum pour que quelqu'un vienne à mon secours!
Je ne parviens pas à maîtriser correctement le langage VBA et macro, malgré les nombreuses recherches effectuées.

Je viens ici pour savoir si, tout d'abord, par quel moyen je dois passer pour résoudre mon problème. Ensuite je souhaiterai fortement obtenir une solution :)

Voilà mon problème:

Je dois gérer un stock de 10000 références, calculer le stock moyen de chaque références (je possède le stock initial de chacun). Le problème est que de faire chaque article un par un, c'est très long et malheureusement je manque de temps :(
Je voudrais donc automatiser ce calcul pour qu'il puisse se faire seul.


Je fourni le fichier correspondant, dont j'ai supprimé une très grande partie pour pouvoir le joindre.

https://www.cjoint.com/?CDtjxhuiCjQ

Cordialement
A voir également:

8 réponses

Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
19 avril 2013 à 22:20
Bonjour,
Pas facile de comprendre ce que vous voulez.
Questions :
Pourquoi colonne [Stock initial] toujours = 0 ?
Dans [Mvt] que signifie [E], [S] et [R] ?
Est-ce que le stock moyen (pour un article) c'est : stock max - stock min /2 ... ?

0
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013
19 avril 2013 à 22:44
Bonsoir, merci de votre réponse

Voici quelques explications:

Je souhaite calculer le stock moyen, dont la formule est :
(Stock initial +stock final)/2

Le stock initial n'est pas toujours égal a 0 normalement, peut-être un problème du fichier.

Le stock final se calcul comme ceci:
somme des entrées (E)+Somme des Retours (R)-Somme des Sorties (S)

A cela peut être rajouter des critères supplémentaire non présent dans le fichier transmis: +Somme des Annulations (A) + Somme des Transfert (T)

Peut m'importe la façon d'y parvenir, tant que le résultat est là.

Cordialement
0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
19 avril 2013 à 22:59
Salut.

1) Dans la formule calculant le stock moyen, colonne K, il est question des codes E, A, R et S ; je suppose que ce n'est pas A, mais T ?

2) Ton tableau est bien trié, par rapport aux colonnes A, B et C ; est-ce toujours le cas, ou ta manipulation de fichier ne doit-elle pas commencer par ce tri ?

3) 10 000 références, et environ 8 lignes par référence, cela fait déjà 80 000 lignes ! Ce serait plus prudent (et plus efficace) de gérer un tel stock sur Access plutôt que sur Excel ...

Cordialement.
0
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013
19 avril 2013 à 23:37
Bonsoir,

1) Les différentes initiales signifient:

E pour Entrée
S pour Sortie
A pour Annulation de sortie (donc une Entrée): la lettre n'apparaît pas dans le morceau du fichier transmis mais elle est bien de nombreuses fois dans les données.
R pour Retour (=Entrée)
T pour Transfert --> Il s'agit soit d'une entrée soit d'une sortie car ce produit transite entre les différents magasins. C'est un problème puisque je ne sait pas si il faut le comptabilisé en tant qu'Entrée ou Sortie ou les 2, voire même de ne pas les comptés du tout.

2) La colonne A est simplement pour la mise en forme, pour repérer les différentes références de la colonne B. La colonne C sert uniquement a connaitre le nom de la référence, elle est peu utile.

3) Le tableau original fait 182000 lignes, pour 9850 références différentes. Je ne sais pas si la gestion par Access, comme je ne l'ai jamais utilisé, serait plus simple que de passer par une macro, avec laquelle je possède certaines notions. Avec toutes les conditions nécessaires (références, type de mouvements, nombre de mouvement par référence,...) est-ce plus simple avec Access?

Mais je suis ouvert à toutes propositions ;)

Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12048 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 26 avril 2024 1 427
19 avril 2013 à 23:49
Bonjour,
Merci pour les informations.
Personnellement, selon les informations disponibles, je pencherais pour Access.
Bonne suite.

0
Raymond PENTIER Messages postés 58397 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 avril 2024 17 094
19 avril 2013 à 23:55
Et moi, je ne connais pas du tout les macros ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 avril 2013 à 09:40
Bonjour à tous,
effectivement, Access serait peut-^tre préférable bien qu'on ne travaille que sur une seule table avec des calculs relativement simples
Lire à ce propos les conseils de la maison mère:
https://support.microsoft.com/fr-fr/office/utiliser-access-ou-excel-pour-g%c3%a9rer-vos-donn%c3%a9es-09576147-47d1-4c6f-9312-e825227fcaea?ocmsassetid=ha010210195&correlationid=d29af1f8-4e74-4502-b994-3b1f030cc1ff&ui=fr-fr&rs=fr-fr&ad=fr#BM2
écrit pour 2003 mais toujours valable on peut passer à + de lignes et/ou de colonnes
J'aurai certainement des questions à poser; comme j'en ai marre des problèmes posés le vendredi et sans écho du demandeur avant le retour au boulot du lundi ==>"faites moi ça pendant mon WE que je puisse frimer à la réunion du Lundi", pas de réponses me ferait abandonner la discussion
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 avril 2013 à 10:58
Re,

dis moi si ca ne proteste pas avec les 10000 lignes style "mémoire insuffisante"
d'avance merci
Option Explicit

Sub calculer_stocks()
Dim Derlig As Integer, T_ref(), T_stock()
Dim D_ref As Object, Ref As String, cptr As Integer, T_liste(), T_depart

'-----------initialisations
     Application.ScreenUpdating = False
     With Sheets(1)
          'mémorisation en RAM des données utiles
          Derlig = .Columns("B").Find("*", , , , , xlPrevious).Row
          T_ref = Application.Transpose(.Range("B2:B" & Derlig).Value)
          T_stock = .Range("H2:N" & Derlig).Value
     
          'création des listes références- nombre
          Set D_ref = CreateObject("scripting.dictionary")
          For cptr = 1 To UBound(T_ref)
               Ref = T_ref(cptr)
               If Not D_ref.exists(Ref) Then
                    'couple référence index de départ
                    D_ref.Add Ref, cptr
               End If
          Next
          With D_ref
               'Liste des ref
               T_liste = .keys
               T_depart = .Items
          End With
          
 '-------calcul des stocks
          
      End With
          
End Sub
0
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013
20 avril 2013 à 10:54
Bonjour,

Merci à tous.

J'ai commencé avec les macros mais les calculs sont très long et je ne pense pas que mon ordinateur supporte sa ;)

Je vais me pencher sur Access, car selon le lien envoyé par michel_m, cela facilite la gestion de millier de ligne.

Par contre je ne m'y connais que très peu avec ce logiciel. Je veux bien des renseignements sur son utilisation.

Toutes les questions peuvent être posées, j'y répondrai le plus rapidement possible.

Cordialement
C3drik58
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 avril 2013 à 13:10
Merci de faire un essai pour répondre à ma question de tout à l'heure:
dis moi si ca ne proteste pas avec les 10000 lignes style "mémoire insuffisante"




0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 20/04/2013 à 14:19
mais normalement cela devrait fonctionner, donc...

ci joint proposition avec les 226 lignes de ton classeur durée env. 3/100 sec (RAM: 512 Mo)
https://www.cjoint.com/?3DuopjgR5d3

remarque s:
1/ calcul de la couverture moyenne en M9: résultat macro-formule identique
divergence pour les autres références

2/ si tu ne connais peu ou très mal Access, bon courage (la "mentalité" est complètement différente d'Excel)
0
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013
21 avril 2013 à 16:36
Merci pour ton aide.

La macro se fait en 0.0625s (RAM 4Go) avec le fichier joint.

Etant novice dans les macros, je suis désolé mais je ne comprend pas en quoi consiste l'action de vérifier si ça ne proteste pas.

1/ Tu as également calculé les taux de rotation et de couverture moyen, ce'st génial.
Mais tu ne trouve pas les même résultats que moi car je me sis rendu compte que mon calcul du stock moyen est mauvaise.
Le vrai calcul est le suivant: Stock moyen =(stock initial+ (stock initial +entrées -sorties)) /2.

2/ Je vais d'abord essayer de passer par une macro pour faire tous ces calculs, pour voir si l'ordinateur que j'utilise habituellement est assez puissant pour faire les calculs.
0
c3drik58 Messages postés 6 Date d'inscription vendredi 19 avril 2013 Statut Membre Dernière intervention 21 avril 2013
21 avril 2013 à 16:40
Comment as tu comptabilisé les mouvements de Transferts (T)? En tant qu'entrée ou de sortie?
Pour l'instant je les calculs en tant qu'entrée, mais cela pourra être modifié dans le futur.

Cordialement.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/04/2013 à 09:58
bonjour,

j'ai suivi tes formules mais mettre des trucs faux quand tu demandes de l'aide n'est pas très élégant; de m^me que je me suis basé sur les références regroupées comme sur ton classeur alors que tu m'avais dit qu'elles étaient dispersées

Je vais d'abord essayer de passer par une macro pour faire tous ces calculs,
Donc j'ai passé plus de 3 heures à bosser à essayer de t'aider pour lire ça!!!!

Ciao
0