< návrat zpět
MS Excel
Téma: Automatické číslování s prefixem VBA
Zaslal/a klomi 20.12.2017 11:13
Zdravím,
potřeboval bych pomoc s automatickým číslováním.
Cíl je takový, že po vyplnění formuláře a potvrzení tlačítkem se tato data zapíšou do posledního prázdného řádku a automaticky se do řádku vyplní i pořadové číslo složené z prefixu "P"+ roku (yy) + pořadového čísla 001. (P17001).
S každým novým řádkem se přičte 1 nakonec (P17002).
Poslední věc, když začne nový rok pořadové číslo začne od 001 (P18001).
Jelikož vůbec netuším jak číslování udělat, připravil jsem jen kostru formuláře a tabulky jako příklad.
Díky za každou radu případně řešení.
Příloha: 38840_priklad.zip (19kB, staženo 69x)
elninoslov(20.12.2017 11:57)#038841 Nie príliš optimálne, ale dajme tomu ... :
Private Sub CommandButton1_Click()
Dim VolnyRadek As Long, HDN, Rok As Long, Cislo As Long, nRok As Long
With Worksheets("List1")
VolnyRadek = .Cells(Rows.Count, 1).End(xlUp).Row + 1
nRok = Val(Format(Date, "yy"))
If VolnyRadek = 2 Then
Rok = nRok: Cislo = 1
Else
HDN = CStr(.Cells(VolnyRadek - 1, 1).Value2)
Cislo = Val(Right$(HDN, 3))
Rok = Val(Mid$(HDN, 2, 2))
If nRok <> Rok Then Rok = nRok: Cislo = 1 Else Cislo = Cislo + 1
End If
.Cells(VolnyRadek, 1).Resize(, 2).Value2 = Array("P" & Format(Rok, "00") & Format(Cislo, "000"), TextBox1.Value)
End With
End Sub
EDIT: maličká úprava...
citovat
klomi(20.12.2017 12:12)#038842 Perfektní mockrát díky!
citovat