Nomor Faktur Berikutnya - Berita

Microsoft Excel menawarkan banyak templat faktur yang dapat Anda unduh. Tetapi tidak ada cara bawaan untuk menaikkan ke nomor faktur berikutnya.

Saya merekam video ini yang menunjukkan cara menambahkan beberapa baris kode VBA ke buku kerja Anda sehingga Anda dapat menyimpan setiap faktur sebagai file baru. Makro kemudian menghapus faktur dan menambahkan 1 ke nomor faktur.

Dengan 166K tampilan dan ratusan komentar, saya menemukan pertanyaan yang sama muncul lagi dan lagi. Menjadi tidak praktis meminta orang untuk membaca 800 komentar karena jawaban atas pertanyaan mereka telah diposting enam kali sebelumnya. Jadi - untuk pertanyaan populer, saya memposting kodenya di sini.

FAQ # 1

Dapatkah Anda mengetikkan kode untuk saya karena saya tidak dapat mengetik?

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

Saya ingin Menyimpan Faktur sebagai PDF di PC Windows

Catatan

Kode ini hanya berfungsi di versi Windows Excel 2010 atau yang lebih baru. Ada kode berbeda untuk Mac.

Anda harus memilih rentang yang berisi faktur dan melakukan Tata Letak Halaman, Area Cetak, Atur Area Cetak. Jika Anda melewati langkah ini, tombol yang digunakan untuk menjalankan makro akan muncul di faktur Anda!

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

Saya ingin Menyimpan Faktur sebagai file Excel dan PDF di folder yang berbeda

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

Nomor faktur saya terdiri dari angka dan huruf

Anda harus menyesuaikan kodenya. Berikut ini beberapa contohnya. Heidi memiliki nomor faktur seperti SS15001. Ketika saya melihat nomor faktur itu, itu adalah awalan dua huruf yang diikuti dengan 5 digit. Nomor invoice baru harus menggunakan LEFT (, 2) dan MID (, 3,5):

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

Berikut adalah contoh yang lebih kompleks. Nomor faktur adalah IN-1234-HA dimana IN- adalah singkatan dari Faktur. 1234 adalah nomor urut. HA adalah huruf pertama dari nama pelanggan yang ditemukan di 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

Anda dapat menyederhanakan empat baris di atas sebagai berikut:

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

FAQ # 5

Saya memiliki makro lain di buku kerja (seperti SpellNumber) dan membutuhkan makro untuk disimpan juga.

Untuk memungkinkan makro Anda yang lain berjalan agar fungsi Angka-ke-Kata tetap berfungsi, strateginya sedikit berbeda. Alih-alih hanya menyalin lembar faktur ke buku kerja baru dan menggunakan SaveAs, Anda akan (a) Mengingat jalur dan nama file buku kerja, (b) Menggunakan SaveAs untuk menyimpan seluruh buku kerja dengan nomor Faktur dalam nama, (c ) Hapus buku kerja asli. (d) Gunakan SaveAs untuk menyimpan buku kerja dengan nama aslinya.

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

Saya perlu melindungi lembar kerja sehingga karyawan saya hanya dapat mengubah beberapa sel. Ketika saya menjalankan makro Anda, saya mendapatkan "Sel yang Anda coba ubah dilindungi dan oleh karena itu hanya-baca"

Anda bisa membuka proteksi lembar di makro, menulis nomor faktur baru, lalu memproteksi lembar. Ini hanya harus dilakukan di makro NextInvoice. Makro lainnya tidak membuat perubahan pada sel mana pun. Berikut kode jika Anda menggunakan proteksi tanpa kata sandi:

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

Saya tidak ingin memiliki tombol Simpan di buku kerja Tersimpan

Ini rumit karena nama bentuk Anda akan berubah saat lembar kerja dipindahkan ke buku kerja baru. Ikuti langkah-langkah ini dengan cermat:

  1. Buka buku kerja makro faktur
  2. Klik kanan pada tab lembar yang berisi faktur Anda. Pilih Pindahkan atau Salin.
  3. Di menu dropdown To Book:, pilih New Book. Pilih kotak centang untuk Buat Salinan. Klik OK. Langkah 3 ini mensimulasikan ActiveSheet.Copy di VBA.
  4. Sekarang setelah Anda memiliki lembar kerja faktur di buku kerja baru, Ctrl-klik pada bentuk yang ingin Anda hapus. Ctrl + Click akan memilih bentuk tanpa menjalankan makro.
  5. Dengan bentuk yang dipilih, lihat di sebelah kiri Formula Bar. Kotak Nama akan menampilkan nama seperti "Rounded Rectangle 1". Dengan sangat hati-hati buat baris kode baru untuk menghapus bentuk ini seperti yang ditunjukkan di bawah ini tepat setelah 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

Pemecahan Masalah & Pesan Kesalahan

  1. Fitur berikut tidak dapat disimpan di buku kerja bebas makro: VB Project. Jawaban: File Anda saat ini disimpan sebagai file XLSX. Saya juga kesal karena Microsoft memilih untuk menggunakan jenis file rusak sebagai default. Gunakan File, SaveAs, dan ubah jenis file menjadi XLSB atau 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. Run Time Error 1004. Dokumen Tidak Disimpan. Jawaban: Jalur file harus tepat. Tepat sebelum Menyimpan file, tambahkan baris baru dengan MsgBox NewFN. Jalankan kodenya. Sebuah kotak akan muncul menunjukkan jalur file dan nama file. Pastikan ada pemisah jalur antara jalur dan nama file.
  6. Jalankan Kesalahan Waktu '1004'. Metode 'SaveAs' dari objek '_Workbook' gagal. Jawaban: FileFormat harus FileFormat: = xlOpenXMLWorkbook. Saat Anda membacanya, seharusnya terdengar seperti "Buku Kerja Excel Open XML". Ini bukan Ex One Open XML Workbook. Ya, membingungkan bahwa angka 1 dan huruf kecil L terlihat sama di video. 1l. Ubah X1OPENXMLWORKBOOK Anda menjadi XLOPENXMLWORKBOOK.

Artikel yang menarik...