Forum Discussion

TARUNKANTI1964's avatar
TARUNKANTI1964
Brass Contributor
May 09, 2022

M.S.EXCEL VBA

Hi, I am completely beginner for EXCEL VBA, here I have created an Excel work book having Three worksheets, where I would like to enter data in cells range "D15:D39" as 'ITEM NAME' and in cells range...
  • HansVogelaar's avatar
    May 09, 2022

    TARUNKANTI1964 

    Not bad for a beginner, you were almost there!

    Try this:

    Sub SaveData()
        Dim ws As Worksheet
        Dim wt As Worksheet
        Dim s As Long
        Dim t As Long
        Dim r As Long
        Application.ScreenUpdating = False
        Set ws = Worksheets("INVOICE")
        Set wt = Worksheets("INVOICELIST")
        ' Find first empty row in columns D:AL on sheet INVOICELIST
        t = wt.Range("D:AY").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
        ' Copy Item Name and Item Quantity
        For s = 1 To 25
            wt.Cells(t, 2 * s + 2).Value = ws.Range("D" & s + 14).Value
            wt.Cells(t, 2 * s + 3).Value = ws.Range("E" & s + 14).Value
        Next s
        wt.Range("AZ" & t).Value = ws.Range("H45").Value
        'Copy inv no
        wt.Range("B" & t).Value = ws.Range("G1").Value
        'Copy Date
        wt.Range("A" & t).Value = ws.Range("G2").Value
        'Copy Company Name
        wt.Range("C" & t).Value = ws.Range("D3").Value
        ' Clear Item Name and Item Quantity
        ws.Range("D15:E39").ClearContents
        ' Optional: clear Invoice Number, Date and Company Name
        ws.Range("D3,G1:G2").ClearContents
        Application.ScreenUpdating = True
    End Sub

Resources