[ koreja2001 @ 06.05.2019. 22:37 ] @
Kako napraviti formulu da se automatski broj računa povećava za 1 ako broj računa sadrži i slova. Na primjer broj računa je 103/L1/1P i slijedeći broj bi trebao biti 104/L1/1P pa 105/L1/1P itd.

Hvala
[ bokinet @ 06.05.2019. 23:30 ] @
Moze na vise nacina to da se uradi;

Evo deo od jednog nacina kako je to moguce resiti:

- U VBA napraviti f-ju koja generise broj racuna u skladu sa potrebama i koja vraca generisani broj racuna kao povratnu vrednost tipa string;

- Pozvati tu VBA f-ju kada god je potrebno generisati novi broj;

Primer VBA f-je koja koristi Registry za cuvanje poslednjeg generisanog broja preko f-je gde preko ulaznog parametra kontrolise da li se poslednji generisani broj azurira ili ne u registry-ju i deo koda koji sluzi za povezivanje makro-a sa drugim elementima u okviru Excel-a isto kroz VBA i makro;

Code:


Public Function GenerateInoviceNum(Optional ByVal SaveLastNumber As Boolean = True) As String

    Dim r As String
    
    r = Val("" & GetSetting("myinvoiceapp", "invoice", "invoicenum", "0")) + 1
    
    If SaveLastNumber = True Then
    
        SaveSetting "myinvoiceapp", "invoice", "invoicenum", r
    
    End If
    
    r = Format(r, "000")
    
    r = r & "/L1/1P"
      
    GenerateInoviceNum = r

End Function

Public Sub DoGenerateInvoiceNum()

    ActiveCell = GenerateInoviceNum(True)

End Sub


[ pera68 @ 07.05.2019. 12:47 ] @
Formula u prilogu, verovatno može i jednostavnije ali radi i ovo.

Code:
 =IF(ISNUMBER(LEFT(A2;FIND("/";A2)-1)*1);LEFT(A2;FIND("/";A2)-1)+1;"")&MID(A2;FIND("/";A2)+1;LEN(A2)-FIND("/";A2)) 


Formula radi na taj način što pronalazi prvi karakter "/" i proverava da li je to što se nalazi levo od tog karaktera broj a ako jeste uvećava ga za 1 inače za te karaktere ostavlja blanko.
Za ovu formulu nije bitno da li je u nastavku identičan broj karaktera (ne mora uvek biti /L1/1P).
[ koreja2001 @ 07.05.2019. 17:20 ] @
Hvala na ponuđenim rješenjima, puno ste mi pomogli
[ jaskojsako @ 07.05.2019. 18:05 ] @
pozdrav
moze i ovaj nacin,

Sheets("sheets1").Range("A5").Value = _
Sheets("sheets1").Range("A5").Value + 1

L1 i P1 ne mjenjaju vrijednost stoga moze i ovaj nacin,razdvojis na 3 celije i povecavas samo onaj s brojem,
svaki put kad pokrenes macro povecava se za 1 vise

lp