Gestion de stok très simplifiée

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Bonjour,
Oui, vous avez raison. Dans le fichier initial, j'avais entré un code empêchant la saisie de doublon dans le tableau (cf fichier joint). Que pensez-vous de cette façon de faire ?
A+
 

Fichiers joints

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Il n'y a jamais eu jusqu'à présent d'assistance à la création d'un nouvel article.
Est-de envisageable ou totalement inutile d'après vous ?
Je veux dire: que pensez-vous d'insérer un bouton permettant, lorsque l'on clique dessus, d'ouvrir une userform contenant les champ « Lot » et/ou « Essai » et/ou « Étape » . L’utilisateur entre alors les renseignements dans les 3 champs et clique sur rechercher.
- Si l’échantillon est dans la base, un message apparait « Échantillon déjà présent dans la base, pour modifier le stock, cliquez sur ajouter ou retirer ». L’utilisateur clique sur ok et l’userform se ferme.
- Si l’échantillon n’est pas dans la base, il reçoit un message « l’échantillon n’existe pas, souhaitez-vous le créer ? ».

Un peu comme discuté dans les posts dont voici les liens:
http://www.excel-downloads.com/forum/117149-modification-donnees-partir-dune-recherche.html

http://www.excel-downloads.com/forum/115062-userform-de-recherche-et-de-modification-des-donnees.html


Dites-moi ce que vous en pensez,
Bonne journée !
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Bonjour
j'avais entré un code empêchant la saisie de doublon dans le tableau (cf fichier joint). Que pensez-vous de cette façon de faire ?
C'est un bon début. Si ça y était dans le fichier à partir duquel j'ai travaillé, c'est bien involontairement que je l'ai effacé. Juste une remarque: travaillez avec les nom de plages (ils ont changé c'est Lot, Alt144tape, Essai maintenant), pas besoin d'explorer toute la colonne A. FStock.[Lot] représente la plage Lot, suivi de .Rows.Count son nombre de lignes, de Rows(x).Value sa valeur à la xième ligne. FStock.[Lot:Essai].Value peut s'affecter à un tableau de Variant dynamique qui aura du coup un certain nombre de lignes et 3 colonnes.
Il n'y a jamais eu jusqu'à présent d'assistance à la création d'un nouvel article.
Est-de envisageable ou totalement inutile d'après vous ?
Envisageable. C'est un euphémisme: fortement nécessaire dans votre cas, j'en ai bien peur !
Mais j'ai conscience qu'il est dommage de ne pas pouvoir profiter de l'UfMvt pour constater l'inexistence et engager la création à cette occasion. Je regarderai un peu ce qu'on peut faire. Le fait que l'ordre des ComboBox est conceptuellement quelconque ne va pas faciliter les choses.
Ce qui serait possible assez simplement et rapidement en attendant, serait d'autoriser la création temporaire de doublons, mais avec derrière une réaction plus intelligente d'UfMvt quand il tombe dessus: Il pourrait par exemple travailler sur la dernière ligne trouvée, et non la première, après avoir collecté et annulé la somme des stocks, voire vidé les lignes précédentes. Il y a déjà un code quelque part qui supprime ensuite les lignes vides. Il pourrait même plutôt les supprimer lui même à la mise à jour.
Une question lancinante m'habite depuis quelques temps: c'est quoi la date de réception ? À quel moment est elle ou devrait-elle être renseignée ? Devraient-elles êtres en principe chronologiques de haut en bas ? Tiens, ça fait 3 question en fait ! Il y en a sans doute plus encore dans l'optique du dernier processus suggéré.
Cordialement.
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Envisageable. C'est un euphémisme: fortement nécessaire dans votre cas, j'en ai bien peur !
Oui, je le crains aussi... Je regarde par-ci par-là pour voir ce qui se fait.


Une question lancinante m'habite depuis quelques temps: c'est quoi la date de réception ?.
Il s'agit de la date à laquelle l'échantillon arrive au labo. Elle peut être importante pour des questions de durée de conservation, non ?

À quel moment est elle ou devrait-elle être renseignée ?
Je pense lors de la création "nouvel échantillon".

Devraient-elles êtres en principe chronologiques de haut en bas ?
Pas nécessairement, je pense qu'un classement par ordre alphabétique de la colonne "Lot" serait plus adapté.


En fait, à la base, j'avais dans l'idée de renseigner la date de réception des échantillons et la personne qui les a réceptionnés pour savoir à qui s'adresser en cas de besoin. Par contre, des mêmes échantillons peuvent être reçus à des dates différentes et par des personnes différentes, donc ça complique fortement le problème...
Peut-être sera-t-il nécessaire d'abandonner tout ça.
Merci Dranreb, tout ceci devient très intéressant!
A+
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Et bien concernant l'assistance à la création d'un nouvel échantillon... J'ai crée un bouton "Nouvel échantillon" et j'ai pu tant bien que mal écrire un code qui fonctionne (il est tellement mal écrit que j'en ai honte, je vais essayer de le retravailler...). Par contre, je perds la fonction d'ajout de ligne au tableau au fil de la saisie de nouveaux échantillons et donc la macro permettant de voir l'état du stock. On doit pouvoir régler tout ça ! Je vais continuer !
A+
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

En fait, à la base, j'avais dans l'idée de renseigner la date de réception des échantillons et la personne qui les a réceptionnés pour savoir à qui s'adresser en cas de besoin. Par contre, des mêmes échantillons peuvent être reçus à des dates différentes et par des personnes différentes, donc ça complique fortement le problème...
Peut-être sera-t-il nécessaire d'abandonner tout ça.
Une alternative serait d'inclure la date de réception des produits ainsi que le nom de la personne qui les a reçus dans le tableau de suivi (Archive). Ces critères n'apparaitront plus sur le tableau principal mais resteront visibles dans l'historique. Qu'en pensez-vous ?
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

je perds la fonction d'ajout de ligne au tableau au fil de la saisie de nouveaux échantillons et donc la macro permettant de voir l'état du stock.!
C'est bien pire que ça ! Si les lignes ajoutées ne sont pas dûment insérées devant la dernière, il s'en suit que les plages nommées ne les couvrent pas ! UfMvt travaille avec les plages nommées, elle doivent impérativement couvrir les lignes ajoutées.
On doit pouvoir régler tout ça !
Déclarons en tête du module FStock:
VB:
Option Explicit
Dim LFin As Long
Et à la fin:
Code VBA faux, voir plus loin.
Private Sub InsérerLigne()
With Me.[Lot]: LFin = .Row + .Rows.Count: End With
With Me.Rows(LFin - 1): .Copy: .Insert: End With
Intersect(Me.Rows(LFin), Me.[Lot:Nom]).ClearContents
End Sub
Dans votre code:
VB:
InsérerLigne
Me.[Lot].Rows(LFin).Value = … etc.
P.S; Non, stop, je dis une bêtise. Je doit réécrire mon InsérerLigne pour que ça puisse marcher comme ça.
Voilà qui est fait:
VB:
Private Sub InsérerLigne()
Dim Tablo As Range: Set Tablo = Me.[Lot].EntireRow
LFin = Tablo.Rows.Count
With Tablo.Rows(LFin): .Copy: .Insert: End With
LFin = LFin + 1: Me.[Lot:Nom].Rows(LFin).ClearContents
End Sub
Ce qui m'a trompé c'est qu'un code très analogue était déjà écrit dans la Worksheet_SelectionChange. Vous croyez que je me serais amusé à écrire cette absurdité apparente si j'avais pu l'éviter ? insérer devant elle même une copie de la dernière puis l'effacer ! Mais bon sang, me direz vous, c'est comme d'insérer tout simplement une nouvelle ligne derrière ! Eh bien pour Excel pas du tout ! En faisant comme ça toutes les références qui allaient jusqu'à la dernière ligne iront dorénavant jusqu'à la NOUVELLE dernière ligne ! Ce n'est pas seulement vrai pour les références des noms de plages, mais pour toutes les références. Celle dans une formule qui se référait à la dernière ligne, une zone d'impression qui allait jusque là, tout !


En résumé du post précédent, relatif au problème des entrées, c'est bien ce que j'avais hélas entrevu. Et je suppose qu'il est incorrect de combler une demande supérieure à un stock à l'aide d'un doublon plus récent. La possible "intelligence" améliorée d'UfMvt doit donc être revue à la baisse.
Il pourrait néanmoins supprimer automatiquement les doublons les plus anciens dont le stock est vide et se positionner pour la mise à jour sur la ligne d'échantillon qui le suit. L'ordre chronologique serait pour l'instant le plus adapté car les lignes iso-arguments sont rendues par PaquetSsDoublon à UfMvt dans leur ordre d'origine.
Existe-t-il seulement des échantillons pouvant, en raison de leur nature peu sensible, faire l'objet d'entrées en stock au sens où UfMvt sait les faire ? Sinon, il faudrait peut être le cantonner aux sorties et écrire autre chose pour les entrées.
À +
 
Dernière édition:

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

En résumé du post précédent, c'est bien ce que j'avais hélas entrevu. Et je suppose qu'il est incorrect de combler une demande supérieure à un stock à l'aide d'un doublon plus récent. La possible "intelligence" améliorée d'UfMvt doit donc être revue à la baisse.
Il pourrait néanmoins supprimer automatiquement les doublons les plus anciens dont le stock est vide et se positionner pour la mise à jour sur la ligne d'échantillon qui le suit. L'ordre chronologique serait pour l'instant le plus adapté car les lignes iso-arguments sont rendues par PaquetSsDoublon à UfMvt dans leur ordre d'origine.
C'est peut être une solution... celle sur laquelle nous devrons nous rabattre.

Existe-t-il seulement des échantillons pouvant, en raison de leur nature peu sensible, faire l'objet d'entrées en stock au sens où UfMvt sait les faire ? Sinon, il faudrait peut être le cantonner aux sorties et écrire autre chose pour les entrées
Ils existent mais sont pour le moins minoritaires... Je me demande ce qu'il est possible de faire pour répondre à tous ces critères...

A+
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Bonjour Dranreb !
J'ai essayé de chercher comment résoudre mon problème... Croyez-vous qu'une solution serait de passer par un tableau croisé dynamique ? Je vous explique ce que j'entends par tableau dynamique parce que je maîtrise mal le langage excel...
Je me disais que l'on pourrait créer un tableau (A) qui serait rempli automatiquement à l'aide l'userform de saisie, on aurait ainsi accès à toutes les entrées (même les doublons avec les dates de réception et la personne ayant réceptionné les produits, le volume reçu...).

Il pourrait néanmoins supprimer automatiquement les doublons les plus anciens dont le stock est vide et se positionner pour la mise à jour sur la ligne d'échantillon qui le suit.
Un deuxième tableau (B), lié au tableau (A), ne reprendrait que les entrées "Lot", "Essai", "Étape" en compilant les doublons. Le reste du tableau B serait semblable à celui que vous avez posté dernièrement. On pourrait réaliser les opérations de sortie de stock uniquement, les entrées étant réalisées dans lors du remplissage du tableau (A).
Je suis par avance désolée si cette idée est stupide... :eek: Dites moi ce que vous en pensez,
Bonne journée à vous,
A+
 
Dernière édition:

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Désolée, je pense qu'effectivement j'ai fait un abus de langage en parlant de tableau dynamique croisé...
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Bonjour.
S'il est assez rare de devoir entrer une nouvelle combinaison des 3 arguments, il serait possible de prévoir dans UfMvt la saisie de la date de réception et, lorsqu'elle est renseignée, la création systématique d'une nouvelle ligne avec reconduction du seuil d'alerte.
Si ça n'arrive que quelquefois, on devrait quand même pouvoir finir par trouver une solution via UfMvt.
Si c'est très fréquent, je ne vois pas bien pour l'instant ce qu'on pourrait faire d'utile pour faciliter l'entrée en stock.
En attendant, il faut absolument pouvoir accéder à tous les doublons depuis UfMvt. Il s'en suit que la Qté à retirer n'est plus corrigée si elle dépasse le stock (c'était dangereux de toute façon, on pouvait ne pas s'en apercevoir) car on peut encore changer de doublon après l'avoir saisie et tomber ainsi sur un stock suffisant. Bien sûr, le bouton "Ok" n'est utilisable que s'il l'est.
J'ai aussi prévu la possibilité de classer la feuille Stock en sélectionnant simplement un titre.
Joyeux Noël !
À +
 

Fichiers joints

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Joyeux Noël !!
Merci pour le fichier ! Par contre j'ai une erreur dans le code à ce niveau dans l'UfMvt :
Code:
Private Sub Habiliter()
TbxQté.Enabled = LDbl > 0
If TbxQté.Enabled Then
   Ligne = Lignes(LDbl)
   Stock = FStock.[StockDispo].Rows(Ligne).Value
   LabMsg = "Réc. " & Format(FStock.[DatRécep].Rows(Ligne).Value, "dd mmm yyyy") & " — Stock actuel: " & Stock & " ml"
   NavMoins.Enabled = LDbl > 1: NavPlus.Enabled = LDbl < UBound(Lignes)
Else
   Stock = 0: TbxQté.Text = "": LabMsg = ""
   End If
BtOk.Enabled = TbxQté.Enabled And Qté <> 0 And Stock + Qté >= 0 And CbxSignat.ListIndex >= 0
End Sub
Je me demande s'il est possible de répondre à tous les souhaits que j'avais émis... Mais à l'impossible, nul n'est tenu !
Merci encore Dranreb !
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

À quelle ligne exactement ? Quelle erreur ? Déboguez, mettez des espions, déroulez en pas à pas.
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Ligne 60 : problème avec Format j'obtiens l'erreur suivante: "Erreur de compilation: Projet ou bibliothèque introuvable".
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

J'obtiens la même erreur mais sur le code suivant (ligne 19 de l'utilit):

Code:
Function NomPlage(Optional ByVal Rg As Range, Optional ByVal Déf As String = "") As String
Dim Nom As String
If Rg Is Nothing Then
   Set Rg = Application.Caller
                    Nom = NomPlage(Rg.Offset(1, 0))
   If Nom = "" Then Nom = NomPlage(Rg.Offset(0, 1))
   If Nom = "" Then Nom = NomPlage(Rg.Offset(-1, 0))
   If Nom = "" Then Nom = NomPlage(Rg.Offset(0, -1))
Else
   On Error Resume Next: Nom = Rg.Name.Name
   If Err <> 0 Then NomPlage = Déf: Exit Function
   End If
NomPlage = Mid$(Nom, PosPExcla(Nom) + 1)
End Function
Par contre impossible de mettre des espions, dès que débogue, le message d'erreur apparait immédiatement...
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

J'y suis arrivée ! Miracle !
J'ai simplement dé-sélectionné les références manquantes...
Ouf!
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Dranreb : félicitations !! C'est impressionnant !
Si ça n'arrive que quelquefois, on devrait quand même pouvoir finir par trouver une solution via UfMvt.
Si c'est très fréquent, je ne vois pas bien pour l'instant ce qu'on pourrait faire d'utile pour faciliter l'entrée en stock.
Malheureusement, ça arrive très fréquemment... bien plus qu'une nouvelle réception d'échantillons déjà présents dans le stock. Devons-nous abandonner cette idée...
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

Devons-nous abandonner cette idée...
Je le crains. La recherche d'existence de l'échantillon ne sert à rien: il faut l'entrer qu'il existe ou non, et ce sur une nouvelle ligne de toute façon. La saisie semi-automatique permettra de reprendre les Lot, Étape, Essai existants tels qu'ils ont été tapés un jour. Il reste juste la question du seuil d'alerte. Est-il connu d'une certaine façon à la réception ?
Une validation de donnée sur le nom serait possible en autorisant la liste =LstSignat
Calculez aussi des trucs dans de nouvelles colonnes avant l'État du stock. Notamment =AUJOURDHUI()-DatRécep avec format remis Standard après entrée de la formule. Introduisez si possible une notion de péremption. Dans l'État du stock, distinguez Stock vide de Stock bas: le classement en cliquant sur ce titre permettra ainsi d'avoir tous les vides ensembles, classés par date de réception, d'où ménage plus facile en supprimant un groupe de lignes.
Cordialement
 

alias_2003

XLDnaute Occasionnel
Re : Gestion de stok très simplifiée

Calculez aussi des trucs dans de nouvelles colonnes avant l'État du stock. Notamment =AUJOURDHUI()-DatRécep avec format remis Standard après entrée de la formule. Introduisez si possible une notion de péremption. Dans l'État du stock, distinguez Stock vide de Stock bas: le classement en cliquant sur ce titre permettra ainsi d'avoir tous les vides ensembles, classés par date de réception, d'où ménage plus facile en supprimant un groupe de lignes.
C'est une excellente idée !! Je vais regarder tout ça !

Il reste juste la question du seuil d'alerte. Est-il connu d'une certaine façon à la réception
Oui, sans problème ! Ce qui me conforte dans l’idée d'une modification ou plutôt la création d'un nouvel Usf permettant l'aide à la saisie des échantillons ("lot", "étape", "essai", "seuil" et entrée en stock) et leur modification (notamment en cas d'ajout au stock). L'UfMvt serait conservé pour les sorties du stock. Qu'en pensez-vous ? Totalement farfelu ?
A+
 

Dranreb

XLDnaute Barbatruc
Re : Gestion de stok très simplifiée

J'argumentais plutôt pour abandonner l'idée, vu que la majeure partie des entrées se faisait pour de nouveau échantillons. Je signalais des avantages et possibilités pour la saisie directe après sélection de "Ajouter ICI". Qu'apporterait la recherche de la combinaison pour les rares fois où elle s'y trouvait déjà ? Même pas le seuil d'alerte à appliquer qui d'après ce que vous dites est connu par une autre voie, et pas d'avantage d'identification de lieu de stockage vu qu'il n'est pas géré. Quant à la correction des informations saisies dans la ligne elle peut être vérifiée dans une Worksheet_Change et/ou par des validations de données. Alors...
 

Discussions similaires


Haut Bas