Recent am avut un webinar despre Excel in care m-am laudat ca am facut un scadentar rate in Excel. Fiindca nu am fost sigur daca participantii m-au crezut, am zis ca nu ar fi rau sa il adaug si aici pe site, poate e util si pentru voi.
Scadentar rate Excel
Hai sa vedem in primul rand cum functioneaza, iar apoi o sa vezi si cum l-am facut, inclusiv codul VBA din spate.
Destul de simplu, nu?
Download
Descarca gratuit acest fisier (impreuna cu multe altele) accesand pachetul Fisiere onLearn. Le-am grupat pe toate intr-un singur loc sa fie mai usor de accesat. Vezi butonul de mai jos.
Apropo, daca vrei sa inveti Excel, vezi aici toate cursurile de Excel pe care le avem pe platforma.
Mod calcul dobanda
Cand vine vorba de scadentare, e important sa stim modul de calcul al dobanzii. Am invatat si eu lucrurile astea cand am lucrat pe un fisier pentru un client de al meu.
Putem avea dobanda liniara, sau dobanda la sold (pe care o calculam cu functia PMT). In acest fisier comportamentul dobanzii este liniar, iar cel al principalului de tip anuitate.
Asta inseamna ca atat principalul si dobanda se calculeaza intr-un mod liniar si vor fi egale in fiecare luna.
Cod VBA
Cand deschizi fisierul vei vedea ca acesta contine cod VBA. Va fi nevoie sa dai accept ca sa rulezi codul. Pun mai jos si codul VBA pe care l-am folosit in generearea scadentarului. Vezi, poti sa „furi” codul si fara sa te abonezi
Sub Genereaza_Scadentar()
'Memoram informatiile relevante
valoare = Range("B1")
perioada = Range("B2")
val_dobanda = Range("B3")
data_disbursare = Range("B4")
'Pregatim scadentarul
Range("D2:I1000").ClearContents
'Generam scadentarul
For i = 1 To perioada
'Numar si data
Cells(i + 1, 4) = i
Cells(i + 1, 5).Value = DateSerial(Year(data_disbursare), Month(data_disbursare) + i, 0)
'Rata
Cells(i + 1, 6) = valoare / perioada
'Dobanda
Cells(i + 1, 7) = valoare * val_dobanda * perioada / 12 / perioada
'Plata lunara
Cells(i + 1, 8) = Cells(i + 1, 6) + Cells(i + 1, 7)
'Sold credit
If i = 1 Then
Cells(i + 1, 9) = valoare - Cells(i + 1, 6)
Else
Cells(i + 1, 9) = Cells(i, 9) - Cells(i + 1, 6)
End If
Next i
'Adaugam totaluri - doar daca e completata valoarea
If valoare > 0 Then
Range("F" & perioada + 2) = "=SUM(F2:F" & perioada + 1 & ")"
Range("G" & perioada + 2) = "=SUM(G2:G" & perioada + 1 & ")"
Range("H" & perioada + 2) = "=SUM(H2:H" & perioada + 1 & ")"
'Formatare de final
Range("E:E").NumberFormat = "yyyy-mm-dd;@"
Range("F:I").NumberFormat = 0
End If
End Sub
Dupa cum poti vedea in codul de mai sus, am folosit cateva concepte din VBA:
- Variabile
- Bucle (For)
- Conditii (IF)
Codul e scris de mine, nu am folosit macro recorder, si nici nu am apelat la ChatGPT. 🙂
Daca vrei sa inveti elementele de baza despre scriere cod in Excel, iti recomand sa arunci un ochi si peste cursul de Excel de nivel avansat. Pe langa faptul ca vei invata sa folosesti Macro Recorder, vei invata si sa scrii linii simple de cod VBA.
Radu este fondatorul onLearn si autorul majoritatii articolelor de pe acest site. Cand nu scrie sau nu inregistreaza vreun tutorial e in sala de curs sau lucreaza pe proiecte de consultanta ca sa invete lucruri noi.
Ai o intrebare?
Daca ai ajuns pana aici cautand sectiunea de comentarii, sa stii ca aceasta nu exista :). Poti insa ca sa ne pui intrebari in partea de forum a site-ului, te asteptam acolo.