Figer une date - Gestion de stock

Bonjour à tous,
Je rencontre actuellement un problème, j'ai crée un fichier Excel pour gérer les stocks de l'entreprise, chaque articles sortant est scanné puis retiré du stock mais afin d'avoir plus d'informations sur le suivi des articles j'aimerai que des qu'un article soit scanné la date du scan apparaisse en "A1".

Ma formule actuelle ne me permet pas de faire cela car la formule AUJOURDHUI() ce met automatiquement à jour comme vous devez le savoir.
Si possible j'aimerai éviter le VBA, et si il faut passer par le VBA j'aimerai que tout ce fasse de manière automatique car j'ai vu passer sur les net des solutions avec "Ctrl + ;" ou encore un double clic sur une cellule avec du VBA mais cela m'oblige a poser les mains sur le clavier et devoir poser la douchette et/ou mes articles pour indiquer la date a chaque fois me ferrait perdre un certain temps.

Merci d'avance pour vos réponses :)

Helmut

Bonjour,

Comment fonctionne l'implémentation du scan ? On peut très bien envisager qu'à chaque valeur renseignée dans une plage, la date du jour s'inscrit en face via le OFFSET. Ici lorsqu'on change une valeur en colonne A, la date du jour est enregistrée :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns(1)) Is Nothing And Target <> "" Then Target.Offset(0, 1) = Date
End Sub

Avec le fichier qui va bien.

Le CTRL + ; est une manipulation pour ne pas renseigner AUJOURDHUI() mais elle nécessite une action manuelle contrairement au code ci-dessus où c'est le scan qui interagit pour vous.

A adapter en fonction de vos besoins.

Cdlt,

12classeur1.xlsm (13.60 Ko)

Bonjour Ergotamine,

Merci pou ta rapidité et ta réponse,

Je viens d'essayer ton tableur et c'est parfait ! Par contre le seul problème est que je ne suis vraiment pas expérimenté avec le VBA je ne sais donc pas où appliquer les modifications dans ton code afin de l'introduire dans mon tableur.
Si cela peut t'aider mes références d'articles apparaissent en colonne B, et la date doit apparaître en colonne G.

Et pour répondre à ta question la référence article est inséré par une douchette qui scanne le code et l'écrit tout simplement dans une cellule, la douchette n'est tout simplement qu'un périphérique d'entrée ^^.

Bonjour,

Je vous adapte le code et le commente au cas où vous souhaitez l'adapter à votre convenance. Le code est à intégrer dans le module de la feuille où sont entrée les données :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns(2)) Is Nothing And Target <> "" Then 'On regarde si la cellule source du changement Target et la (columns(2) pour la B) se recoupent/croisent/calques (Intersect). Si c'est le cas alors Application.Intersect renvoie quelque chose. Donc on vérifie que l'intersection ne renvoie pas rien (not is nothing) pour executer l'action. Je vérifie aussi que ce n'est pas juste une donnée effacée via Target <> "" qui inscrirait alors la date du jour de l'effacement si je retire cette condition.
    Target.Offset(0, 5) = Date 'Je me place à partir de la cellule source du changement, je décale (offset) de 5 colonnes (,5) sur la droite sur la même ligne (0) et j'inscris la date
End If
End Sub

Il faudra tester car je ne connais pas trop les interactions entre douchettes et EXCEL, mais je pense que ça devrait passer dès lors qu'une donnée est renseignée dans la cellule.

On peut aussi lui spécifier dans le même code, une fois la date inscrite, de se placer à la dernière cellule remplie de la colonne B pour y inscrire la future valeur.

A vous de voir en fonction de vos besoins.

Cdlt,

Rebonjour,

Je ne comprends pas j'ai pourtant bien recopié votre code mais rien ne se passe quand je saisie une référence dans la colonne B

Sub DateScan()
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns(2)) Is Nothing And Target <> "" Then Target.Offset(0, 5) = Date
End If
End Sub

Aurais-je mal supprimé vos explications ?
(Pour informations je n'essaye pas directement avec la douchette, je saisie un ou deux références à la main afin de voir si c'est opérationnel, le problème ne vient donc pas d'une erreur de liaison entre douchette et Excel ou autre problèmes qui aurait pu être causé à cause de la douchette)

Par contre effectivement ajouter au code le fait que la prochain saisie de texte s'effectuera dans la case situé en dessous du dernier saisie en colonne B peut être très intéressant pour moi ^^.

Bonjour,

Les procédures événementielles s'inscrivent directement dans l'objet qui les déclenche. Ici c'est la feuille, donc le code n'est pas à inclure dans un module via un Sub standard. Le Private sub permet de dire "cette macro ne s’exécutera que sur cette feuille et c'est tout" donc il faut copier coller mon code tel quel directement dans le code de votre feuille d'intérêt (dans mon exemple la feuille 1). Reprenez le fichier joint plus haut vous verrez :

image

Si vous souhaitez avoir ce plus pour le positionnement alors dans ce cas le code devient :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Columns(2)) Is Nothing And Target <> "" Then
    Target.Offset(0, 5) = Date
    Target.Offset(1, 0).Select
End If
End Sub

Cdlt,

Re Bonjour,

Je suis vraiment désolé , j'ai bien compris tout ce que vous m'avez expliqué mais je ne comprends juste pas comment ajouter une macro en "Private Sub" et non en public.

Après cela je ne pense plus vous embêtez, vous m'avez beaucoup aidé !

Bonjour,

Copiez le code que je vous ai fourni ci-dessus et collez le tel quel dans le module de la feuille d'intérêt (comme sur ma capture d'écran).

Si vous reprenez le premier fichier que je vous ai joint et que vous double cliquez sur l'objet Feuil1 dans le menu VBA vous verrez que le code s'y trouve tel quel. C'est comme ça et uniquement comme ça qu'il faut qu'il soit présenté : code débutant par Private Sub (comme celui de mon précédent post) dans le module de la feuille concernée par la saisie des données.

Cdlt,

Super !

Merci beaucoup à vous pour le temps que vous avez pu me consacrer !
En vous souhaitant une superbe journée !

Cordialement,

Helmut .

Rechercher des sujets similaires à "figer date gestion stock"