Excel et le scan

Résolu
santi1 -  
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Bonjour, j'ai un petit soucis je dois faire un inventaire de plus 100 références avec leur quantités et cela avec une douchette et lorsque je scanne des codes-barres de ma référence s'affiche bien dans ma cellule Excel mais le problème que je dois déplacer la souris dans la deuxième case pour la quantité donc il m'a demandé du temps , hors je souhaiterai que après chaque scanne le déplacement des cases se fait automatiquement ,en fait j'ai besoin seulement de deux colonnes une pour le référence et l'autre pour la quantité et je veux scanner sans utilisé la souris pour le déplacer (A1 pour le premier scan B1 pour le 2ème scan puis A2...) . Si quelqu'un a des suggestions.
Merci d'avance.
A voir également:

4 réponses

redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam santi1.

Je pense que cette macro fera l'affaire :
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Cells(Target.Row, 2).Select
If Target.Column = 2 Then Cells(Target.Row + 1, 1).Select
End Sub

Tiens-nous au courant si ça marche ou pas :)
1
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
MERCI REDAIWA pour votre réponse :)
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Pour insérer cette macro dans votre fichier, procéder comme suit :
1- Sélectionner le code de la macro ci-dessus et faire CTRL+C (pour le copier)
2- Clic-droit sur l'onglet de la feuille excel pour ouvrir l'éditeur VBA.
3- Faire CTRL+V pour coller le code dans VBA.
4- Faire ALT+F11 pour retourner au fichier excel
5- Travailler comme d'habitude et voir si ça fonctionne.

Salam.
0
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
oui ca marche :) merci beaucoup pour votre aide (y)
0
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
bonjour
en fait j'ai une autre demande si possible ,je veux ajouter à ce fichier une bouton on l'appel entré lorsque je clique il n'emmène à une autre fichier excel ou je vais transférer mes données à ce fichier et qui fait la somme des quantités si on trouve la même référence ,et je veux le premier fichier soit actualisé pour un nouveau scan est possible ? je suis débutante en VBA ,en fait je fais une auto-formation pour aider un magasinier qui fait beaucoup de travail et qui perde beaucoup de temps
merci d'avance
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam santibella.

Soit le fichier de scan que nous appellerons "FichierEntrées.xlsm" (contient le code macro) et le fichier stock que nous appellerons "FichierStock.xlsx". Ces deux fichiers doivent être tous les deux ouverts.

Procédons comme suit :
1 - Créer un bouton de commande sur la feuille de scan.
2 - Copier le code suivant :
Dim LigneEntrées, LigneStock, LigneFinStock As Integer
Dim Trouve As Boolean
With Workbooks("FichierStock.xlsx").Worksheets("Feuil1")
LigneFinStock = .Range("A1").End(xlDown).Row
While Range("A2") <> ""
LigneStock = 2
Trouve = False
While LigneStock <= LigneFinStock And Not Trouve
If Range("A2") = .Range("A" & LigneStock) Then
.Range("B" & LigneStock) = .Range("B" & LigneStock) + Range("B2")
Trouve = True
Else
LigneStock = LigneStock + 1
End If
Wend
Rows(2).Delete
Wend
End With

3 - Clic-droit sur le bouton de commande puis clic sur "Visualiser le code".
4 - Faire CTRL+V pour coller le code ci-dessus.
5- Retourner à la feuille de scan et tester si le clic sur le bouton créé transfère bien les quantités scannées vers le fichier stock.

Exemple de fichiers entrées et stock : https://www.cjoint.com/c/EDCnLwPZOqo

Fais-moi signe en cas de problème ;)
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Pour pouvoir ajouter un nouvel article qui n'existe pas dans le fichier stock, il faut ajouter ce bout de code :
    If Not Trouve Then
.Range("A" & LigneStock) = Range("A2")
.Range("B" & LigneStock) = Range("B2")
LigneFinStock = .Range("A1").End(xlDown).Row
End If


Pour récapituler, l'ensemble du code sera ainsi :
Private Sub BoutonTransférerEntrées_Click()
Dim LigneStock, LigneFinStock As Integer
Dim Trouve As Boolean
With Workbooks("FichierStock.xlsx").Worksheets("Feuil1")
LigneFinStock = .Range("A1").End(xlDown).Row
While Range("A2") <> ""
LigneStock = 2
Trouve = False
While LigneStock <= LigneFinStock And Not Trouve
If Range("A2") = .Range("A" & LigneStock) Then
.Range("B" & LigneStock) = .Range("B" & LigneStock) + Range("B2")
Trouve = True
Else
LigneStock = LigneStock + 1
End If
Wend
If Not Trouve Then
.Range("A" & LigneStock) = Range("A2")
.Range("B" & LigneStock) = Range("B2")
LigneFinStock = .Range("A1").End(xlDown).Row
End If
Rows(2).Delete
Wend
End With
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Cells(Target.Row, 2).Select
If Target.Column = 2 Then Cells(Target.Row + 1, 1).Select
End Sub


J'espère que cela vous sera utile.
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Lors du transfert vers le fichier stock, pour ne pas prendre en compte le premier caractère qui est "P" pour la référence ou "A" pour la quantité, il faut modifier la ligne suivante :
.Range("B" & LigneStock) = .Range("B" & LigneStock) + Range("B2")

par celle-ci :
.Range("B" & LigneStock) = .Range("B" & LigneStock) + right(Range("B2"),len(Range("B2"))

et aussi remplacer ces lignes :
      .Range("A" & LigneStock) = Range("A2")
.Range("B" & LigneStock) = Range("B2")

par celles-ci :
      .Range("A" & LigneStock) = Right(Range("A2"), Len(Range("A2")) - 1)
.Range("B" & LigneStock) = Right(Range("B2"), Len(Range("B2")) - 1)
0
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
merci monsieur redaiwa pour toutes vos efforts ça m'a vraiment aidé
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Tout le plaisir est pour moi.
Je reste disponible en cas de besoin :)
0
santibella
 
bonjour ,
j'ai testé les deux fichier tous ca marche bien mais il y a une problème lorsque je fais le scan pour le 2 eme fois pour le même référence il ne fait pas la somme des quantités .vous pouvez m'aider s'il vous plait
cordialement
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Salam santibella.
Dans le fichier stock, il y a deux colonnes par date. Laquelle faut-il prendre en compte pour le cumul ?
0
santibella
 
le premier colonne en fait je dois fusionner les deux colonnes
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Re Salam.
Ok, j'ai trouvé l'erreur.
Dans le code suivant
    While LigneStock <= LigneFinStock And Not Trouve
If Trim(Right(Range("A" & LigneEntrées), Len(Range("A" & LigneEntrées)) - 1)) = Trim(.Range("A" & LigneStock)) Then
.Cells(LigneStock, ColonneJour) = Right(Range("B" & LigneEntrées), Len(Range("B" & LigneEntrées)) - 1)
Trouve = True
Else
LigneStock = LigneStock + 1
End If
Wend

remplace
.Cells(LigneStock, ColonneJour) = Right(Range("B" & LigneEntrées), Len(Range("B" & LigneEntrées)) - 1)

par
.Cells(LigneStock, ColonneJour) = .Cells(LigneStock, ColonneJour) + Right(Range("B" & LigneEntrées), Len(Range("B" & LigneEntrées)) - 1)


NB: j'ai pris en compte la 1ère colonne de chaque date.
0
santibella
 
bonjour ,
j'ai une question s'il vous plait , je peux ouvrir le deuxième fichier (FichierStock.xlsx) dans un autre pc ?
0
redaiwa Messages postés 351 Date d'inscription   Statut Membre Dernière intervention   119
 
Cela nécessite une gestion réseau et une technicité que je ne possède pas.
0
santibella Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
mercii pour votre reponse ainsi pour tous le travail que vous faites
0