Gestion de stock excel VBA URGENT

rushdie Messages postés 3 Date d'inscription vendredi 20 mars 2009 Statut Membre Dernière intervention 25 juin 2009 - 6 juin 2009 à 03:27
rushdie Messages postés 3 Date d'inscription vendredi 20 mars 2009 Statut Membre Dernière intervention 25 juin 2009 - 6 juin 2009 à 23:08
Bonjour,

J'ai commencé à développer une application de gestion de stock pour une association qui distribue des repas à des démunis à Bruxelles (qui est française à l'origine...).
J'ai créé deux formulaires de saisie:
 -l'un pour encoder des entrées (avec des champs:type de produit, date de péremption, quantité, unité de mesure,...)
 -l'autre pour encoder des sorties (avec des champs similaires).

Le problème, c'est que j'aimerais calculer le stock réel mais je ne sais pas comment faire... Il faudrait que je sois en mesure de vérifier le stock réel par type de produit, par fournisseur, par date de péremption.

Comment faire?

J'ai pensé à un tableau croisé dynamique mais ça foire parce que parfois des produits ayant la même dénomination, n'ont pas la même unité de mesure (par exemple le produit "soupe" peut être exprimé en litre ou en gramme ou en kilo).

Je suis tombé sur une application mais dont le code est protégé.

Merci d'avance pour votre aide.

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juin 2009 à 13:52
Salut
Les tableaux dynamiques croisés (TCD) ne sont jamais faciles à manipuler mais sont très puissants.
Je viens de faire un test avec ces données :

La colonne total est la multiplication de "Qté" avec "Pack"

puis, j'ai créé ce TCD :

Il correspond à ce que tu recherches ?
Quand tu crées le TCD :
- Sélectionne la zone des données, ici A1:E7 (colonne 1 = A)
- Lance la création d'un TCD et valide (suivant) la première question sans rien changer
- Valide (suivant)  ensuite la plage des cellules
- Choisis l'emplacement de ce TCD (autre feuille ou même feuille) + Terminé
Le TCD se présente maintenant vide.
Une popup te propose la liste des champs | colonnes de ta sélection (Qté, Quoi, Pack, Unité, Total)
- Prends "Quoi" et dépose-le dans la colonne de gauche "Déposez champs de ligne ici"
- Prends maintenant "Unité" et place le à droite dans la zone "Déposez champs de colonne ici"
- Il ne te reste plus qu'à déposer "Total" dans la zone "Déposer Données ici"

Voilà, tu as ton tableau

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juin 2009 à 13:59
et crotte, ces insertions d'images ne marcheront donc jamais ... grr
Voilà les captures :
         
0
rushdie Messages postés 3 Date d'inscription vendredi 20 mars 2009 Statut Membre Dernière intervention 25 juin 2009
6 juin 2009 à 15:01
Un super grand merci. Je vois comment faire.
J'ai encore deux questions:

1) avec ces tableaux TCD, serait-il possible de les associer à un userform "Stock réel par produit" que j'ai déjà créé et qui reprend une liste déroulante des produits (il y en a 93 différents) et un bouton annuler /valider, exemple

Si l'on sélectionne "Riz", on aurait une feuille excel avec le stock réel Riz.

J'ai créé d'autres userform qui reprennent d'autres champs (date de péremption, l'emplacement, produits entrés,...)

2) dans les formulaires j'ai mis des DTPickers (pour que l'utilisateur puisse encoder la date de péremption et la date de réception des produits). J'ai un problème de format. Sur ma feuille Excel, où les données encodées apparaissent, le champ date de péremption apparait sous la forme 12:00:00 AM

Voici le code associé au transfert des données sur la feuille:

Dim LigneSuivante As Long
Sheets("Entrées").Activate
LigneSuivante = Application.WorksheetFunction.CountA(Range("A:A")) + 2
'transfert des données sur premiere ligne
Cells(LigneSuivante, 1) = TextBox6.Text
Cells(LigneSuivante, 2) = TextBox5.Text
Cells(LigneSuivante, 3) = TextBox7.Text
'premier dtpicker
Cells(LigneSuivante, 4) = DTPicker2.Value
Cells(LigneSuivante, 5) = ComboBox1.Text
Cells(LigneSuivante, 6) = Produit.Text
Cells(LigneSuivante, 7) = ValUnit.Text
Cells(LigneSuivante, 8) = Condt.Text
Cells(LigneSuivante, 9) = QEntre.Text
Cells(LigneSuivante, 10) = QSortie.Text
Cells(LigneSuivante, 11) = QStock.Text
'deuxième dtpicker
Cells(LigneSuivante, 12).Value = DatePer.Value
Cells(LigneSuivante, 13) = DateDest.Text
Cells(LigneSuivante, 14) = validite.Text
Cells(LigneSuivante, 15) = Rackalpha2.Text
Cells(LigneSuivante, 16) = Numrack.Text
'Vider les contrôles pour la prochaine entrée*
End If
Msg = "Voulez-vous encoder une nouvelle entrée?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbYes Then
UserForm1.Show
Else
Sheets("Entrées").Activate
End If
End Sub

J'aimerais juste que le format soit celui d'une date.

Un grand merci.
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juin 2009 à 17:31
Re
-1- Oui, bien sûr
Il te suffit de fabriquer un TCD traitant toutes tes fiches. Au fur et à mesure que tu modifieras ou complètera cette liste, il faudra penser à rafraichir le TCD
Tu obtiendras autant de ligne que de désignation : c'est ce qui, je pense, doit se retrouver dans ta ComboBox de choix
A droite des articles, tu obtiens une série de colonnes reflètant les divers conditionnement (kg, litre, ...) : ce sont les données que tu pourras afficher une fois le choix fait dans ta combo.
Pour alimenter ce ComboBox, il te suffit de créer une macro qui aille lire la colonne de gauche du TCD et les stocke dans ta ComboBox.
Pour afficher les valeurs des colonnes, au moment d'un changement de sélection de la ComboBox, aller rechercher dans le TCD la ligne correspondant à l'item choisi, pui d'en extraire les valeurs à droite et les associer à tes TextBox ou autre.

-2- Ceci vient du format du DTPicker et aussi de ta cellule.
Pour chacun des deux, impose leur un format :
Cellule --> Format date
DTPicker --> personnaliser --> format

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
rushdie Messages postés 3 Date d'inscription vendredi 20 mars 2009 Statut Membre Dernière intervention 25 juin 2009
6 juin 2009 à 23:08
Coucou,


Un grand merci pour vos réponses.


Je vais travailler dessus demain.


A plus.
0
Rejoignez-nous