[ aikidomaster @ 17.06.2009. 22:55 ] @
Zanima me sledece:
Da li je moguce da se recimo ako napravim neku formu u excel za pravljenje faktura da napravim CommandButton sa kojim ce ta faktura da se sacuva u nekom novom Excel file-u recimo da se zove po broju fakture koji se unosi u odredjeno polje ili da se zove po datumu pravljenja ... ma samo da se sacuva !???
[ Catch 22 @ 17.06.2009. 23:45 ] @
Prvo taj svoj fajl, nazovimo ga "Faktura", sačuvaš kao xlt (Excel Template), a onda dodaš VBA kod nešto slično ovome:


(prilagodi prema vlastitim potrebama)

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim stLine As String 

stLine = "" & Right(Year(Range(["DATUM"])), 2) _
& "-" & Range(["BROJFAKTURE"]) _
& " " & Range(["NAZIV_FIRME"])

If Me.Name = stLine & ".xls" Then
    Exit Sub
Else
If Range(["BROJFAKTURE"]) <> "000" Then
    FileSaveName = Application.GetSaveAsFilename("" & Right(Year(Range(["DATUM"])), 2) _
    & "-" & Range(["BROJFAKTURE"]) _
    & " " & Range(["NAZIV_FIRME"]), fileFilter:="Excel Files (*.xls), *.xls")
        If FileSaveName <> False Then
            ActiveWorkbook.SaveAs Filename:=FileSaveName

        End If
End If
End If

End Sub


Objašnjenje:
U gornjem primeru su definisana imena (Names) za pojedine ćelije, koje postoje na radnom listu
•DATUM
•BROJFAKTURE
•NAZIV_FIRME
•...

Početna vrednost, prilikom otvaranja fajla, u ćeliji BROJFAKTURE je uvek "000"
Procedura vrši proveru da li pomenuta ćelija ima vrednost različitu od početne i ako je uslov zadovoljen, prilikom zatvaranja fajla nudi da se fajl sačuva kao xls pod prethodno definisanim imenom, koje se sastoji od GG (dvocifrena oznaka za godinu) BROJA FAKTURE i NAZIVA FIRME.

Primer:
-Ako je unet broj fakture: 123
-Datum izdavanja: 18.06.2009 (ovo se takođe drugom procedurom, automatski nudi kao današnji prilikom otvaranja fajla)
-Naziv Firme: ES Forum
Ponuđeno ime pod kojim će Excel sačuvati fajl je: "09-123 ES Forum.xls"
Kada sledeći put otvaramo tako sačuvani fajl, procedura prilikom zatvaranja proverava naziv fajla i preskače sve ostale provere.
Ukoliko je sadržaj fajla menjan, ugrađena excelova procedura će ponuditi da se sačuvaju izmene...

PS
U samom templejtu kod otvaranja fajla postoji forma za unos podataka...

[att_img]

[ aikidomaster @ 18.06.2009. 10:13 ] @
Evo kako sam ja uradio ali dalje ne znam!!!
mislim da ce mi se gomilati u onaj sheet "Istorija" i da nece biti pregledno ne znam kako da to resim !!!
PASS 123

kada se klikne na unesi u istoriju on sacuva u sheet-u istorija ali mislim da bi bolje bilo da se cuva u novom excel dokumentu
[ Catch 22 @ 18.06.2009. 10:56 ] @
Kako sam ti već rekao treba da koristiš excel template, ekstenzija je xlt, koji će automatski prilikom zatvaranja da ponudi da se sve sačuva u novom xls fajlu pod nekim imenom. U tom slučaju ti je istorija višak.

Prethodno citiranu proceduru dodaješ kao VBA kod u "ThisWorkBook"

[att_img]

Naravno da moraš da prilagodiš sve promenljive, vlastitim potrebama...
[ aikidomaster @ 18.06.2009. 20:35 ] @
SUPER to je to !!!
Hvala na pomoci