Dalam dunia produksi, menentukan jumlah pekerja dan waktu yang dibutuhkan untuk menyelesaikan pesanan adalah hal penting agar proses berjalan efisien. Salah satu cara efektif untuk melakukannya adalah dengan menggunakan Otomatisasi jadwal produksi dengan VBA di Excel. Artikel ini akan membahas bagaimana Anda bisa membuat perhitungan otomatis untuk memperkirakan jumlah pekerja dan menetapkan tanggal produksi yang ideal menggunakan script VBA.
Mari kita mulai!
Mengapa Otomatisasi Jadwal Produksi dengan VBA di Excel Penting?
Menggunakan Otomatisasi jadwal produksi dengan VBA di Excel dapat menghemat waktu, mengurangi human error, dan mempercepat pengambilan keputusan di bidang produksi. Dengan script yang tepat, Anda dapat mengatur tanggal mulai produksi, tanggal selesai, memperhitungkan hari libur nasional, serta menentukan kebutuhan pekerja secara otomatis.
Langkah-langkah Membuat Otomatisasi Jadwal Produksi dengan VBA di Excel
Berikut ini adalah langkah-langkah yang bisa Anda ikuti untuk membuat Otomatisasi jadwal produksi dengan VBA di Excel:
1. Buka Excel dan siapkan dua sheet:
A. Sheet1: Data pesanan (berisi produk, tanggal pesanan, deadline, dan jumlah yang harus diproduksi) dimulai dari B3:
Disini, kemampuan produksi sebuah produk harus dipetakan terlebih dahulu. Dan sebagai contoh seorang pekerja dalam sehari memiliki kemampuan produksi sebagai berikut:
- Kursi = 3 buah/hari
- Meja = 2 buah/hari
- Bangku = 4 buah/hari
- Rak = 2 buah/hari
- Kotak = 6 buah/hari
B. Sheet2: Daftar hari libur nasional, dimulai dari B3
2. Buka VBA Editor:
- Tekan
ALT + F11
untuk membuka jendela VBA Editor. - Klik
Insert
>Module
untuk membuat modul baru.
- Salin dan Tempelkan Script VBA Berikut Ini:
Sub HitungPekerjaanProduksiFix()
Dim ws As Worksheet
Dim wsLibur As Worksheet
Dim lastRow As Long
Dim lastRowLibur As Long
Dim i As Long
Dim sisaProduksi As Double
Dim tglPesanan As Date
Dim deadline As Date
Dim hariLiburNasional() As Date
Dim hariKerja As Long
Dim pekerjaDibutuhkan As Double
Dim kapasitasPerHari As Double
Dim namaProduk As String
Dim j As Long
Set ws = ThisWorkbook.Sheets("Sheet1") ' Ganti kalau perlu
Set wsLibur = ThisWorkbook.Sheets("Sheet2")
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
lastRowLibur = wsLibur.Cells(wsLibur.Rows.Count, "B").End(xlUp).Row
' Ambil daftar libur nasional
If lastRowLibur >= 3 Then
ReDim hariLiburNasional(1 To lastRowLibur - 2)
For j = 3 To lastRowLibur
If IsDate(wsLibur.Cells(j, "B").Value) Then
hariLiburNasional(j - 2) = wsLibur.Cells(j, "B").Value
End If
Next j
End If
' Mulai dari baris 3
For i = 3 To lastRow
namaProduk = LCase(Trim(ws.Cells(i, "C").Value)) ' Nama produk
If IsNumeric(ws.Cells(i, "F").Value) Then
sisaProduksi = ws.Cells(i, "F").Value
Else
sisaProduksi = 0
End If
If sisaProduksi = 0 Then
ws.Cells(i, "I").Value = 0
ws.Cells(i, "J").Value = ""
ws.Cells(i, "K").Value = ""
GoTo NextIteration
End If
If IsDate(ws.Cells(i, "G").Value) And IsDate(ws.Cells(i, "H").Value) Then
tglPesanan = ws.Cells(i, "G").Value
deadline = ws.Cells(i, "H").Value
Else
ws.Cells(i, "I").Value = "Tanggal Salah"
ws.Cells(i, "J").Value = ""
ws.Cells(i, "K").Value = ""
GoTo NextIteration
End If
' Tentukan kapasitas per hari sesuai produk
Select Case namaProduk
Case "kursi"
kapasitasPerHari = 3
Case "meja"
kapasitasPerHari = 2
Case "bangku"
kapasitasPerHari = 4
Case "rak"
kapasitasPerHari = 2
Case "kotak"
kapasitasPerHari = 6
Case Else
kapasitasPerHari = 1 ' Kalau produk tidak dikenal, anggap 1 per hari
End Select
' Hitung hari kerja efektif
hariKerja = 0
Dim d As Date
For d = tglPesanan + 1 To deadline - 1
If Weekday(d, vbMonday) <= 5 Then ' Senin–Jumat
Dim isLibur As Boolean
isLibur = False
For j = LBound(hariLiburNasional) To UBound(hariLiburNasional)
If d = hariLiburNasional(j) Then
isLibur = True
Exit For
End If
Next j
If Not isLibur Then
hariKerja = hariKerja + 1
End If
End If
Next d
' Hitung pekerja
If hariKerja > 0 And kapasitasPerHari > 0 Then
pekerjaDibutuhkan = sisaProduksi / (kapasitasPerHari * hariKerja)
' Pembulatan
If pekerjaDibutuhkan - Int(pekerjaDibutuhkan) >= 0.5 Then
pekerjaDibutuhkan = Application.WorksheetFunction.RoundUp(pekerjaDibutuhkan, 0)
Else
pekerjaDibutuhkan = Application.WorksheetFunction.RoundDown(pekerjaDibutuhkan, 0)
End If
ws.Cells(i, "I").Value = pekerjaDibutuhkan
Else
ws.Cells(i, "I").Value = "Cek Data"
End If
' Tentukan Tanggal Produksi
Dim tglProduksi As Date
tglProduksi = tglPesanan + 1 ' Tanggal produksi awal adalah tgl pesanan + 1
' Geser Tanggal Produksi jika jatuh pada Sabtu, Minggu atau Libur Nasional
Do While Weekday(tglProduksi, vbMonday) > 5 Or IsInArray(tglProduksi, hariLiburNasional)
tglProduksi = tglProduksi + 1 ' Geser ke hari berikutnya
Loop
ws.Cells(i, "J").Value = tglProduksi
' Tentukan Tanggal Selesai
Dim tglSelesai As Date
tglSelesai = deadline - 1 ' Tanggal selesai awal adalah deadline - 1
' Geser Tanggal Selesai jika jatuh pada Sabtu, Minggu atau Libur Nasional
Do While Weekday(tglSelesai, vbMonday) > 5 Or IsInArray(tglSelesai, hariLiburNasional)
tglSelesai = tglSelesai - 1 ' Geser ke hari sebelumnya
Loop
ws.Cells(i, "K").Value = tglSelesai
NextIteration:
Next i
MsgBox "Perhitungan Pekerjaan Produksi Selesai!", vbInformation
End Sub
' Fungsi untuk memeriksa apakah tanggal ada di dalam array libur nasional
Function IsInArray(val As Date, arr As Variant) As Boolean
Dim element As Variant
On Error GoTo ErrorHandler
For Each element In arr
If val = element Then
IsInArray = True
Exit Function
End If
Next
IsInArray = False
Exit Function
ErrorHandler:
IsInArray = False
End Function
Berikut tampilannya di VBA Editor:
Penjelasan Singkat Script
Script di atas melakukan beberapa hal penting:
- Membaca data pesanan dari Sheet1 dan hari libur dari Sheet2.
- Menghitung jumlah hari kerja efektif dengan Otomatisasi jadwal produksi dengan VBA di Excel.
- Menghitung jumlah pekerja yang dibutuhkan berdasarkan kapasitas produksi per hari.
- Menentukan tanggal mulai produksi dan tanggal selesai produksi, menghindari akhir pekan dan libur nasional.
Semua ini dilakukan secara otomatis menggunakan Otomatisasi jadwal produksi dengan VBA di Excel sehingga Anda bisa fokus ke hal-hal strategis lainnya.
Langkah Menjalankan Macronya
Setelah Anda selesai menulis dan menyimpan script VBA di editor, kini saatnya menjalankan macro untuk menghitung estimasi pekerja dan waktu produksi secara otomatis. Berikut langkah-langkahnya:
- Pastikan semua data sudah terisi dengan benar di Sheet1 (data pesanan) dan Sheet2 (data hari libur nasional).
- Di Excel, tekan Alt + F8 untuk membuka jendela daftar macro.
- Pilih macro bernama HitungPekerjaanProduksiFix dari daftar yang muncul.
- Klik tombol Run.
- Tunggu beberapa saat hingga muncul pesan “Perhitungan Pekerjaan Produksi Selesai!” yang menandakan proses sudah selesai.
Setelah macro dijalankan, Anda akan melihat kolom pekerja dibutuhkan, tanggal produksi, dan tanggal selesai diisi secara otomatis, menyesuaikan hari kerja dan memperhitungkan libur nasional. Dengan begitu, otomatisasi jadwal produksi dengan VBA di Excel dapat meningkatkan efisiensi dan akurasi tanpa harus menghitung secara manual.
Berikut hasilnya:
Kesimpulan
Dengan menggunakan Otomatisasi jadwal produksi dengan VBA di Excel, Anda bisa meningkatkan akurasi perencanaan produksi, mempercepat proses kerja, dan mengurangi risiko keterlambatan penyelesaian pesanan. Script ini juga sangat fleksibel untuk dimodifikasi sesuai kebutuhan produksi perusahaan Anda.
Jika Anda ingin mengembangkan lebih jauh, Anda bisa menambahkan fitur seperti penyesuaian jam kerja shift, cuti karyawan, atau prioritas pesanan tertentu. Semua bisa diwujudkan dengan Otomatisasi jadwal produksi dengan VBA di Excel.
Selamat mencoba dan semoga produktivitas produksi Anda semakin meningkat dengan bantuan Otomatisasi jadwal produksi dengan VBA di Excel!
Download Template Gratis
Bagi Anda yang ingin mencoba teknik ini secara langsung, kami telah menyiapkan template gratis yang dirancang khusus untuk membantu Anda mempraktikkan Cara Otomatisasi Jadwal Produksi dengan VBA di Excel ini. File Excel bisa didownload melalui tautan berikut:
Atau juga jika ingin mempelajari langkah demi langkah secara visual, bisa kunjungi Youtube Channel Depot Excel. Di sana teman-teman akan melihat bagaimana rumusnya bekerja. Semoga bermanfaat!
0 Komentar