Proiect Informatica Manageriala

12
Universitatea "Petru Maior", Târgu Mureș Facultatea de Inginerie Aplicaţia „Cheltuieli atelier de tâmplărie” Proiect la disciplina Informatică Managerială 1

description

Proiect Informatica ManagerialaExcel, Visual Basic

Transcript of Proiect Informatica Manageriala

Universitatea "Petru Maior", Trgu MureFacultatea de Inginerie

Aplicaia Cheltuieli atelier de tmplrie

Proiect la disciplinaInformatic Managerial

2014

Aplicaia Cheltuieli atelier de tmplrie

Noiuni teoreticeGestionarea cheltuielilor este o activitate foarte important pentru fiecare firm/ntreprindere. Trebuie avut n vedere faptul c cheltuielile pot varia dup mai multe criterii i toate acestea trebuie catalogate. Cel mai simplu mod de a urmri cheltuielile unei firme este prin utilizarea unui program de gestiune a acestora, ca i aplicaia de fa: Aplicaia Cheltuieli atelier de tamplarie.Aplicaia a fost scris n mediul VBA Excel, utiliznd diferite funcii i subprograme dup care n tabelele care trebuie s conin informaii destinate spre evaluare, au fost introduse date.n continuare va fi descris aplicaia, evideniindu-se rolul fiecrei foi de calcul mpreun cu elementele de interfa, butoane de comand, combobox-uri, butoane de opiune, checkbox-uri etc.

Componena aplicaieiAplicaia conine urmtoarele file: Panou aplicatie - conine butoanele cu care se gestioneaz aplicaia; Cheltuieli conine lista cheltuielilor, data i categoria acestor cheltuieli; Situaii conine un tabel centralizator cu toate categoriile de cheltuieli, totalul cheltuielilor pe fiecare categorie i un sistem de filtrare a cheltuielilor dup diferite luni i categorii. Cataloage n aceast fil sunt enumerate categoriile de cheltuieli existente n firma S.C. Coop SRL; Statictica n aceast fil se poate vizualiza grafic situaia cheltuielilor repartizat pe luni, mpreun cu o list de sume care se poate actualiza ori de cte ori se adaug o cheltuial nou;

Interfaa aplicaieiPornirea fiecrui modul al aplicaiei de generare asistat de calculator a documentelor se face cu shortcut-ul corespunztor de pe desktop, care va deschide fila Panou aplicatie, coninnd interfaa aplicaiei (figura 1). Aceast interfa conine 6 butoane cu care se gestioneaz ntreaga aplicaie.

Butonul Cheltuieli ne duce n fila cu acelai nume care conine lista tuturor categoriilor de cheltuieli. Organizarea datelor n aceast fil este evident, codul i denumirea fiecrei categorii de cheltuial. Trebuie completate numai coloanele A, C, D i E. Coloana B se autocompleteaz utiliznd funcia Month(A), iar coloana D care conine numrul categoriei se completeaz selectnd celula i apoi alegnd categoria potrivit din lista aprut n Combobox-ul: cboCategorii.Butonul Situatii vizualizeaz fila cu situaia centralizat a cheltuielilor efectuate de la nceputul anului, n raport cu sumele prevzute. Butonul Cataloage ne duce la fila numit Cataloage.Butonul Vizualizare statistici lunare deschide fila Statistica n care nu se mai completeaz nimic, datele sunt generate automat cu ajutorul funciei Function Suma a crui cod este scris n Modulul 1 a aplicaiei Excel.Butonul Tiparire lista cheltuieli acceseaz un macro care selecteaz celulele din foaia Cheltuieli n care sunt introduse datele, i le printeaz automat. Butonul Descriere proiect deschide un fiier Word care conine o descriere detaliat a aplicaiei i modul de utilizare a acesteia.

Funcionarea aplicaieiAplicaia se pornete pentru a executa cel puin una din urmtoarele activiti: Actualizarea listei de cheltuieli; Vizualizarea detaliilor referitoare la cheltuieli n funcie de categorie i luna n care s-au efectuat cheltuielile respective; Studierea situaiei cheltuielilor; Tiprirea documentelor care nsoesc o cheltuial.Fiecare din aceste activiti are rezervat un buton de comand pe interfa.Pentru a nregistra o cheltuial se parcurg urmtoarele etape:1. Se apas butonul Cheltuieli, care ne conduce n fila Cheltuieli unde se completeaz manual Data, Denumirea cheltuielii i Suma acesteia. Alegerea codului pentru o anumit categorie se face din lista urmtoare, care este un Combobox (aceste informaii din Combobox sunt luate din fila Cataloage).

Fig. 2 Din caseta cu list Alege categoria cheltuielii se alege categoria potrivit.

Observaie!! Ca s completm o celul utiliznd caseta cu categorii trebuie neaprat s ne aflm cu selecia n coloana D.

2. Dup ce s-au completat toate celulele se actualizeaz totalurile cheltuielilor repartizate dup categorii, print-un click pe butonul Actualizare totaluri (se aplic din nou funcia SumIf); Urmrirea cheltuielorFila Situatii conine o centralizare la zi a cheltuielilor efectuate. Aici se pot verifica cheltuielile efectuate din fiecare lun sau/i cheltuielile realizate ntr-o lun dup o anumit categorie. Se pot filtra toate cheltuielile unei anumite categorii, prin simpla alegere a codului categoriei din caseta cu list situat n partea de sus a foii, dac acesta a fost activat (fig. 5).Dac dorim s vedem cheltuielile pe o categorie, mai nti se activeaz caseta combinat din dreapta etichetei O categorie, fcnd un click pe checkbox-ul din faa aceleiai etichete. Se alege apoi categoria, dup care se d un click pe butonul Filtrare, efectul imediat fiind filtrarea cheltuielilor. Pentru revenirea la afiarea tuturor cheltuielilor din acea lun se alege checkbox-ul Toate categoriile i se apas butonul Filtrare.Procedeul se poate repeta de cte ori dorim.

Fig. 5.Pentru scoaterea la imprimant a cheltuielilor unei categorii se va filtra mai nti dup acea categorie apoi se va lista manual, dup regulile cunoscute din Excel.

Codul VBA al aplicaiei:Modulul 1:Option ExplicitFunction UltimRind(foaia As Worksheet, ByVal rstart As Integer, ByVal coloana As Integer) As Integer Dim m As Integer Do Until foaia.Cells(rstart, coloana) = "" m = rstart rstart = rstart + 1 Loop UltimRind = mEnd FunctionObservaie! Aceast funcie are rolul de a gsi ultimul rnd care este completat.

Function Suma(luna As Integer) As Double Dim f As Worksheet, r As Integer, s As Double s = 0 r = 6 Do Until r = UltimRind(Sheet2, 6, 2) If Sheet2.Cells(r, 2) = luna Then s = s + Sheet2.Cells(r, 5) End If r = r + 1 Loop Suma = sEnd FunctionObservaie! Funcia Suma calculeaz pentru fiecare lun totalul cheltuielilor efectuate analiznd fiecare rnd care aparine acelei luni (ncepnd din rndul 6) i din rndul acela tot adaug sumei s suma cheltuielii din luna respectiv.

Subprogramele ataate foii Panou:Private Sub cmdCataloage_Click() Sheet4.Visible = xlSheetVisible Sheet4.Select Sheet1.Visible = xlSheetHiddenEnd Sub

Private Sub cmdCheltuieli_Click() Sheet2.Visible = xlSheetVisible Sheet2.Select Sheet1.Visible = xlSheetHiddenEnd Sub

Private Sub cmdDescriere_Click()'Deschide un Document Word din ExcelDim objWord As Object

Set objWord = CreateObject("Word.Application")objWord.Visible = True

'Se schimba locatia fisierului WordobjWord.Documents.Open "D:\Proiect.docx"

End Sub

Private Sub cmdDiagrame_Click() Sheet5.Visible = xlSheetVisible Sheet5.Select Sheet1.Visible = xlSheetHiddenEnd Sub

Private Sub cmdSituatii_Click() Sheet3.Visible = xlSheetVisible Sheet3.Select Sheet1.Visible = xlSheetHiddenEnd SubObservaie! Aceste subprograme se activeaz dnd click pe butoanele ataate comenzii i ascund, respectiv fac vizibile pe rnd celelalte foi ale fiierului.

Codul foii Situaii i sistemul de filtrare:Private Sub cboCategorii_Change() cmdFiltru.Enabled = TrueEnd Sub

Private Sub cboLuna_Change() cmdFiltru.Enabled = TrueEnd SubPrivate Sub optToate_Click() lblCategorii.Visible = False cboCategorii.Visible = False cmdFiltru.Enabled = TrueEnd SubPrivate Sub optCategorie_Click() lblCategorii.Visible = True cboCategorii.Visible = True cboCategorii = "" cmdFiltru.Enabled = FalseEnd Sub

Private Sub cmdFiltru_Click() Dim n As Long, i As Long, j As Long, luna As Long, categoria As Long, index As Long'Sterg afisarea veche din foaia Situatii ---------------------------------------------n = UltimRind(Sheet3, 5, 1)Range(Cells(6, 1), Cells(n + 1, 4)).ClearContents

'Transfer inregistrarile filtrate ----------------------------------------------------

n = UltimRind(Sheet2, 6, 1) 'Apelez functia UltimRind ----------------------------------index = cboCategorii.ListIndexluna = cboLuna.List(cboLuna.ListIndex, 0)If optCategorie.Value = True Then 'Acest If se inchide la ***Primul IF*** If index = -1 Then index = 0End Ifcategoria = cboCategorii.List(index, 0)

'Incepem transferul inregistrarilor filtrate, celula cu celula -------------------------i = 6: j = 6Do While i < n'Cazul cand avem categorie--------------------------------------- If Sheet2.Cells(i, 2) = luna And Sheet2.Cells(i, 4) = categoria Then Cells(j, 1) = Sheet2.Cells(i, 1) Cells(j, 2) = Sheet2.Cells(i, 3) Cells(j, 3) = Sheet2.Cells(i, 4) Cells(j, 4) = Sheet2.Cells(i, 5) Cells(j, 5) = Sheet2.Cells(i, 6) j = j + 1 End If i = i + 1LoopElse 'De la **** Primul IF*** ------------------------- i = 6: j = 6 Do While i < n

'Cazul cand filtram numai dupa luna (toate categoriile) ---------------------------

If Sheet2.Cells(i, 2) = luna Then Cells(j, 1) = Sheet2.Cells(i, 1) Cells(j, 2) = Sheet2.Cells(i, 3) Cells(j, 3) = Sheet2.Cells(i, 4) Cells(j, 4) = Sheet2.Cells(i, 5) Cells(j, 5) = Sheet2.Cells(i, 6) j = j + 1 End If i = i + 1LoopEnd If 'Aici se inchide ***Primul IF**** -------------------------------

'Aici se completeaza titlul, in celula C3 If optCategorie.Value = True Then Cells(3, 3) = cboLuna.List(cboLuna.ListIndex, 1) & " - " & cboCategorii.List(index, 1) Else Cells(3, 3) = cboLuna.List(cboLuna.ListIndex, 1) End If 'Cand am terminat de filtrat stergem categoria aleasa si blocam butonul cmdFiltru cmdFiltru.Enabled = False End Sub

'Butonul de intoarcere in foaia Panou, are atasata procedura urmatoare Private Sub cmdPanou_Click() Sheet1.Visible = xlSheetVisible Sheet1.Select Sheet3.Visible = xlSheetHiddenEnd Sub

ConcluziiDac s-au introdus date greite, acestea se pot corecta prin tergerea ntregii cheltuieli i reintroducerea ei. Dup tergere se introduce din nou cheltuiala, dup procedura obinuit, care n final va fi salvat n baza de date.

2