Gestion des stocks : douchette / Tableur Excel 2007

Signaler
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018
-
Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012
-
Bonjour à tous,

J'ai réalisé un classeur Excel qui gère les stocks de plaquettes d'usinage pour ma société.

Le but maintenant est de scanner un code barre correspondant au nom de la plaquette à l'aide d'une douchette (DataLogic Touch 65 en USB)

puis des fenêtres apparaissent et l'opérateur choisit le jour (lundi à samedi) et la quantité de plaquettes sorties ou entrées dans l'armoire. (soit 3 infos)

La cellule correspondante se remplit alors avec la valeur indiquée.

Ainsi l'opérateur gère le stock mini à l'aide des saisies douchette.

Voici pour info en image le fichier établit :

http://www.hostingpics.net/viewer.php?id=332088Stock.jpg

Est - ce un programme difficile à réaliser et faisable ?

J'ai déjà réalisé une macro qui remplit des colonnes selon la plaquette mais pas en automatique et sans fenêtre d'informations.

Si quelqu'un peut m'aider... J'ai uniquement les bases en VBA mon niveau est débutant.

Merci d'avance
A voir également:

21 réponses

Messages postés
115
Date d'inscription
dimanche 6 avril 2003
Statut
Membre
Dernière intervention
29 juin 2012

bonjour
question N°1 comment ça marche un code barre ?
est ce que ça correspond a une valeur?
si cette valeur est trouvée alors faire action prévue....
question N°2 est ce que le jour (lundi à samedi)choisit est le jour actuel?
si oui alors le jour actuel est le jour choisit...
question N°3 lundi y a t il deja un stock ?
stock reporté + Entree - Sortie = stock final...
@+JP
Messages postés
124
Date d'inscription
mercredi 23 novembre 2005
Statut
Membre
Dernière intervention
19 septembre 2013
3
Bonjour,
Il manque un gros morceau dans ton problème : Comment fonctionne ta douchette ?
Essaie de récupérer l'information lue par la douchette quelque soit le format.
Une fois que tu as réussi, le plus gros est fait.
Excel ne sert que d'interface "final" pour stocker (?) et afficher les valeurs. Ta macro devra :
[list]
[*] récupérer la valeur lue par la douchette en lui précisant l'endroit où elle se trouve
[*] Afficher le formulaire
[*] Ecrire la valeur dans la bonne case
/list
Sur les 2 derniers points, n'importe qui du forum pourra te renseigner. Mais à toi de trouver le premier point. Ou donne nous plus d'informations sur ta douchette (as tu un driver, ... ?). Si elle avait une autre utilité essaie de voire comment ca marchait...
Yann
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

Bonsoir à vous 2 et merci de vous préoccuper de mon problème avec attention.

J'utilise le logiciel Barcode qui génère des codes barres en EAN 128 (alphanumériques). Chaque code barre est en fait un mot (chiffres et lettres) qui fait référence à une plaquette sous forme de code interne.

Par exemple en prenant le tableau : en bipant un code barre avec la douchette la plaquette T490 LNMT 1306PNTR etc s'appelle en interne CPLTOUSAN01 et s'affiche. On sait faire le lien entre un code CPL et une désignation plaquette.

Il faudrait une zone avec des cellules (ou une unique cellule) où l'on place le curseur, bip un code, et au lieu d'afficher le code 'CPL...' comme ferait une douchette, la cellule appelle une MsgBox qui demande des infos et selon ces infos va chercher la cellule à remplir et remplit une quantité (un nombre entre 1 et 1000).

Le jour (lundi mardi etc) correspond en effet au jour actuel. Pour les semaines je crée un fichier Excel avec 50 feuilles par exemple nommée S1 S2 S3 S4 etc... il faudrait que le code soit universelle à toutes les feuilles si possible (je ne sais pas si c'est difficile à mettre en oeuvre).

En effet le stock final est le stock du jour d'avant + les entrées - les sorties mais on peut gérer ces calculs par formules pas besoin de macro car il suffit que les chiffres apparaissent pour chaque jour et les stocks se calculent automatiquement.

Je ne comprend pas bien la question de tri_yann quand au principe de fonctionnement. Le code barre peut générer n'importe quoi lettres chiffres nombre texte... Il faut que la macro détecte le bip (facile à faire une cellule se remplit) puis que la cellule lance un message qui demande le jour (sauf si on peut paramétré que : jour = jour actuel) puis entrée ou sortie ? et la quantité puis va chercher dans une base de donnée qui sera une feuille du classeur régulièrement mis à jour.

Quel est le but final ?

- Qu'on BIP le code barre au lieu d'écrire T490 LNMT 1306 PNTR (risques d'erreurs)
- Qu'on ne se trompe ni de ligne ni de colonne (magnifique !)


C'est pas si compliqué je pense si c'est bien expliqué :)

Bonne soirée messieurs si vous avez des idées divines à me proposer ;) je suis preneur

Merci
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Bonjour,
La donnée "saisie" par le code barre alimente le contrôle qui a le focus.
A toi de jouer, donc, avec :
- une textbox
- le traitement, à ta guise, de la donnée ainsi "recue" (dans l'évènement Change de la textbox)
Juste une question de stratégie


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

Pour le message sa donne quelque chose du style :

Sub Interrogation()


' Déclaration des variables :
Dim x As String
Dim y As String
Dim z As String
Dim l As Integer
Dim m As String
Dim n As Integer


RetourArrière:

x = InputBox("Veuillez saisir un jour" _
& vbNewLine & vbNewLine & "Lundi à Samedi", "Saisie du Jour")

If x = "" Then Exit Sub

l = Val(x)

If l <> (Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi) Then

MsgBox "Veuillez vérifier votre saisie"

GoTo RetourArrière

End If

RetourArrière1:

y = InputBox("Entrée ou Sortie", "Saisie de l'action")

If y = "" Then Exit Sub

m = Val(y)

If m = <> (entrée, entree, sortie) Then

MsgBox "Veuillez vérifier votre saisie"

GoTo RetourArrière1

End If

RetourArrière2:


z = InputBox("Veuillez saisir une quantité" _
& vbNewLine & vbNewLine & "Puis la vérifier", "Saisie quantité plaquettes")

If z = "" Then Exit Sub

n = Val(z)

If n < 1 Then

MsgBox "Veuillez vérifier votre saisie"

GoTo RetourArrière1

End If

End Sub




Sauf le 'Si différent de lundi mardi mercredi ...'

comment le mettre ?


Puis comment choisir la bonne case une fois les infos en possession du tableur ?

Merci :)
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
C'est très étrange : je ne vois nulle-part, dans ton code, l'utilisation d'une douchette ! Juste des inputboxes (interventions manuelles, donc) !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

La douchette sert uniquement à saisir un mot dans une cellule qui va permettre de définir la ligne du tableau :)

Pour ne pas parler de douchette on peut considérer que je saisis le mot (ligne du tableau) manuellement, c'est la même chose

Et oui il faut croire que l'homme doit travailler et que Excel ne peut pas tout faire
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Non, ce n'est pas la même chose du tout (et ce sont des expressions conditionnelles à mettre dans l'évènement Change, comme dit plus haut) qui doivent intervenir et passer d'une cellule à l'autre

Et tes nouvelles questions s'écartent par contre maintenant de l'objet de ton premier message et concernent d'autres aspects bien distincts du premier.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

Le but n'a pas changé c'est de remplir une cellule avec un nombre selon les infos données dans les Messages.

Maintenant si tu ne peux pas m'aider c'est pas grave j'ai bien expliqué mon but.

Et ce n'est pas de la fainéantise notoire
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Je veux bien t'aider, mais ton problème n'a alors plus rien à voir avec ton 1er exposé !:
Je constate dans ton code des lourdeurs à corriger, ce que je vais faire. Encore me faudrait-il savoir la raison de ceci, par exemple :
l = Val(x)
If l <> (Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi) Then

Qu'est supposée être la saisie faire par l'utilisateur ? un numérique (genre 1,2 ... etc ...) ou du texte ("Lundi", "Mardi", etc ...) ?
Car Val("Mardi") = 0 ! comme d'ailleurs val("blabla") !
Peux-tu être clair sur ce point ?

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

Ok je comprend, excuse moi je pensais que tu critiquais mon post (ce que je peux comprendre vu ma connaissance en VBA, logique )
y'a pas de soucis, autant pour moi.

l = Val(x)
If l <> (Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi) Then...

=> Si la saisie dans la box est différente de ces mots (avec l as string) alors

ouverture d'une MsgBox : Veuillez vérifier votre saisie

Il faudrait faire des Box successives (numérique et texte) :

Message 1 : demande du jour (texte)
Message 2 : demande si entrée ou sortie (tete)
Message 3 : demande de la quantité à saisir dans la cellule (nombre)

Finit ... les calculs se font tout seuls pour les stocks
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Nous sommes donc très (mais vraiment très) loin et de la douchette et du reste ...
Nous en sommes à la case départ : à savoir comment traiter une valeur saisie et faire en sorte qu'elle corresponde à ce que l'on attend :
C'est tout un apprentissage, à faire
Je ne vais surtout pas traiter l'intégralité de ton appli. Ce n'est pas mon genre et tu l'as toi-même relevé en écrivant :
Et ce n'est pas de la fainéantise notoire

en référence probable (plus que probable) au commentaire accompagnant mon profil
Passons à l'essentiel (les fondements eux-mêmes).
On ne peut tout mélanger (strings, val, variables etc...)
Il faut d'abord apprendre à maîtriser chaque chose, et cela ne s'invente pas, mais se buche.
Prenons donc ton premier groupe, que tu as écrit ainsi :
x = InputBox("Veuillez saisir un jour" _
& vbNewLine & vbNewLine & "Lundi à Samedi", "Saisie du Jour")

If x = "" Then Exit Sub

l = Val(x)

If l <> (Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi) Then

MsgBox "Veuillez vérifier votre saisie"

GoTo RetourArrière

End If

et qui ne peut "marcher", bien évidemment :
Regarde maintenant ce que fait ceci (sans tes goto à l'italienne - les spaghetti -) :
Private Sub CommandButton3_Click()
  Dim toto As String
  toto = "on s'en moque"
  Do While verifie(toto) = 0
     toto = InputBox("Veuillez saisir un jour, sous la forme Lundi, Mardi, etc ...samedi et dimabche exclus")
  Loop
  If toto <> "" Then MsgBox "la preuve : tu as choisis " & toto & ", qui est le jour de rang " & verifie(toto)
End Sub
Private Function verifie(toto As String) As Integer
  If toto "" Then verifie True: Exit Function
  For i = 1 To 5
    If UCase(WeekdayName(i)) UCase(toto) Then verifie i
  Next
End Function

Analyse, comprends et sers-t'en pour toutes tes autres inputboxes.
Voilà où et comment s'exprime et s'arrête mon aide. Le reste, c'est ta propre volonté.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
j'espère que tu auras compris que dans :
For i = 1 To 5
je ne laisse passer que du Lundi au Ventredi.
Si tu veux inclure le samedi, ce sera bien sûr jusqu'à 6 et non 5
Bonne et sérieuse étude.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Je ne veux pas te quitter sans te dire deux ou trois "petites" choses :
- je n'ai pas écrit ce code par la grâce de dieu ! J'ai analysé, testé, etc ...(je me suis "retroussé les manches" pour écrire ce que je n'ai jamais écrit ni n'écrirai jamais dans mes applis. )
- s'il s'agissait de l'une de mes applis, j'aurais présenté une listbox à l'utilisateur, avec les seules valeurs admises (du Lundi au Samedi).
Tout ceci pour te dire cela : il a fallu que je réfléchisse et "me foule" pour "coller" à ton mécanisme (un mécanisme que je n'adopterais jamais pour moi-même). Tout a donc été "nouveau" pour moi. Tire tes conclusions.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

oui j'ai bien compris ce code

mais je vois pas trop le lien avec le fait que si je choisis un jour et une valeur une cellule doit se remplit

ce code me demande un jour et indique le rang du jour.
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

La conclusion et bien que je dois m'adapter aux codes existants pour construire le mien ...

Qu'il n'existe pas et qu'il doit être fait...

Que les bases c'est pour tout le monde les mêmes.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Ouais ?
Ce code fait ce que "tendait" à vouloir faire le tien (sans y parvenir) ! C'est tout !
Quant au reste "une cellule doit se remplir" ===>> c'est vraiment trop basique (pour autant que tu saches laquelle et avec quoi).
Moi, je te laisse maintenant là car je n'ai pas l'intention de participer à la constructions d'une appli pas à pas. Ce n'est pas le rôle d'un forum technique.
Bonne continuation.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
62
Date d'inscription
mercredi 25 mars 2009
Statut
Membre
Dernière intervention
30 décembre 2018

2 Pages de blabla pour finalement me dire que tu ne m'aidera pas, autant ne pas participer au sujet et ne pas répondre que de booster tes 8000 messages déjà écrit.

S'ils sont tous aussi bénéfique que ceux de ce sujet ... Je vois pas l'intérêt.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
Non.
Permets-moi de corriger :
2 pages pour découvrir que :
- tu pars d'un sujet
- tu dérives vers d'autres
- tu cherches à faire faire, pas à pas, ton appli.
Je te souhaite bonne chance, dans une telle démarche, en te rappelant qu'elle ne correspond pas au règlement de ce forum.
Le "blabla", c'est ce que tu as fait en exposant des choses diverses pour aboutir à chacune de ces choses, une par une.
J'ai traité deux points : le premier, de manière assez générale, le second, en corrigeant ce que tu avais écrit.
Ce sera tout en ce qui concerne la présente discussion. Je ne suis pas là pour faire ton appli (si d'autres ont en envie, qu'ils viennent à leur tour)
Si tu as un point spécifique et isolé (et j'ai l'impression de ce que tu en as encore beaucoup) à traiter : ouvre une discussion sur ce seul point, sanbs l' "inonder" d'autres aspects.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
233
et je viens de découvrir :
et ne pas répondre que de booster tes 8000 messages déjà écrit

Mouarf ! Tu as tout deviné ! C'est ma préoccupation essentielle ! Chacun le sait bien, à commencer par les mieux informés !
PS : faudra-t-il, pour stopper ce genre de commentaire idiot, que je recommence une fois de plus tout à zéro ? Ce ne serait jamais que la 4ème fois !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ