besoin d'aide pour modifier code vba et userform

moutchec

XLDnaute Occasionnel
Bonjour à tous,

Dans le fichier en annexe, j'aimerais qu'au moment de la création du lot via le deuxième onglet de l'userform , deux menus déroulants soient proposés pour entrer deux emplacements et deux cases pour entrer la quantité correspondant à chaque emplacement, au moins un emplacement et une quantité supérieure à zéro doivent être renseignés pour pouvoir valider l'entrée en magasin.
Si un seul emplacement et sa quantité sont renseignés alors une seule ligne est ajoutée dans la feuille STOCK et une ligne dans la feuille MOUVEMENT. Si deux emplacements sont renseignés et des quantités supérieures à zéro pour chaque emplacement alors deux lignes sont créés dans la feuille STOCK et deux lignes dans le feuille MOUVEMENT.

A la sortie ou à l'apport de quantité via le premier onglet de l'userform , si deux emplacements existent , ils doivent être proposés tous les deux avec possibilité de sortie ou d'apport d'un seul emplacement en renseignant la quantité zéro au second emplacement ou possibilité d'apport ou de sortie dans les deux emplacements à la fois .
En cas de choix de sortie ou d'apport d'un seul emplacement, zéro est renseigné dans la quantité à mouvementer du second emplacement et dans ce cas aucune modification ne doit être faite dans la ligne du lot correspondant à cet emplacement dans la feuille STOCK et aucun historique ne doit être ajouté dans la feuille MOUVEMENT.
La ligne du lot dont la quantité descend à zéro est supprimée de la feuille STOCK.
Si un seul emplacement existe alors la place pour le deuxième emplacement devient gris et pas modifiable.
.
J'espère avoir été clair dans mes explications.
Merci de m'aider s'il vous plaît.
 

Pièces jointes

  • Copie de GESTION STOCK new.xlsm
    106.6 KB · Affichages: 75

ChTi160

XLDnaute Barbatruc
Bonjour moutchec
Bonjour le fil,Le Forum
peux tu m'expliquer ce que tu entends par :
pour déplacer sans sortir du stock une partie de la quantité d'un emplacement pour un lot qui n'est stocké qu'à un seul emplacement ou déplacer en totalité la quantité d'un emplacement vers un autre pour un lot qui est déjà stocké dans deux emplacements différents.
si tu déplaces une partie de la quantité stockée à un endroit ou deux , le stock sera donc scindé en deux ,que doivent afficher les Lignes Source et Cible ? car tu dis "sans sortir du stock "
je m'explique , j'ai en stock dans le magasin "Site - hall A" , "Rack 1 - A" , "710 kg"
1° je veux transférer une partie de cette Quantité soit "350 kg " vers "Site - hall E" , "Sol 2""
en feuille Stock et Mouvement , j'aurais quoi après le transfert ?
sachant que le reste des références ne changent pas : "Lot , références au produit , etc"
ex : "Site - hall A" , "Rack 1 - A" , "360 kg"
et dessous "Site - hall E" , "Sol 2" ,"350 kg"
Idem , si c'est la totalité qui est transférée , y aura t'il toujours la trace du Stock dans le Magasin Source
ex :"Site - hall A" , "Rack 1 - A" , "0 kg" ou "Site - hall A" , "Rack 1 - A" , "710 kg" malgré le transfert
et dessous "Site - hall E" , "Sol 2"" ,"750 kg"
ou alors supprime t'on la ligne :"Site - hall A" , "Rack 1 - A" , "750 kg"
y aura t'il une indication qui précise ou qui permet de savoir qu'il y a eu transfert ?
une autre question qui me vient en feuilles Stock et Mouvement on devrait avoir les mêmes références aux éléments constitutifs des Stocks , donc les données à rechercher pour alimenter les différentes recherches dans Userform ( les Numéros de lot ,les Magasins etc etc) peuvent l'être à partir de la seule feuille Stock : dis moi ?
Merci par avance
Bonne journée
Amicalement
Jean marie
 
Dernière édition:

moutchec

XLDnaute Occasionnel
bonjour,
pour le premier exemple, de 710kg d'un lot qui est stocké à un seul emplacement"Site - hall A" , "Rack 1 - A" : si on transfère 350 kg " vers "Site - hall E" , "Sol 2"".
résultat 1/ = comme pour toutes les actions, l'historique doit être ajouté dans la feuille mouvement. il reprend dans ce cas les infos du lot qui ne changent pas (code - nom - nature...) dans la feuille mouvement, ces infos sont repris + le nouvel emplacement + quantité + date de mouvement + précision qu'il s'agit d'un transfert depuis l'emplacement source.
résultat 2/ = dans la feuille stock une nouvelle ligne du lot est crée avec le nouvel emplacement , la nouvelle quantité .
résultat 3/ = l'ancien unique emplacement du lot voit sa quantité amputée de la valeur transférée et devient 360 kg
en fin de compte le lot garde toujours sa valeur de départ c'est à dire 710 kg.
si c'est la totalité des 710 kg qui est transférée, alors l'action est renseignée dans la feuille mouvement pour l'historique. dans la feuille stock la ligne existante du lot est juste modifiée au niveau de l'emplacement.

dans le fichier, l'élément central est le lot et toutes les autres infos y sont liées. le lot est fabriqué avec une quantité précise qui ne peut que décroitre par la suite (sauf retour client qui génère un apport) jusqu'à épuisement. un numéro de lot n'existe qu'une fois et un lot produit ne change pas de caractéristiques. les données entrées au moment de la création du lot restent les mêmes dans tous les emplacements que le lot aura occupés dans son parcours. donc les recherches doivent se faire à partir du numéro de lot.
merci bcp.
 

moutchec

XLDnaute Occasionnel
bonsoir jean marie,
je viens de faire quelques tests et honnêtement, je n'espérais pas tant au niveau de la forme!
voici quelques bugs :
1/ lorsqu'il n'y a aucune donnée sur le feuille stock l'userform ne se lance pas.
2/ dans le premier onglet, le date du mouvement et le commentaire doivent être modifiables à la sortie ou à l'apport de quantité. le bouton "modifier stock" ne fonctionne pas pour le moment.
3/ dans le deuxième onglet, tout emplacement déjà existant dans la feuille stock ne doit plus être proposé dans le menu déroulant au moment du choix de l'emplacement.
4/ au niveau de l'onglet transfert, bug dans le choix de l'emplacement source lorsqu'il y a deux emplacements.
encore merci pour vos efforts.
bon week-end
moutchec
 

moutchec

XLDnaute Occasionnel
PS
en fait, je me rends compte que le bug dans l'onglet transfert venait du fait que les données que j'avais rentrées via l'userform n'étaient pas bien positionnées dans la feuille stock. je présume que ca va s'affiner.
merci bcp.
 

ChTi160

XLDnaute Barbatruc
Bonjour moutchec
Bonjour le fil ,Le Forum

J'avance , mais Tout n'est pas réglé Lol
Quelques aménagements de l'Interface et réponses à certaines demandes (bugs) .
Une autre question , comment trouve t'on les Codes Magasin ?
il y a la mention , dans les feuilles Stocks et Mouvements , mais ???? , pas trouvé le truc Lol
peux tu me réexpliquer l'utilisation des feuilles Stocks et Mouvements . lorsque l'on rentre un nouveau Stock doit on mettre les données dans ces deux feuilles ou alors seulement dans Stock . etc etc
Peux tu m'expliquer les différents cas de figure possibles ? (exemples comme tu sais le faire Lol)
Bonne fin de journée
Amicalement
Jean marie
 

Pièces jointes

  • GESTION STOCK new-Chti160-1.5.4.2.xlsm
    264.3 KB · Affichages: 47

moutchec

XLDnaute Occasionnel
bonjour jean marie,
en fait dans le fichier tel qu'il existait, à l'entrée en stock et au transfert, on faisait le choix du magasin (A B C D ou E ) et dans le menu déroulant de l'emplacement on devait ensuite choisir le code magasin puis en validant l'entrée dans le stock ou le transfert, c'est le code VBA qui faisait la traduction du code magasin sur les feuilles stock et mouvement.
exemple = choix du magasin = A
code magasin = SAR01A
le code VBA le traduisait sur les feuilles stock et mouvement comme ceci :
S = "Site Hall "
A = "A"
R = "Rack"
01 = "01 "
A = "A"
donc je ne rentrais pas le détail des emplacements dans l'userform mais uniquement le magasin (A B C D ou E) puis le code magasin, ceci pour réduire la palette de choix dès lors que le magasin est connu.
voici la partie du code en question :
.Cells(LigneDestinationMouvement, 6) = "Site - hall " & Right(Left(Me.LbCodeMagasin.Caption, 2), 1)
If Right(Left(Me.LbCodeMagasin.Caption, 2), 1) = "A" Then
If Right(Left(Me.LbCodeMagasin.Caption, 3), 1) = "R" Then
.Cells(LigneDestinationMouvement, 7) = "Rack " & Right(Left(Me.LbCodeMagasin.Caption, 5), 2) & " - " & Right(Me.LbCodeMagasin.Caption, 1)
ElseIf Right(Left(Me.LbCodeMagasin.Caption, 3), 1) = "S" Then
.Cells(LigneDestinationMouvement, 7) = "Sol " & Right(Me.LbCodeMagasin.Caption, 2)
End If
Else
If Right(Left(Me.LbCodeMagasin.Caption, 3), 1) = "R" Then
.Cells(LigneDestinationMouvement, 7) = "Rack " & Right(Left(Me.LbCodeMagasin.Caption, 5), 2)
ElseIf Right(Left(Me.LbCodeMagasin.Caption, 3), 1) = "S" Then
.Cells(LigneDestinationMouvement, 7) = "Sol " & Right(Me.LbCodeMagasin.Caption, 2)
End If
End If
ElseIf Left(Me.LbCodeMagasin.Caption, 1) = "E" Then
.Cells(LigneDestinationMouvement, 6) = "hors Site" entrée

sur la feuille stock, il ne doit y avoir que le stock réel, donc entrée en stock - sortie + apport donc sur cette feuille, soit le lot vient d'être crée, dans ce cas toutes les infos se mettent : colonnes A à J, soit le lot existe et est modifié sur sa quantité et/ou son emplacement et dans ces cas seule la colonne de la quantité et/ou de l'emplacement sont modifiés.
la feuille mouvement est en quelque sorte un grand cahier qui enregistre toutes les actions les unes après les autres : un historique.

UN GRAND MERCI POUR TOUT.
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour Moutchec
Bonjour le Fil ,Le Forum
Juste pour voir si j'avance dans le Bon Sens Lol
Bonne journée
Amicalement
Jean marie
Ps : Peux tu m'expliquer en quoi Consiste un Ajout et Un Prélèvement à un Stock existant ? avec exemples Lol
 

Pièces jointes

  • GESTION STOCK new-Chti160-1.5.5.xlsm
    276.6 KB · Affichages: 53
Dernière édition:

moutchec

XLDnaute Occasionnel
Bonjour, le fichier avance bien et dans le bon sens.
une chose dans l'onglet "prélèvement/apport" (plus avancé que les autres onglets) que la date du mouvement et le commentaire soient modifiables pour par exemple mettre la date du jour et en commentaire une référence ou un évènement particulier.
merci bcp.
 

moutchec

XLDnaute Occasionnel
bonjour,
le prélèvement est l'étape normale après la création du lot. il s'agit en réalité des livraisons aux clients. dans plus de 50% des cas, c'est la totalité du stock du lot qui part pour un client donné mais certains lots partent tout doucement à différents clients.
donc une sortie du lot en totalité ramène la quantité à zéro et dans ce cas la ligne du lot est supprimée de la feuille stock et une ligne de l'action avec la date et le commentaire entrés via l'userform est crée dans la feuille mouvement pour l'historique.
en cas de sortie partielle, la quantité mouvementée est retirée du stock du lot sur la feuille stock qui doit toujours afficher le stock réel en temps réel et une ligne de l'action est crée sur la feuille mouvement pour l'historique. cette ligne doit reprendre la date et le commentaire entrés via l'userform .
- sur la feuille stock, une fois le lot crée, seule sa quantité doit être modifiable en apport ou prélèvement . le ligne du lot est supprimée une fois son stock épuisé.
-NB l'emplacement aussi peut être modifié mais uniquement en cas de transfert
- la feuille mouvement quant à elle reprend toutes les infos de l'action entrées via l'userform .

les apports viennent de deux sources :
1/ un lot partiellement produit à cause d'un manque de matière et à compléter ultérieurement
2/ un retour client. dans ce cas je fais un apport si le lot est encore en stock sinon je le crée à nouveau.
merci et bonne soirée.
Moutchec.
 
Dernière édition: