Sljedeći broj fakture - Vijesti

Microsoft Excel nudi brojne predloške računa koje možete preuzeti. Ali ne postoji ugrađeni način povećanja na sljedeći broj fakture.

Snimio sam ovaj video koji pokazuje kako u radnu knjigu dodati nekoliko redaka VBA koda kako biste svaku fakturu mogli spremiti kao novu datoteku. Makronaredba tada briše račun i dodaje 1 na broj računa.

Sa 166 000 pregleda i stotinama komentara, nalazim da se ista pitanja pojavljuju iznova i iznova. Postalo je nepraktično tražiti od ljudi da pročitaju 800 komentara jer je odgovor na njihovo pitanje objavljen već šest puta. Dakle - za popularna pitanja ovdje objavljujem kod.

FAQ # 1

Možete li mi upisati kod jer ne mogu upisati?

Sub NextInvoice() Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents End Sub Sub SaveInvoiceWithNewName() Dim NewFN As Variant ' Copy Invoice to a New Workbook ActiveSheet.Copy NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close NextInvoice End Sub

FAQ # 2

Želim račun sačuvati kao PDF na Windows računalu

Bilješka

Ovaj kôd radi samo u Windows verzijama programa Excel 2010 ili novijim. Za Mac postoji drugačiji kod.

Morate odabrati raspon koji sadrži fakturu i izvršiti Izgled stranice, Područje ispisa, Postavljanje područja ispisa. Ako preskočite ovaj korak, tada će se na vašoj fakturi pojaviti gumbi za pokretanje makronaredbe!

Sub SaveInvoiceAsPDFAndClear() Dim NewFN As Variant NewFN = "C:aaaInv" & Range("E5").Value & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFN, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents End Sub

FAQ # 3

Želim fakturu spremiti kao Excel datoteku i PDF u drugu mapu

Sub SaveInvoiceBothWaysAndClear() Dim NewFN As Variant ' Create the PDF First NewFN = "C:aaaPDFInvoicesInv" & Range("E5").Value & ".pdf" ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFN, _ Quality:=xlQualityStandard, IncludeDocProperties:=True, _ IgnorePrintAreas:=False, OpenAfterPublish:=False ' Next, Save the Excel File ActiveSheet.Copy NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close ' Increment the invoice number Range("E5").Value = Range("E5").Value + 1 ' Clear out the invoice fields Range("A20:E39").ClearContents End Sub

FAQ # 4

Broj moje fakture sadrži brojeve i slova

Morat ćete prilagoditi kod. Evo nekoliko primjera. Heidi ima broj fakture poput SS15001. Kad pogledam taj broj fakture, to je dvoslovni prefiks iza kojeg slijedi 5 znamenki. Novi broj fakture mora koristiti LIJEVO (, 2) i MID (, 3,5):

Range("E5").Value = Left(Range("E5").Value, 2) & 1 + Mid(Range("E5").Value, 3, 5)

Evo složenijeg primjera. Broj fakture je IN-1234-HA, gdje IN- označava fakturu. 1234 je sekvencijalni broj. HA je prvo slovo imena kupca pronađeno u B10.

LeftPart = Left(Range("E5").Value, 3) MidPart = Left(Range("E5").Value, 4, 4) + 1 EndPart = Left(Range("A10").Value, 2) Range("E5").Value = LeftPart & MidPart & EndPart

Gornja četiri retka možete pojednostaviti na sljedeći način:

Range("E5").Value = Left(Range("E5").Value, 3) & Left(Range("E5").Value, 4, 4) + 1 & Left(Range("A10").Value, 2)

FAQ # 5

U radnoj knjizi imam druge makronaredbe (kao što je SpellNumber) i trebaju mi ​​i makronaredbe za spremanje.

Kako biste omogućili ostalim makronaredbama da se pokreću kako bi funkcija Brojevi u riječi nastavila raditi, strategija je malo drugačija. Umjesto da kopirate samo list računa u novu radnu knjigu i koristite SaveAs, (a) sjetit ćete se puta i naziva datoteke radne knjige, (b) upotrijebiti SaveAs za spremanje cijele radne knjige s brojem fakture u ime, (c ) Izbrišite izvornu radnu knjigu. (d) Koristite SaveAs za spremanje radne knjige s izvornim nazivom.

Sub SaveInvoiceWithNewName() Dim OrigFN as Variant Dim NewFN As Variant ' Remember the original path and file name OrigFN = ThisWorkbook.FullName NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ' Save a copy with the new name ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ' Delete the original workbook so you can save without warning On Error Resume Next Kill (OrigFN) On Error Goto 0 ' Save again as the original file name ActiveWorkbook.SaveAs OrigFN, FileFormat:=xlOpenXMLWorkbook NextInvoice End Sub

FAQ # 6

Moram zaštititi radni list kako bi moji zaposlenici mogli mijenjati samo neke ćelije. Kad pokrenem vašu makronaredbu, dobivam "Stanica koju pokušavate promijeniti zaštićena je i stoga samo za čitanje"

Možete ukloniti zaštitu lista u makronaredbi, napisati novi broj fakture, a zatim zaštititi list. To se mora učiniti samo u makronaredbi NextInvoice. Druga makronaredba ne mijenja promjene nijedne stanice. Evo koda ako koristite zaštitu bez lozinke:

Sub NextInvoice() ActiveSheet.Unprotect Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub Here is the code if you have protected the sheet with a password of Tomato. Note that the password appears in this code twice. Change the password to the real password in two places. Sub NextInvoice() ActiveSheet.Unprotect Password:="Tomato" Range("E5").Value = Range("E5").Value + 1 Range("A20:E39").ClearContents ActiveSheet.Protect Password:="Tomato", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub

FAQ # 7

Ne želim imati gumb Spremi u spremljenoj radnoj knjizi

To je nezgodno jer će se naziv vašeg oblika promijeniti kad se radni list premjesti u novu radnu knjigu. Vrlo pažljivo slijedite ove korake:

  1. Otvorite radnu knjigu makronaredba računa
  2. Desnom tipkom miša kliknite karticu lista koja sadrži vašu fakturu. Odaberite Premjesti ili Kopiraj.
  3. Na padajućem izborniku Rezerviraj: odaberite Nova knjiga. Označite potvrdni okvir za Stvori kopiju. Kliknite U redu. Ovaj korak 3 simulira ActiveSheet.Copy u VBA.
  4. Sad kad imate radni list fakture u novoj radnoj knjizi, pritisnite Ctrl i kliknite oblik koji želite izbrisati. Ctrl + Click odabrat će oblik bez pokretanja makronaredbe.
  5. Odabranim oblikom pogledajte lijevo od trake formule. Okvir s imenom prikazivat će naziv kao što je "Zaobljeni pravokutnik 1". Vrlo pažljivo izradite novi redak koda za brisanje ovog oblika kao što je prikazano u nastavku odmah nakon ActiveSheet.Copy:
Sub SaveInvoiceWithNewName() Dim NewFN As Variant ' Copy Invoice to a New Workbook ActiveSheet.Copy ActiveSheet.Shapes("Rounded Rectangle 1").Delete NewFN = "C:aaaInv" & Range("E5").Value & ".xlsx" ActiveWorkbook.SaveAs NewFN, FileFormat:=xlOpenXMLWorkbook ActiveWorkbook.Close NextInvoice End Sub

Rješavanje problema i poruke o pogreškama

  1. Sljedeće se značajke ne mogu spremiti u radne knjige bez makronaredbi: VB Project. Odgovor: Vaša je datoteka trenutno spremljena kao XLSX datoteka. Jednako me živcira što je Microsoft kao zadani odabrao neispravnu vrstu datoteke. Upotrijebite File, SaveAs i promijenite vrstu datoteke u XLSB ili XLSM.
  2. Type Mismatch. Answer: The code expects your invoice number to be a number. If you have SS15001 as an invoice number, you will have to figure out how to adapt your code. See FAQ #4 above.
  3. Compile error Expected line number or label or statement or end of statement on NewFN = “F:RobinusinessPCreceiptsInv” & Range(“H10”).Value & “.xlsx”. Answer: VBA does not like slanted quotation marks (also called Typographers quotes). Type the quotation mark in VBA and you will get "F:RobinusinessPCreceiptsInv" & Range("H10").Value & ".xlsx"
  4. We couldn't find C:UserJelenDocuments" Answer: The file path has to be exact. Are you sure you didn't mean C:UsersJelenDocuments? (Note the "s" at the end of users)
  5. Pogreška vremena izvođenja 1004. Dokument nije spremljen. Odgovor: Put datoteke mora biti točan. Neposredno prije spremanja datoteke dodajte novi redak s MsgBox NewFN. Pokrenite kod. Pojavit će se okvir koji prikazuje put do datoteke i naziv datoteke. Provjerite postoji li separator puta između putanje i naziva datoteke.
  6. Pogreška vremena izvođenja '1004'. Metoda 'SaveAs' objekta '_Workbook' nije uspjela. Odgovor: FileFormat mora biti FileFormat: = xlOpenXMLWorkbook. Kad ga pročitate, trebao bi zvučati poput "Excel Open XML Workbook". To nije Ex One otvorena XML radna knjiga. Da, zbunjujuće je što broj 1 i mala slova L izgledaju slično u videu. 1l. Promijenite X1OPENXMLWORKBOOK u XLOPENXMLWORKBOOK.

Zanimljivi članci...