Sub CopyFormat()
Dim wbMain As Workbook, wbData As Workbook
Dim wsData As Worksheet, wsMain As Worksheet
Dim CalCode, Barcode, PublisherCode, Weight, Carton, Pallet, LastRow
Set wbData = Workbooks("TestBook.xlsm")
Set wbMain = Workbooks("WorkingData.xlsm")
Set wsData = wbData.Sheets("Sheet1")
Set wsMain = wbMain.Sheets("Self Appraisal")
For Each c In wsData.Range(wsData.Range("A2"), wsData.Range("A" & Rows.count).End(xlUp))
Barcode = wsData.Range("B" & c.row).Value
Weight = wsData.Range("E" & c.row).Value / 1000
'Weight = Weight
Pallet = wsData.Range("D" & c.row).Value * 50
PublisherCode = Publisher(wsData.Range("A" & c.row).Value, wsData)
CalCode = CAL(wsData.Range("C" & c.row).Value, wsData)
Carton = wsData.Range("D" & c.row).Value
Next c
With wsMain
LastRow = .Cells(.Rows.count, "A").End(xlUp).row + 1
End With
wsMain.Range("A" & LastRow).Value = CalCode
wsMain.Range("B" & LastRow).NumberFormat = "0"
wsMain.Range("B" & LastRow).Value = Barcode
wsMain.Range("C" & LastRow).Value = PublisherCode
wsMain.Range("D" & LastRow).NumberFormat = "#.000"
wsMain.Range("D" & LastRow).Value = Weight
wsMain.Range("E" & LastRow).Value = Carton
wsMain.Range("F" & LastRow).Value = Pallet
End Sub
Function Publisher(X, wsData)
For Each c In wsData.Range(wsData.Range("I1"), wsData.Range("I" & Rows.count).End(xlUp))
If X = wsData.Range("J" & c.row).Value Then
Publisher = wsData.Range("I" & c.row).Value
Exit For
End If
Next c
End Function
Function CAL(X, wsData)
For Each c In wsData.Range(wsData.Range("L1"), wsData.Range("L" & Rows.count).End(xlUp))
If X = wsData.Range("L" & c.row).Value Then
CAL = wsData.Range("M" & c.row).Value
Exit For
End If
Next c
End Function
Sub CopyFormat()
Dim wbMain As Workbook, wbData As Workbook
Dim wsData As Worksheet, wsMain As Worksheet, wsCAL As Worksheet, wsPub As Worksheet
Dim CalCode, Barcode, PublisherCode, Weight, Carton, Pallet, LastRow
Set wbData = Workbooks("Test-PID-Consolidated-Master-2018.xlsm")
Set wbMain = Workbooks("WorkingData.xlsm")
Set wsData = wbData.Sheets("Main Sheet")
Set wsMain = wbData.Sheets("Final Sheet")
Set wsCAL = wbData.Sheets("CAL_NUMBERS")
Set wsPub = wbData.Sheets("PUBLISHER_CODES")
For Each c In wsData.Range(wsData.Range("A6"), wsData.Range("A" & Rows.Count).End(xlUp))
Barcode = wsData.Range("B" & c.Row).Value '2018 barcode
If Application.IsNumber(wsData.Range("AK" & c.Row).Value) Then
Weight = wsData.Range("AK" & c.Row).Value / 1000 'weight divided by 1000
Else
Weight = "The value: " & wsData.Range("AK" & c.Row).Value & " is not a number"
End If
If Application.IsNumber(wsData.Range("AO" & c.Row).Value) Then
Pallet = wsData.Range("AO" & c.Row).Value * 50 'Carton qty * 50 = Pallet
ElseIf Application.IsText(wsData.Range("AO" & c.Row).Value) Then
Pallet = "The value: " & wsData.Range("AO" & c.Row).Value & " is not a number."
Else
Pallet = "The value provided is not a number or text."
End If
PublisherCode = Publisher(wsData.Range("G" & c.Row).Value, wsPub) 'Publisher Codes looked up in Publisher Codes sheet
CalCode = CAL(wsData.Range("A" & c.Row).Value, wsCAL) '2017 barcode lookup in CAL Numbers sheet
Carton = wsData.Range("AO" & c.Row).Value
With wsMain
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
End With
If CalCode <> "" Then
wsMain.Range("A" & LastRow).Value = CalCode
Else
wsMain.Range("A" & LastRow).Value = "2017 Barcode: " & Barcode & " not found"
End If
wsMain.Range("B" & LastRow).NumberFormat = "0"
wsMain.Range("B" & LastRow).Value = Barcode
wsMain.Range("C" & LastRow).Value = PublisherCode
wsMain.Range("D" & LastRow).NumberFormat = "#.000"
wsMain.Range("D" & LastRow).Value = Weight
wsMain.Range("E" & LastRow).Value = Carton
wsMain.Range("F" & LastRow).Value = Pallet
Next c
End Sub
Function Publisher(X, wsPub)
For Each c In wsPub.Range(wsPub.Range("A1"), wsPub.Range("A" & Rows.Count).End(xlUp))
If UCase(X) = UCase(Left(wsPub.Range("A" & c.Row).Value, Len(X))) Then
Publisher = wsPub.Range("B" & c.Row).Value
Exit For
End If
Next c
End Function
Function CAL(X, wsCAL)
For Each c In wsCAL.Range(wsCAL.Range("L1"), wsCAL.Range("L" & Rows.Count).End(xlUp))
If X = wsCAL.Range("L" & c.Row).Value Then
CAL = wsCAL.Range("A" & c.Row).Value
Exit For
End If
Next c
End Function