XL 2019 Gestion de métrage restant sur une bobine

OlivierS

XLDnaute Nouveau
Bonjour à tous,

Je vous explique mon problème :

Je souhaite mettre en place un outil permettant de faire des sorties de stock sur des rouleaux de tissu.
Le but est que l'opérateur de la machine complète le fichier après avoir débité un certain métrage linéaire de tissu et que mon stock se mette à jour.

Sur la feuille Excel "Commandes + Bobines", c'est moi qui remplirai le tableau. Pour chaque affaire (A001), je remplis en dessous, les bobines de différentes sortes que j'ai besoin pour la réalisation de la commande. Et pour chaque sorte, j'attribue des bobines avec leur numéro d'identification. A droite du numéro de bobine, j'entre le nombre de mètres linéaires de toile que contient ma bobine.

J'ai créé un UserForm pour mon opérateur pour qu'il puisse compléter : la date, son poste, son nom, le n° de commande, le type de bobine, le n° de bobine et qu'il puisse compléter combien de mètres ont été déroulés.

J'ai laissé une case : métrage restant sur la bobine pour qu'il puisse voir combien il reste sur la bobine.

En lisant le forum, j'ai essayé une paire de techniques de combobox en cascade pour gérer la partie "Commande, Désignation bobine, n° de bobine" de mon UserForm mais je ne trouve aucune technique qui fonctionne parfaitement avec mon cas. Et aussi je ne sais vraiment pas comment gérer le fait que selon la bobine sélectionnée, en validant on va pouvoir déduire le métrage restant pour la bobine en question.


Si quelqu'un aurait des solutions pour me faire avancer, je suis à votre écoute. Merci pour l'intérêt que vous porterez à mon problème.

Olivier
 

Pièces jointes

  • FICHIER OK.xlsm
    29.4 KB · Affichages: 6

OlivierS

XLDnaute Nouveau
J'ai juste oublié de préciser que la feuille "Commandes + Bobines" va être modifiée en permanence en fonction des commande en cours de traitement. Donc le type de bobines et leurs numéros va changer en permanence, ce qui rend la chose compliquée pour moi et des solutions que j'ai pu lire toute la matinée sur le forum, je n'en trouve aucune qui convienne à ce cas de figure.

Pensez-vous que la disposition des commandes dans la feuille "Commandes + Bobines" puisse être un problème ? Je ne vois pas comment présenter clairement les choses sinon
 

JM27

XLDnaute Barbatruc
Bonjour
la feuille "Commandes + Bobines" est incompréhensible (pour moi)
Il nous faudrait plus d'explication pour entrevoir une solution.
l'organisation de ta feuille n'est pas exploitable
Pour une affaire (A0001)
Que veut dire bobine sorte A,B,C,D
On peut penser que dans bobine sorte A , il y a Deux bobines qui ont 700 m de tissus . c'est cela ?
Par contre pour l'affaire A0004 , toutes les bobines ont la même référence ? si c'est cela je ne comprends plus et il ne sera pas possible de gérer cela.

Il faudrait gérer cela comme une base de données

voir dans le fichier ci joint mon idée de base de données
 

Pièces jointes

  • Classeur1.xlsm
    41.6 KB · Affichages: 5
Dernière édition:

OlivierS

XLDnaute Nouveau
Bonjour @JM27,

Wow !! C'est fantastique ce que tu as fait ! Je n'en espérait pas tant ! Merci beaucoup !! 😀

Effectivement tu as tout à fait compris ce que j'avais intitulé "Sorte" de bobine "A", "B", "C",... . J'aurais pu appeler ça "Bobine Bleue", "Bobine rouge", ça aurait peut-être été plus clair.

Et pour l'exemple de commande A004, j'avais oublié de modifier les n° de bobines, mais ce sera bien des numéros différents également, chaque bobine est unique.

J'ai juste une petite requête : à la base, je pensais verrouiller la feuille sur laquelle je vais rentrer les infos sur les bobines (feuille "BDD" dans ton fichier) pour qu'elle ne soit modifiable que par les personnes qui gèrent les préparations de commande.
L'option que tu proposes de gérer les affaires par le biais du UserForm est top ! Mais est-ce possible par exemple de demander un code quand on clique sur "gérer mes affaires" ? Un code "1234" par exemple.
Qui bloquerait également la feuille BDD pour que rien ne soit modifiable dedans.

J'ai essayé de protéger la feuille mais ça gène visiblement l'exécution de la macro.

Aussi, admettons que la feuille puisse-être verrouillée et déverrouillée, est-ce possible de laisser le fond de la page actif pendant l'exécution du UserForm ?

Cela permettrait de copier-coller les noms des sortes de bobines, qui en réalité sont un peu complexes, dans le UserForm pendant que je gère les affaires. J'ai déjà essayé les méthodes "hide" et "show" que j'ai découvertes sur ce forum mais sans grand succès.

Encore merci pour ton temps et cette aide précieuse.

Je file essayer de comprendre les nombreuses lignes de VBA !

Belle journée !

Olivier
 

OlivierS

XLDnaute Nouveau
Bonjour @JM27,

Bien sûr voilà le fichier avec les n° à jour.
En sachant que le nombre de caractères dans les n° de bobines ne sont pas toujours de longueur égale selon le fournisseur.

J'ai aussi remarqué un petit disfonctionnement dans le choix du poste :
Il existe deux postes : DM et DG.
Dans le Poste DM : il y a deux personnes , Dans le Poste DG deux personnes aussi
(Dans le fichier que j'avais envoyé au départ j'avais fait une liste déroulante pour choisir DM et DG et ensuite les bonnes personnes s'affichaient selon le poste). Nous n'avons pas d'intérêt à savoir matin ou après-midi.

Tu pourras voir que j'ai rajouté une commande : en lançant une sortie de stock, le métrage de cette dernière commande créé ne s'affiche pas.
 

Pièces jointes

  • Classeur1-V2.xlsm
    41.9 KB · Affichages: 4

JM27

XLDnaute Barbatruc
Bonjour
A tester sans modération, car il peut y avoir encore des bugs
Feuille BDD protégée mot de passe 1234
Feuille mouvement protégée sans mot de passe
J'ai mis l'userform en modeless pour pouvoir accéder aux feuilles sans quitter l'userform
 

Pièces jointes

  • gestion stocks tissu.xlsm
    88.1 KB · Affichages: 5

OlivierS

XLDnaute Nouveau
Vraiment formidable ! @JM27
ça fait plusieurs heures que je joue avec et j'ai l'impression que tout se passe très bien !
Je vais continuer d'agrémenter le fichier en poursuivant les tests mais c'est vraiment un outil génial que tu nous as créé !
Je te tiens au courant quand tout sera fini.
Un immense merci !!!
 

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@JM27

Il y a pas un pb ici ;)

1712737051785.png


Et j'ai bien aimé comment tu as masqué ceci pour éviter le copyright 👍
1712737241124.png
 

JM27

XLDnaute Barbatruc
Bonjour
@Phil69970
Ce sont des noms inutilisés que j'ai oublié de virer
Ci joint correctif.
Je met un label parce que des gens de ce site bien intentionnés ont fait commerce de certaines des mes applis sur leur site et qui ont eu le culot de mettre un copyright dessus.
sachant que cela n'est pas inviolable par des initiés.
 

Pièces jointes

  • gestion stocks tissu.xlsm
    309.9 KB · Affichages: 1

OlivierS

XLDnaute Nouveau
Bonjour @JM27 ,

Merci pour cette version.

Je suis en train d'ajouter des champs dans le formulaire dans l'onglet "Sortie de stock"

1.JPG


Afin d'obliger que la case soit non-vide pour valider, j'ai rajouté ce code (à la fin) :

VB:
Private Sub CmbPanier_Click()
    If Me.ComboPoste.ListIndex = -1 Then
        MsgBox "Le poste doit être défini"
        ComboPoste.SetFocus
        Exit Sub
    End If
    If Me.ComboNom.ListIndex = -1 Then
        MsgBox "Le nom doit être défini"
        ComboNom.SetFocus
        Exit Sub
    End If
    If Me.ComboNumAffaire.ListIndex = -1 Then
        MsgBox "Le numéro d'affaire doit être défini"
        ComboNumAffaire.SetFocus
        Exit Sub
    End If
    If Me.ComboSorte.ListIndex = -1 Then
        MsgBox "Le type de toile doit être définie"
        ComboSorte.SetFocus
        Exit Sub
    End If
    If Me.ComboNumBobine.ListIndex = -1 Then
        MsgBox "Le numéro de la bobine doit être défini"
        ComboNumBobine.SetFocus
        Exit Sub
    End If
    If Me.TxtQuantitéSortie = "" Then
        MsgBox "La quantité sortie doit être définie en mètres linéaires, à la précision du centimètre"
        TxtQuantitéSortie.SetFocus
        Exit Sub
    End If
    If CDbl(Me.TxtQuantitéSortie) > CDbl(Me.LbStock.Caption) Then
        MsgBox "La quantité de toile débitée ne peut être supérieure à la quantité de toile présente sur la bobine"
        TxtQuantitéSortie.SetFocus
        Exit Sub
    End If
    If TextQuantitéStock = "" Then
        MsgBox "Quantité non renseignée"
        Exit Sub
    End If
    If TextNomPlacement = "" Then
        MsgBox "Nom du placement non renseignée"
        Exit Sub
    End If
    If TextNombrePlacement = "" Then
        MsgBox "Nombre de placements réalsisés non renseignée"
        Exit Sub
    End If


L'éxécution échoue et me donne "Variable non définie".
Que dois-je rajouter ?

Aussi, je ne trouve pas l'endroit pour modifier le nombre de colonnes dans la ListBox, afin que ces deyx colonnes "Nom du placement" et "Nombre de placements" y soient insérées également.

Merci
 

OlivierS

XLDnaute Nouveau
Voici le fichier.
Avec le rajout des deux champs que je souhaite faire apparaitre dans la ListBox
Les deux champs sont en saisie libre car les noms de placement et quantité peuvent être divers et variés.



Pour plus tard : Un autre point sur lequel je suis en train de me creuser la tête en regardant ton VBA concernant le code "1234" pour valider.

En fait, comme tu as vu il y a plusieurs opérateurs qui vont saisir les formulaires. Ce qui est courant déjà aujourd'hui avec la version papier c'est que quand il y a eu des erreurs de coupe et que la quantité est trop importante, certains ont malheureusement tendance à écrire le nom du collègue.
Donc ici facile aussi de valider la saisie sous le nom du collègue.
Je réfléchis à la possibilité que chaque utilisateur ait son propre code à 4 chiffres, et que si la correspondance à son nom est bonne, le fichier s'enregistre
 

Pièces jointes

  • gestion stocks tissu-V4.xlsm
    82.6 KB · Affichages: 1

Statistiques des forums

Discussions
312 243
Messages
2 086 539
Membres
103 244
dernier inscrit
lavitzdecreu