< návrat zpět
MS Excel
Téma: Docházka
Zaslal/a roscher 29.9.2014 14:22
Dobrý den,
prosím odborníky o radu. Jak vytvořit vzorec, aby stalo následující: do sloupce A (např. A1, pak A2, A3, A4 apod.) přibude z externího zdroje (ze čtečky čár.kódů, typ code128, číslo je 12ti místné) číselná hodnota, a já potřebuji, aby mi to vedle do buňky (B1) samo vyplnilo datum, kdy k vyplnění z ext.zdroje došlo, dále vedle (C1) v kolik hodin (hodina, minuta). Nevím si rady.
Roscher M., Chomutov
Palooo(29.9.2014 14:28)#021686 no v tomto vam malo kto poradi lebo verim tomu ze take zariadenie ako mate vy tu nema nikto :)
ale zas nadruhu stranu budu stielat ako by to asi slo. Citacka robi nejaky vystup asi ze??
tak potom si spravte makro ktore bude citat ten vystup a bude pouzivat len tie udaje ktore vy potrebujete na zapis do buniek. Nemalo by to byt nic zlozite
citovat
roscher(29.9.2014 14:39)#021687 Je to USB čtečka čárk.kódů, a je to to stejné, jako se když to číslo naťuká na NUM klávesnici. Ta čtečka vlastně jen supluje NUM klávesnici. Resp. jakoukoliv USB klávesnici, protože já si v generátoru čárk.kódu code128 mohu napsat co chci, a on mi to převede na čárky. Přes připojenou čtečku mi to pak jen přečte a zobrazí, třeba ve wordu, excelu, prostě kdekoliv jako text. Prostě jako kdybych to napsal ručně na klávesnici. Jednou jsem ve VB dělal, že si automaticky vytvořil komentář, jakmile někdo tu či onu buňku editoval. Byl to takový ´´bonzák´´, kdo tak co naposledy něco editoval. Já potřebuji vlastně něco podobného, a nevím si rady.
citovat
AL(29.9.2014 14:49)#021688 V tom prípade sa dá využiť udalosť worksheet_change. Je tu toho na fóre spústa na toto téma, skús preštudovať a pokiaľ s tým sám nepohneš, niekto sa určite nájde. Každopádne, chcelo by to prílohu.
citovat
Palooo(29.9.2014 14:54)#021689 da sa urobit trosku inac
napr. ked sa v tomto stlpci zmeni hodnota tak napis do druheho stlpca datum
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 4 Then
For Each aRow In Target.Rows
Cells(aRow.Row, aRow.Column + 1) = Now
Next
End If
End Subcitovat
roscher(29.9.2014 15:15)#021690 Dobrý den,
děkuji za příspěvky.
Nechtěl jsem do toho tahat VB. Myslel jsem, že to půjde jednoduchými vzorci a podmínkami. Viz. příloha. Zhruba to funguje, jenže: kdybych teď projel čtečkou mojí provizorní papír.kartu, tak se zapíše hodnota do sloupce A, a do řádku, který je v pořadí, např. A6, ale přepíše to čas, a popř. datum ve všech řádcích sloupce D. A to je špatně.
Příloha: 21690_dochazka_vzor.jpg (101kB, staženo 24x)
citovat
AL(29.9.2014 15:17)#021691 @Palooo
pmn je Workbook_SheetChange a Worksheet_Change v podstate to isté, pokiaľ teda si týmto myslel, že sa to dá urobiť inak.
Nakoľko OP chce datum a čas v samostatných bunkách, tak miesto
Cells(aRow.Row, aRow.Column + 1) = Nownapr.
Cells(aRow.Row, aRow.Column + 1) = Date
Cells(aRow.Row, aRow.Column + 2) = FormatDateTime(Time, vbShortTime)citovat
AL(29.9.2014 15:22)#021692 @roscher
V podstate si si odpovedal sám. Treba si uvedomiť, že funkcie Dnes() i Nyní() sú volatilné, tzn. mimo iného, že k ich prepočítaniu dochádza pri každej zmene v súbore, čiže bez VBA to asi nepôjde.
citovat
roscher(30.9.2014 8:47)#021693 Dobrý den,
díky za rady, ale nevím kam to ve VB napsat. Nemohli by jste to udělat na nečisto a přiložit ten soubor sem? Nejsem žádný profík na VB.
citovat
roscher(30.9.2014 8:53)#021694