Na internetu postoji dosta primjera za
automatsko unošenje datuma, a vjerujem i na ES-u ih ima.
Evo nekih VBA varijanti. (Da se odmah razumijemo, nisam VBA programer ali sam nešto isprobavao pa tako da sve ovo uznmeš sa rezervom.)
OPCIJA 1
U 'C2' ćeliju postavi formulu pa kopiraj dolje do zadnjeg reda (ova formula kao rezultat daje redni broj fakture). Ako želiš ovo sačuvati trajno tada u nekom momentu sa Copy/Paste -> Paste Special -> Values konvertiraš sve u tekstualni oblik bez formule.
Code:
=IF(B2="DA";"2021/"&ROW(A1);"")
U VBE u Code window na Sheet1 kopiraj ovu VBA macro naredbu
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'spriječava vba error ako se radnja ne odnosi na B stupac
If Target.Column = 2 And Not IsNumeric(Target) Then 'odnosi sena text u B stupcu
Range(Target.Address).Offset(0, 2) = Now() 'unosi datum i vrijeme u 2 stupca desno od B stupca nakon promjene podatka u B stupcu
ElseIf Target.Column = 2 And Target = "" Then 'ako je ćelija u B stupcu prazna
Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu prazna ćelija
End If
'!!!!!!!!!!ovaj dio VBA treba doraditi da ne baguje ako vršiš kopiranje Validation List u B stupcu po sistemu drad-and-drop!!!!!!!
If Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu riječ Ne
ElseIf Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
Range(Target.Address).Offset(0, 2) = Range(Target.Address).Offset(0, 2).ClearContents 'briše sadržaj ćelije u D stupcu u istom redu
End If
End Sub
Ovaj VBA macro podržava Validation List i promjenu u B stupcu kao i brisanje sadržaja u istom stupcu (npr ako si pogriješio)
Funkcionira na način da u 'B' stupcu promjenom iz 'NE' u 'DA' automatski se unosi novi broj fakture i današnji datum u 'D' stupcu.
Ako ponovno promijeniš u Ne tada briše datum u D stupcu
Ako obrišeš ćeliju u kojoj se nalazi DA ili NE tada isto briše datum u D stupcu
Cijeli stupac 'C' formatiraj kao 'Date'
OPCIJA 2
U 'A' stupcu unosiš ime i prezime. Izborom DA u B stupcu preko formule prikazuje se broj fakture
Prvi korak je upis imena i prezimena. Automatski se unosi datum u 'D' stupcu.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count <> 1 Then Exit Sub
If Target.Column <> 1 Then Exit Sub
Target.Offset(0, 3) = Date ' & " " & Time 'ako želiš dodati i vrijeme ukloni prvi apostrof
End Sub
Drugi korak je izbor 'DA' iz Validation List u 'B' stupcu
S obzirom na formulu automatski će se prikazati broj fakture uvećan za 1 u odnosu na broj iznad.
OPCIJA 3
Ako želiš u jednom potezu prikazati broj fakture i datum, tada probaj ovaj VBA macro
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$B$2:$B$100")) Is Nothing Then
Target.Offset(0, 2).FormulaR1C1 = Now()
End If
End Sub
Ovaj VBA macro podržava Validation List, dakle promjenom u 'B'stupcu bilo da mijenjaš 'NE u DA' ili 'DA da NE' u oba slučaja će se prikazati današnji datum ali ne i broj fakture (ovo može može biti problematično?).
Naravno, VBA programer može isprogramirati da se također automatski pomoću macroa doda i broj fakture (ali za to moraš od nekog drugog tražiti pomoć jer ja nemam toliko vremena istraživati).
I na kraju spremi Workbook u formatu *.xlsm (*.xls)
Sve u svemu ovo su neki primjeri koje bi ti možda morao doraditi s obzirom na tvoju workbook i organizaciju podataka.
LP Ivan