Comptabiliser le nombre de scan effectué par une douchette

SANDRA2012

XLDnaute Junior
Bonjour,

Je suis completement perdu, j'ai besoin de votre aide!
j'ai des numéros de lot dans la colonne A (A4 A5 ect)
Ces numéros de lot sont créer par une autre macro et il y en a beaucoup.
Je voudrais que mes scan de numéro soit comptabilisé grâce à un lecteur datamatrix (ma cellule pour scanner est G5) dans la colonne C (à partir de C4)
et surtout que chaque numéro de lot soit reconnu et comtabilisé par ligne

Merci pour votre aide

bonne journée
 

Pièces jointes

  • création numéro de lot FORUM.xlsx
    107.9 KB · Affichages: 51
  • création numéro de lot FORUM.xlsx
    107.9 KB · Affichages: 49
Dernière modification par un modérateur:

Philippe Tulliez

XLDnaute Nouveau
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,
Personne ne peut m'aider ?
je donnerais volontiers un coup de main mais je n'ouvre pas d'emblée les classeurs à télécharger sauf si après un certain nombre d'échanges on arrive pas à une solution.
Le fait d'enregistrer manuellement ou avec une douchette ne change rien au problème.
Explique où se trouve la liste de ce que tu enregistres avec la douchette (plage de cellules) et affiche les procédures que tu utilises pour réceptionner chaque enregistrement et l'écrire dans la plage en question.
Pour dénombrer le nombre de cellules dans une plage, il suffit déjà d'utiliser la fonction NBVAL
Exemple rapide
Pour enregistrer les pièces entrées par la douchette, j'utilise pour ma part la procédure événementielle dans une liste qui contient trois colonnes
Colonne 1 le code barre(EAN 13)
Colonne 2 Le libellé de l'article (Fonction RECHERCHEV)
Colonne 3 Le prix de l'article (Même fonction)
Le ticket de caisse est alimenté par un tableau croisé dynamique donc la procédure se limite à actualiser le tableau croisé dynamique
Voilà le code de cette procédure
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
  If .Column = 1 Then
   Me.PivotTables("pvtTicket").PivotCache.Refresh
  End If
 End With
End Sub
Pour cet exemple très simple, l'option de déplacement de sélection après validation est forcée vers le bas à l'activation de la feuille
Code:
Dim Direction As Integer ' Déclaration de variable en tête du module de la feuille
Private Sub Worksheet_Activate()
 ' Force le déplacement de sélection après validation vers le bas
 With Application
  Direction = .MoveAfterReturnDirection
  .MoveAfterReturnDirection = xlDown
 End With
End Sub
Remettre l'option dans son état initial, lorsque l'on quitte la feuille
Code:
Private Sub Worksheet_Deactivate()
 Application.MoveAfterReturnDirection = Direction
End Sub
Il y a bien entendu d'autres possibilités
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,
Merci pour la réponse.

En fait je crée des numéros de lot manuellement, ceux ci s'affiche dans la colonne A, ces numéros identifient des objets que je dois laver. Je scan ces objets à chaque fois qu'ils sont laver afin de connaître le nombre de lavage.
Je souhaite donc que dès que je scan un numéro celui ci ajoute 1 dans la colonne C en face du numéro scanné.
Je vais avoir de nombreux numéro de lot et il ne faut pas qu'il y ai d'erreur.
Je viens de me mettre sur les macro je m'en suis sortie jusqu'à présent avec les codes mais là je sèche!
J'ai essayé de commencer mais je n'aboutie à rien ! je tourne en rond depuis hier.

est il possible d'avoir une solution à ce problème ?

Merci d'avance
 

Philippe Tulliez

XLDnaute Nouveau
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,
Pourquoi n'édites-tu pas le code que tu as réalisé en disant où tu bloques.
As-tu essayé à l'aide de la fonction NBVAL (c'est le rôle de cette fonction de dénombrer le nombre de de cellules remplies) en référençant la colonne où se trouve les codes scannés
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

Voilà ce que j'avais commencer à faire mais je ne sais pas quoi mettre pour que les cellules de la colonne A étant donné que ce sera aléatoire.
Je n'utilise pas NBVAL car il ne peut représenter que 255 arguments et j'en aura beaucoup plus.
Je n'ai pas de code pour faire en sorte qu'excel prenne directement en compte le scan sans cliquer sur un bouton

'je compare la colonne A avec la cellule H5
Dim i, Lne As Integer
For i = 1 To 8
If Range("A" & i).Value = Range("H5").Value Then Lne = i
Next i
Range("C") = Lne
Si ma cellule H5 correspond à une cellule de la colonne A alors en C de la même ligne on ajoute 1
With.Sheets("CYCLE ").Select
If (Range("H5")) = Une cellule de la colonne A Then '
Range("la cellule de la colonne C sur la même ligne que celle de la colonne A").Value = Range("la cellule de la colonne C sur la même ligne que celle de la colonne A ").Value + 1
End If
End With
End Sub
 

Philippe Tulliez

XLDnaute Nouveau
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,
Je n'utilise pas NBVAL car il ne peut représenter que 255 arguments et j'en aura beaucoup plus.
Pourquoi as-tu besoin de 255 arguments ? C'est bien la première fois que je suis confronté à une personne qui a besoin d'autant d'arguments surtout pour NBVAL. As-tu lu l'aide en ligne pour cette fonction et as-tu au moins essayé de l'utiliser ?
Code:
=NBVAL(A2:A10000)
Va renvoyer le nombre de cellules remplies dans les cellules de la plage A2:A10000
Je n'ai pas de code pour faire en sorte qu'excel prenne directement en compte le scan sans cliquer sur un bouton
Il n'y a pas de code particulier et cela ne dépends pas d'excel mais du lecteur.
Tous les lecteurs on un code barre avec la manière dont doit être envoyé la lecture. Il faut choisir le bon code qui doit envoyer le CrLf (Carriage Return Line feed)

Que dois-tu faire exactement ?
Lire le code barre dans une colonne ?
et ensuite que dois-tu faire de ces éléments lus ?
Et après faut-il effacer la colonne lue ?
et ainsi de suite.
Une bonne analyse des besoins est la première chose à faire avant de commencer à programmer.
L'exprimer ensuite par écrit te permettra d'obtenir une réponse pertinente et détaillée.
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

En effet en listant par écrit ça me semble plus claire !
NBVAL ne convient pas pour ce que je veux faire ou sinon je ne comprend pas à quoi sert cette fonction.
j'ai refais avec des exemples de numéro de lot mon fichier

Voici ce que j'ai poser par écrit :
Je scan l'étiquette de mon objet dans la cellule G5, exemple le lot V26V1 qui se trouve en A13
mon numéro est reconnu dans la colonne A soit en A13
mon scan est comptabilisé sur la même ligne mais dans la colonne C soit en C13
mon scan doit être ajouté aux scan déjà éffectué c'est à dire ici il y a 5 scan et après mon scan je passe à 6
une fois comptabiliser ma cellule G5 s'efface pour pouvoir être sur que mon scan a bien été comptabilisé
et je peux de nouveau scanner un autre numéro

Je vais retenter un code avec cette liste
 

Pièces jointes

  • création numéro de lot FORUM.xlsx
    108.1 KB · Affichages: 34
  • création numéro de lot FORUM.xlsx
    108.1 KB · Affichages: 42

Modeste

XLDnaute Barbatruc
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour SANDRA2012, Philippe Tulliez,

De ce que je crois comprendre, effectivement NBVAL ne conviendrait guère (mais j'insiste sur le conditionnel!)

Si en G5 n'apparaît que le code d'un article unique, puis qu'au clic sur le bouton "Enregistrer", il faut repérer la position dudit code en colonne A et incrémenter d'une unité le nombre dans la même ligne, en colonne C, ceci (à placer dans un module standard et à associer au bouton) devrait faire le début du travail:
VB:
Sub ENREGISTRER()
With Sheets("CYCLE")
    If .[G5] = "" Then Exit Sub
    numLigne = Application.Match(.[G5], .[A:A], 0)
    If IsNumeric(numLigne) Then Cells(numLigne, 3) = Cells(numLigne, 3) + 1
    ' prévoir un traitement éventuel si code inconnu
End With
End Sub
Je n'ai pas effacé le contenu de G5; il faut que tu précises s'il y a des cas particuliers à gérer (exemple un code scanné qui n'existe pas en colonne A)
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,
Le code fonctionne parfaitement bien ! merci beaucoup mais j'aimerais ne pas avoir à cliquer sur le bouton enregistrer afin que ça s'enregistre directement lorsque que j'ai scanné mon code que faut il ajouter?
Pourrais tu m'expliquer le code que tu m'as donner ligne par ligne s'il te plais car je ne le comprends pas trop!
j'ai une autre petite colle tu pourrais de nouveau m'aider?
merci pour ta réponse
Bonne journée
 

Modeste

XLDnaute Barbatruc
Re : Comptabiliser le nombre de scan effectué par une douchette

Bonjour,

Il est peut-être possible d'exploiter l'événement Worksheet_Change ... mais c'est à vérifier! Si on inscrit "manuellement" un code en G5, ça fonctionne, mais je ne sais pas si ce sera toujours le cas quand tu scannes :confused:

Peux-tu copier les lignes suivantes, non plus dans un module standard, mais dans la fenêtre de code de la feuille "CYCLE"
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> "$G$5" Then Exit Sub 'on ne passe à la suite que si c'est G5 qui est modifiée
     If Target = "" Then Exit Sub 'si la cellule G5 est vide, on quitte la procédure
     numLigne = Application.Match(Target, [A:A], 0) 'même chose que: =EQUIV(G5;A:A;0) ... donne le n° de ligne du code en G5
     If IsNumeric(numLigne) Then Cells(numLigne, 3) = Cells(numLigne, 3) + 1 'si le code a été trouvé, on ajoute 1 à la cellule de la ligne en question, en colonne C
    ' prévoir un traitement éventuel si code inconnu
End Sub

Il reste toujours la question des cas particuliers à laquelle tu n'as pas répondu!?

Pour ta "petite colle", je m'attends au pire ;) Ne devrait-elle pas faire l'objet d'un autre fil? Ce qui est certain, c'est qu'il faudra que tu prennes le temps d'expliquer en détail et de manière structurée.
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

normalement il n'y aura jamais de cas particulier les numéros sont créer automatiquement par une autre macro dans une autre feuille donc ils devraient toujours être au même format.
aller je lance une nouvelle discussion!
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

normalement il n'y aura jamais de cas particulier les numéros sont créer automatiquement par une autre macro dans une autre feuille donc ils devraient toujours être au même format.
aller je lance une nouvelle discussion!
 

SANDRA2012

XLDnaute Junior
Re : Comptabiliser le nombre de scan effectué par une douchette

les 2 codes marchent super bien sur mon petit fichier plus besoin de cliquer sur enregistrer c'est top
mais par contre quand je le met sur mon fichier final avec les autres macro ca ne fontionne plus du tout je suis en train de voir d'ou ça peut venir
Sinon oui les commentaires m'ont vraiment aider ! pas de doute!
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 133
dernier inscrit
mtq