Public Category As String
Public CustRef As String
Public FirstName As String
Public LastName As String
Public Exec As String
Public UniqueID As String
Public xCategory As String
Public xCustRef As String
Public xFirstName As String
Public xLastName As String
Public xExec As String
Public xUniqueID As String
Public Function ConvertColumn(ColumnNumber As Integer)
Rem Converts a column number to its column letter reference
ConvertColumn = WorksheetFunction.Substitute(Cells(1, ColumnNumber).AddressLocal(RowAbsolute = True, ColumnAbslute = True), 1, "")
End Function
Private Sub InsertEntry(Category As String, CustRef As String, FirstName As String, LastName As String, Exec As String, RowN As Integer, UniqueID As String)
Rem Checks for exitence of entry to acoid duplicates
If WorksheetFunction.CountIf(Sheets(Category).Range("X:X"), UniqueID) > 0 Then Exit Sub
Rem Inputs data from source
Sheets(Category).Range("A" & RowN).EntireRow.Insert
Sheets(Category).Range("A" & RowN) = CustRef
Sheets(Category).Range("E" & RowN) = FirstName
Sheets(Category).Range("F" & RowN) = LastName
Sheets(Category).Range("X" & RowN) = UniqueID
End Sub
Private Sub SendData()
Rem Assigns variable to column letter reference for every Label/Header
xCategory = ConvertColumn(WorksheetFunction.Match("Category", Range("1:1"), 0))
xCustRef = ConvertColumn(WorksheetFunction.Match("Customer Reference Value", Range("1:1"), 0))
xFirstName = ConvertColumn(WorksheetFunction.Match("First Name", Range("1:1"), 0))
xLastName = ConvertColumn(WorksheetFunction.Match("Last Name", Range("1:1"), 0))
xExec = ConvertColumn(WorksheetFunction.Match("Sr. Exec.", Range("1:1"), 0))
xUniqueID = ConvertColumn(WorksheetFunction.Match("Unique ID", Range("1:1"), 0))
Rem Start processing source data starting with row 2
For i = 2 To WorksheetFunction.CountA(Range("B:B"))
Rem Create variables to values from Source table
Category = Range(xCategory & i)
CustRef = Range(xCustRef & i)
FirstName = Range(xFirstName & i)
LastName = Range(xLastName & i)
Exec = Range(xExec & i)
UniqueID = Range(xUniqueID & i)
On Error Resume Next
Rem Verify which sheet to apply entry
Select Case Category
Case "WC"
Case "Corp"
InsertEntry Category, CustRef, FirstName, LastName, Exec, WorksheetFunction.Match(Exec, Sheets(Category).Range("I:I"), 0), UniqueID
Case Else
InsertEntry Category, CustRef, FirstName, LastName, Exec, 7, UniqueID
End Select
Next i
End Sub
Private Sub CommandButton1_Click()
SendData
End Sub
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62:





by: CbrinePosted on 2009-08-21 at 10:28:05ID: 25153920
OK, looks like no one else is gonna take a shot at it, so here goes...
Select allOpen in new window