isi CmdSave_Click dipindahkan ke module dan ganti namanya menjadi Savingdan 
ubah menjadi :
Private Sub CmdSave_Click()
        Call Saving
End Sub
 pindahkan MainTblHeight  ke module dimana sub rutin Saving beradaPindahkan  
DefineSubTBL ke module dimana sub rutin Saving berada
 Ubah kode dari Saving dan DefineSubTBL Sub Saving()' kode diambil dari 
CmdSave_Click
' ganti       JmlItem = Range(Range("A9"), Range("A9").End(xlDown)).Rows.Count' 
menjadi :
    Range("A9").Activate
    If Range("A9").Offset(1) <> "" Then
        JmlItem = Range(Range("A9"), Range("A9").End(xlDown)).Rows.Count
    Else
        JmlItem = 1
    End If
        End Sub  Private Sub DefineSubTBL() ' Yang di ubah'         Set SubTbl 
= Range(SubTbl, SubTbl.End(xlDown))' menjadi 
    If SubTbl.Offset(1) <> "" Then
        Set SubTbl = Range(SubTbl, SubTbl.End(xlDown))
    End If End Sub

sehingga menjadi :  Private Sub Saving()
   '----------------------------------
   ' siti Vi / simple-data-entry
   '--------------------21-09-2008----
   Dim TblDat As Range
   Dim TblSub As Range
   Dim NewRow As Long
   Dim NewSub As Long
   Dim InvItm As Integer
   Dim r As Long, c As Integer
   Set TblDat = Sheets("DataInv").Range("B3")
   Set TblSub = Sheets("DataSub").Range("B3")
   With WorksheetFunction
      InvItm = .Count(Sheets("InvForm").[c9:c28])
      NewRow = .CountA(Sheets("DataInv").[B3:B10000]) + 1
      NewSub = .CountA(Sheets("DataSub").Range("B3:B40000"))
   End With
   Application.Calculation = xlCalculationManual
   With Sheets("InvForm")
      If .[B5] = "" Then
         MsgBox "Nama Pelanggan Belum diisi", 48, "INV Data Entry"
         .[B5].Select
         Exit Sub
      End If
      If .[A9] = "" Then
         MsgBox "Items Belum diisi", 48, "INV Data Entry"
         .[A9].Select
         Exit Sub
      End If
      '--- mengisi tabel induk ----
      TblDat(NewRow, 0) = NewRow  ' # urut data
      TblDat(NewRow, 1) = .[B2]   ' nr.inv
      TblDat(NewRow, 2) = .[B3]   ' inv date
      TblDat(NewRow, 2).NumberFormat = "dd mmm yy"
      TblDat(NewRow, 3) = .[B5]   ' nama
      TblDat(NewRow, 4) = .[B6]   ' alamat
      TblDat(NewRow, 5) = .[D29]  ' subTtl
      TblDat(NewRow, 6) = .[D30]  ' ppn
      TblDat(NewRow, 7) = .[D31]  ' total
      TblDat(NewRow, 8) = InvItm  ' juml jenis produk
      '--- mengisi tabel anak ----
      Dim JmlItem As Byte
' Koreksi 
    Range("A9").Activate
    If Range("A9").Offset(1) <> "" Then
        JmlItem = Range(Range("A9"), Range("A9").End(xlDown)).Rows.Count
    Else
        JmlItem = 1
    End If
      For r = 1 To JmlItem
         If .[A9:D28].Cells(r, 1) = "" Then Exit For
         TblSub(NewSub + r, 0) = NewSub + r   '# urut
         TblSub(NewSub + r, 1) = .[B2]        ' Nr Inv
         TblSub(NewSub + r, 2) = .[B3]        ' Tg Inv
         TblSub(NewSub + r, 2).NumberFormat = "dd mmm yy"
         TblSub(NewSub + r, 3) = .[B5]        ' Nm Cust
         For c = 4 To 7
            ' NmProduk, Harga, Qty, TotalHarga
            TblSub(NewSub + r, c) = .[A9:D28].Cells(r, c - 3)
         Next c
      Next r
      '--- reset form
      [isian] = ""             ' kosongkan isian
      .[G2] = .[B2].Value      ' inv terakhir di update
      .[B3] = Date             ' tgl hari ini
      .[B5].Select
   End With
   Call MainTblHeight: Call DefineSubTBL
   Application.Calculation = xlCalculationAutomaticEnd Sub
Private Sub DefineSubTBL()
    Dim SubTbl As Range
    Set SubTbl = Sheets("DataSub").Range("A3")
    If SubTbl.Offset(1) <> "" Then
        Set SubTbl = Range(SubTbl, SubTbl.End(xlDown))
    End If    Set SubTbl = Range(SubTbl, SubTbl.End(xlToRight))
    SubTbl.Name = "SubTBL"
End Sub

 To: [email protected]
From: [email protected]
Date: Tue, 13 Mar 2012 17:32:50 +0800
Subject: [belajar-excel] Simple Invoicing System NYANGKUT!!!!


















 



  


    
      
      
      > saya sedang mempelajari file yang pernah diberikan contoh oleh ba 
siti..... sedang asik asik coba belajar, tetapi ada eror pada filenya....> 
apakah ada yang bisa membantu membenarkan vbanya atau mencerahkan kenapa bisa 
terjadi masalah ? saya coba mengganti cara kerja kami diperusahaan sekarang 
yang melakukan rekap penjualan dan pembuatan faktur secara manual...... mohon 
bantuannya teman teman,>>> irwan wijaya 

    
     

    
    






                                          

Kirim email ke