Vonalkód beolvasása excelbe dátummal és idővel

Vonalkód beolvasása excelbe dátummal és idővel
2017-09-07T21:34:19+02:00
2017-09-08T19:30:30+02:00
2022-10-15T22:50:45+02:00
Bekrol
Sziasztok! 

A következő kérdéssel fordolbék hozzátok:
megoldható-e valahogy, hogy egy excelbe beolvasott vonalkód mellett automatikusan megjelenjen a beolvasás dátuma és esetleg az időpontja is?
Köszönöm a segítséget!
Mutasd a teljes hozzászólást!
Gondolom nem próbáltad ki a Worksheet_Change javaslatomat. Szerintem az pontosan ezt csinálja.

Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Offset(0,1).Value = Now() Target.Offset(0,1).NumberFormat = "yyyy/mm/dd h:mm;@" End If End Sub
Mutasd a teljes hozzászólást!

  • Igen. Hogy történik a beolvasás? Van valami makró, ami figyeli?
    Mutasd a teljes hozzászólást!
  • Nem. Sajnos csak minimális tudással rendelkezem a makrókkal kapcsolatban.
    Sima 1D lézeres vonalkód olvasó van a számítógéphez csatlakoztatva.
    Mutasd a teljes hozzászólást!
  • De hogy kerül be a vonalkód az Excelbe? Kézzel bemásolod? Ha az olvasót elindítod, akkor megnyitja az Excelt és belemásol egy vonalkódot? Vagy van egy Excel makró, amit futtatni kell, hogy a vonalkód bekerüljön?

    Kézire egy megoldás: a mellette levő cellába írd be ezt:   =MOST()      majd utána a cellán Ctrl+C , jobb egérgomb, Irányított beillesztés -> Értéket.

    Egy kicsit kényelmesebb, makrós (ha billentyűkódhoz rendeled, még egyszerűbb):
    Sub Idobelyeg() ActiveCell.Value = Now() ActiveCell.NumberFormat = "yyyy/mm/dd h:mm;@" End Sub
    Mutasd a teljes hozzászólást!
  • A "MOST" függvény nem jó, mert az az aktuális időt mutatja, ami folyamatosan frissül.
    Az olvasó a megnyitott excel-be minden leolvasott kódot beír és nyom egy entert.
    A kérdés az, hogy megoldható-e, hogy egy leolvasás után a beolvasott kód melletti cellában automatikusan megjelenjen a beolvasás dátuma statikusan, úgy, hogy a kurzor utána visszaáll a kódok oszlopába?
    Mutasd a teljes hozzászólást!
  • A "MOST" függvény jó, mert az aktuális időt mutatja - nem nézted tovább a javaslatot, ott van még egy irányított beillesztés is, hogy a függvény helyére annak konkrét értéke kerüljön.

    A kérdésre pedig ("megoldható-e...") a válasz: igen, a fentebb leírt makrófüggvényemmel. Például ha felteszem, hogy az A oszlopba írja be a kódot az olvasó, akkor egy ilyen Worksheet_Change eseménykezelő működhet, a B oszlopba melléírja a pontos időt:
    Private Sub Worksheet_Change(ByVal Target As Object) If Target.Column = 1 Then Target.Offset(0,1).Value = Now() Target.Offset(0,1).NumberFormat = "yyyy/mm/dd h:mm;@" End If End Sub
    Mutasd a teljes hozzászólást!
  • Köszönöm! Kipróbálom.
    Mutasd a teljes hozzászólást!
  • Mutatok még egy megoldási javaslatot. Ez a fájl mentésekor minden vonalkód mellé, ahol még nincs időbélyeg, odaírja azt.

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel as Boolean) Dim r As Long r = 1 While VonalkodokMunkalapja.Cells(r,1)<>"" If VonalkodokMunkalapja.Cells(r,2)="" Then VonalkodokMunkalapja.Cells(r,2) = Now() VonalkodokMunkalapja.Cells(r,2).Numberformat = "yyyy/mm/dd h:mm;@" Endif r = r + 1 Wend End Sub
    Mutasd a teljes hozzászólást!
  • Kipróbáltam, de sajnos ez így nem működik.
    Lehet, hogy ezzel a vonalkód olvasóval túlbonyolítottam a kérdés megfogalmazását, mivel gyakorlatilag a vonalkód olvasó egy billentyűzet szerepét tölti be.
    Szóval a kérdés az, hogy ha az "A" oszlop első sorába beírok valamit (mondjuk kézzel), majd nyomok egy entert, akkor a "B" oszlop első sorában automatikusan meg tud-e jelenni az időpont amikor az entert lenyomtam? Mindezt úgy, hogy miután beíródott a dátum, a kurzor automatikusan az "A" oszlop második sorába ugrik és így tovább...
    Mutasd a teljes hozzászólást!
  • Gondolom nem próbáltad ki a Worksheet_Change javaslatomat. Szerintem az pontosan ezt csinálja.

    Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 Then Target.Offset(0,1).Value = Now() Target.Offset(0,1).NumberFormat = "yyyy/mm/dd h:mm;@" End If End Sub
    Mutasd a teljes hozzászólást!
  • Kipróbáltam, de nem történik semmi. Az időbélyeg működik de nem automatikusan, csak ha kézzel indítom.
    Valószínűleg az a gond, hogy nagyon nem értek ehhez...
    Nem tudom, hogy esetleg az excel verziója számít-e, amivel próbálkozok az 2016-os.
    Mutasd a teljes hozzászólást!
  • Szia!

    Én is kipróbáltam, és tökéletesen működik.

    A másolás menete:
    1. Másolod polyjoe programját (kijelölés majd Ctrl+c)
    2. Excelben a lapfülön jobb-klikk és "Kód-megjelenítése", majd a megjelenő - még üres lapra bemásolod a programot (Ctrl+v).

    Ennyi!
    Mutasd a teljes hozzászólást!
  • Tényleg MŰKÖDIK!!!!
    Nem tudom először mit csináltam rosszul, de most pont úgy működik ahogy kell! :)

    Ezer hála és köszönet polyJoe!!!!!!!!!!!!!!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd