XL 2013 Inventaire avec code a barre

sendra

XLDnaute Nouveau
Bonjour Forum ,
j'ai besoin de faire un inventaire avec douchette
j'ai scan le code a barre,il faire copier et coller le code dans le tableau et si le code répéter plusieurs fois il donne toujour le nombre a chaque fois dans la même ligne
 

Pièces jointes

  • Inventaire.xlsx
    8.4 KB · Affichages: 22

soan

XLDnaute Barbatruc
Inactif
Bonjour sendra,

c'que j'ai fait marche très bien avec une saisie au clavier ; j'sais pas si ça marchera avec une douchette ; comme j'en n'ai pas (et qu'j'ai pas besoin d'en acheter une), j'ai pas essayé. ;) mais j'pense quand même que ça pourra te servir, ne serait-ce que si c'est juste en tant que piste ; note bien qu'au départ, les colonnes A et B sont vides (à part les en-têtes "Code" et "Nombre") ; saisies successives en J2, et résultats correspondants :

01) 123 ➯ A2 : 123 ; B2 : 1
02) 124 ➯ A3 : 124 ; B3 : 1
03) 125 ➯ A4 : 125 ; B4 : 1
04) 124 ➯ B3 : 2
05) 126 ➯ A5 : 126 ; B5 : 1
06) 127 ➯ A6 : 127 ; B6 : 1
07) 124 ➯ B3 : 3
08) 126 ➯ B5 : 2
09) 128 ➯ A7 : 128 ; B7 : 1
10) 127 ➯ B6 : 2
11) 127 ➯ B6 : 3 (pour le 127 : retape 127, ou appuie sur F2 puis Entrée)
12) 126 ➯ B5 : 3
13) 123 ➯ B2 : 2
14) 126 ➯ B5 : 4

ne tape pas 01) à 14) : c'est juste le n° de l'étape dans la procédure à suivre.



tu l'auras compris, il y a ces 2 cas différents :

a) quand la référence n'est pas dans la liste :
ça l'ajoute avec à droite une quantité de 1​

b) quand la référence existe déjà dans la liste :
ça augmente la quantité correspondante de 1



si la configuration de la douchette est telle que ça scanne un code barre en J2 puis que ça y ajoute automatiquement un code de touche Entrée, ça devrait marcher ! :)



Code de la feuille "Inventaire" :

VB:
Option Explicit

Dim cel As Range, chn$, lig&

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .CountLarge > 1 Then Exit Sub
    If .Cells(1).Address(0, 0) <> "J2" Then Exit Sub
    chn = .Value: Set cel = Columns(1).Find(chn, , -4163, 1, 1)
    If cel Is Nothing Then
      lig = Cells(Rows.Count, 1).End(3).Row + 1
      Cells(lig, 1) = chn: Cells(lig, 2) = 1
    Else
      With Cells(cel.Row, 2): .Value = .Value + 1: End With
    End If
  End With
End Sub

à te lire pour avoir ton avis. ;)

soan
 

Pièces jointes

  • Inventaire.xlsm
    15.8 KB · Affichages: 42

Discussions similaires

Réponses
13
Affichages
306

Statistiques des forums

Discussions
312 088
Messages
2 085 199
Membres
102 816
dernier inscrit
bolivier