Hi, All
I mixed up some code for my worksheet but not working. Need expert opinion and help for correction.
Hope someone will rectify my code below
Code
Sub RMS_Button3_Click()
Dim x, y, Hdrs, wbk As Excel.Workbook, i As Long, ii As Long, sNm As String, dNum As Double, d As Double
Const sPath As String = "E:\Upload Folder\"
Hdrs = Array("CODE", "DATE", "PURPOSE", "SEQ", "LEG_SL", "ACCOUNT_CODE", "DR_CR", "ACC_CODE", "ACNUM", "CURR_CODE", "AMOUNT", "BC_AMOUNT", "PRINCIPAL", "INTEREST", "CHARGE", "PREFIX", "NUM", "INST", "ORIG_RESP", "CONTCODE", "ADVICE", "DATE", "IBR", "CAN_CODE", "LEG", "NARRATION")
sNm = [j2]
' Load all data in Bill sheet into array x
x = Sheets("Data Sheet").[a2].CurrentRegion.Columns(2)
w = Sheets("Data Sheet").[b2].CurrentRegion.Columns(8)
' Redimension array y to suit size of array x
ReDim y(1 To UBound(x, 1) - 1, 1 To 26)
' Get the "Number" from cell D1
cTxt = [c1]
gTxt = [g1]
' Size and load array y with only visible Invoice Numbers
ReDim y(1 To 26, 1 To 1)
For i = 2 To UBound(x, 1)
If Not Sheets("Data Sheet").Rows(i + 3).Hidden Then
ii = ii + 1
ReDim Preserve y(1 To 26, 1 To ii)
y(1, ii) = "'008"
y(2, ii) = "'" & Date
y(3, ii) = "'" & cTxt
y(4, ii) = "1"
y(5, ii) = ii
y(6, ii) = "18"
y(7, ii) = "'D"
y(8, ii) = "'2161"
y(11, ii) = x(i + 2, 6)
d = d + y(11, ii)
y(19, ii) = "'O"
y(20, ii) = "'" & x(i, 4)
y(22, ii) = "'" & Date
y(23, ii) = "50"
y(26, ii) = "'Cost of " & gTxt
Else
y(1, ii) = "'008"
y(2, ii) = "'" & Date
y(3, ii) = "'" & cTxt
y(4, ii) = "1"
y(5, ii) = ii
y(6, ii) = "18"
y(7, ii) = "'C"
y(8, ii) = "'146"
y(11, ii) = d
y(26, ii) = "'Cost of " & gTxt
End If
Next
' Create a new workbook with one sheet
Set wbk = Workbooks.Add(1)
Application.ScreenUpdating = 0
' Name the new workbook sheet and add the data to it
With wbk.Sheets(1)
.Name = sNm
' Write contents of arrays Hdrs & y to the new worksheet
.Cells(1, 1).Resize(, 26) = Hdrs
.Cells(2, 1).Resize(UBound(y, 2), 26) = Application.Transpose(y)
' Set the formatting for the new sheet (-4108 is the enumeration for xlCenter)
With .Cells(1).CurrentRegion
.Columns(1).Resize.VerticalAlignment = -4108
.Columns(1).HorizontalAlignment = -4108
.Columns(2).HorizontalAlignment = -4108
.Columns(2).Resize.VerticalAlignment = -4108
.Columns(3).HorizontalAlignment = -4108
.Columns(3).Resize.VerticalAlignment = -4108
.Columns(4).HorizontalAlignment = -4108
.Columns(4).Resize.VerticalAlignment = -4108
.Columns(5).HorizontalAlignment = -4108
.Columns(5).Resize.VerticalAlignment = -4108
.Columns(6).HorizontalAlignment = -4108
.Columns(6).Resize.VerticalAlignment = -4108
.Columns(7).HorizontalAlignment = -4108
.Columns(7).Resize.VerticalAlignment = -4108
.Columns(8).HorizontalAlignment = -4108
.Columns(8).Resize.VerticalAlignment = -4108
.Columns(11).HorizontalAlignment = -4108
.Columns(11).Resize.VerticalAlignment = -4108
.Columns(19).HorizontalAlignment = -4108
.Columns(19).Resize.VerticalAlignment = -4108
.Columns(20).HorizontalAlignment = -4108
.Columns(20).Resize.VerticalAlignment = -4108
.Columns(22).HorizontalAlignment = -4108
.Columns(22).Resize.VerticalAlignment = -4108
.Columns(23).HorizontalAlignment = -4108
.Columns(23).Resize.VerticalAlignment = -4108
.Rows(1).HorizontalAlignment = -4108
.Columns(1).ColumnWidth = 10
.Columns(2).ColumnWidth = 11
.Columns(3).ColumnWidth = 10
.Columns(4).ColumnWidth = 10
.Columns(5).ColumnWidth = 8
.Columns(8).ColumnWidth = 12
.Columns(11).ColumnWidth = 12
.Columns(11).NumberFormat = "#,##0.00"
.Columns(19).ColumnWidth = 10
.Columns(20).ColumnWidth = 16
.Columns(22).ColumnWidth = 13
.Columns(26).ColumnWidth = 20
End With
' Freeze the header Row
ActiveWindow.SplitRow = 1
ActiveWindow.FreezePanes = 1
' Save the new workbook with required name
.Parent.SaveAs sPath & sName & sNm & " Marge" & Format(Now, "dd_mm_yyyy hh_nn") & ".xls", 52
End With
End Sub
Display More
Thanks in Advance.