Retrouver une cellule dans une liste par un scan douchette

APEED

XLDnaute Nouveau
Bonjour,

Je vais bientôt faire l'inventaire de la ludothèque associative dans laquelle je suis bénévole.
J'aimerai mettre en place un fichier excel qui me permette de:
-m'envoyer directement à la ligne du jeu scanné et de colorier cette nul ou de marquer dans la colonne "A" "OK"
-remettre à 0 la cellule du scan H5 tout en maintenant la validation des autres lignes précédemment scannées.

Je pense que je dois passer par une macro mais j'avoue que je ne suis pas très douée pour ça.

Lorsque je scanne le code barre d'un jeu, c'est le code du jeu qui apparait dans la cellule "SCAN"

Je vous mets mon document en pièce jointe et vous remercie par avance
 

Pièces jointes

  • INVENTAIRE.xlsx
    118 KB · Affichages: 72

Hurricane.Tn

XLDnaute Nouveau
Bonjour Bruno, en faite le principe c'est que lors du scanne a l'envoi il doit y avoir 2 personnes 1 préparateur et 1 vérificateur (bien sûr différent) et un livreur.
Donc le préparateur il scanne son code (code avec @) ensuite il scanne les articles, et ce stade la pour obliger l'utilisateur a scanner le code du vérificateur et celui du livreur j'ai pas trouver le moyen que lors du scanne au retour, donc avant de scanner les articles au retour les cellules nom du vérificateur et nom du livreur dans la partie préparation et livraison et la cellule nom du livreur et nom du vérificateur composition dans la partie retour et vérification doivent être remplis, après pour vérifier la présence du nom vérificateur consommation j'ai pas trouvé le moyen mais je pense comme vous avez dit un bouton validation c une bonne idée qui peut être créer pour les deux un bouton pour valider l'envoi et qui vérifiera la présence des champs obligatoires et donnera la main pour le scanne au retour et un autre bouton pour valider les autres champs et enregistrer le fichier.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
j'ai fait comme demandé, explication en fichier.
Que fait l'onglet quand c'est finit, on imprime et hop on efface et on recommence (ou autre) c'est là que des boutons pourraient faire l'affaire.
Faire les essais sur ce fichier car si tu transfère la macro sur un fichier qui n'a pas les même données en même place ca va pas
Bruno
 

Pièces jointes

  • mouvements stockBIS.xlsm
    33.6 KB · Affichages: 12

youky(BJ)

XLDnaute Barbatruc
Hello
A ceux que ca intéresse . . .
voici un énième fichier avec macro différente du précédent.
La protection de la feuille et le plus des boutons aide beaucoup.
La cellule en jaune est celle ou l'on peut scanner.
Tout est sous protection sans MP
Bruno
 

Pièces jointes

  • mouvements stockBIS2.xlsm
    33.8 KB · Affichages: 22

Hurricane.Tn

XLDnaute Nouveau
Bonjour Bruno, j'ai reçu 2 nouveaux produits avec 2 code barre différents et qui ne contiennent pas "/", pour les différencier seulement a travers le nombre de caractère dans le code barre donc je me suis basé sur les anciens codes que vous avez mis et j'ai essayer d'écrire ce code pour résoudre le souci, pouvez vous me dire si il est correct, merci.
j'ai essayer de changer ce code:
If Target.Value Like "*/*" = False Then
MsgBox "Code Barre Incorrect", vbExclamation, "ANNULATION"

par celui la:
If Target.Value Like "*/*" = False Then
lng = Len(Target): gtin = Mid(Target, 3, 14)
ref1 = Application.VLookup(gtin, Sheets(2).Range("'BD Articles'!A:C"), 2, False)
If lng < 29 Then lot1 = Mid(Target, 19, lng) Else lot1 = Mid(Target, 27, lng)
lig = Application.Match(ref1, [A:A], 0)
If Not IsNumeric(lig) Then MsgBox "inexistant": Exit Sub
Application.EnableEvents = False
Range(lda) = Date: Beep
Cells(lig, 7) = lot1: Cells(lig, col) = Cells(lig, col) + 1: Target = ""
Target.Select
Application.EnableEvents = True
Exit Sub
End If

en précisant que pour effectuer la recherche des référence produits j'ai créer une feuille dans le fichier (BD Articles) qui contient les Gtin produit et leurs référence.
 

youky(BJ)

XLDnaute Barbatruc
Bonjour,
C'est bien, j'ai plus de boulot . . .
Petit plus à apporter
ref1 = Application.VLookup(gtin, Sheets(2).Range("'BD Articles'!A:C"), 2, False)
Sheets(2) est à éviter d'ailleurs il fait doublon avec Range( "BD Articles'!....
(2) est un index, si on déplace l'onglet c'est tout faux . Moi je fais
Application.VLookup(gtin,Feuil1.[A:C], 2,False) 'Feuil1 est le Codename qui ne peut être changé que par VBA
C'est à gauche de BD Articles en fenêtre des projets.
<29 c'est maxi 28 souvent on se fait avoir
Sinon je pense que c'est bon.
Et bravo
Bruno
 

youky(BJ)

XLDnaute Barbatruc
Pour avancer le code de la douchette indique quoi comme chiffre pour 7543540
Dans la macro j'ai vu que tu avais mis seulement dans le code 'Retour' de toute façon le Mid est à revoir.
Donc que dit le code de la douchette pour trouver 7543540 . . . . .!
Bruno
 

youky(BJ)

XLDnaute Barbatruc
hé non ca passe pas pour l'autre donc voici la partie de macro
ceci à faire aussi en 'retour
Bruno
VB:
If Target.Value Like "*/*" = False Then
lng = Len(Target): gtin = Target.Text
gtin = Mid(Target.Text, 3, 14)
lg = Application.Match(gtin, Feuil2.[A:A], 0)
If Not IsNumeric(lg) Then MsgBox "Non trouv?": GoTo fin
If IsNumeric(Feuil2.Cells(lg, 2)) Then
lig = Application.Match(Val(Feuil2.Cells(lg, 2)), Feuil1.[A:A], 0)
Else
lig = Application.Match(Feuil2.Cells(lg, 2), Feuil1.[A:A], 0)
End If
If Not IsNumeric(lig) Then MsgBox "inexistant": GoTo fin
If lng < 29 Then lot1 = Mid(Target, 19, lng) Else lot1 = Mid(Target, 27, lng)
Application.EnableEvents = False
Cells(lig, 7) = lot1: Cells(lig, col) = Cells(lig, col) + 1: Target = "": Beep
Target.Select
Application.EnableEvents = True
GoTo fin
End If
 

Discussions similaires