Validate multiple cell data using VBA
I'm stuck in a bit of a pickle could someone please help. I am trying to check if each property has a particular property_id.
Eg:- verify if each of the property has property if "ABC, XYZ, LMN, IJK". Also verify if each of date is > 10-12-2018
| Property | Property_ID | Date |
|----------|-------------|------------|
| A | ABC | 10/12/2018 |
| A | XYZ | 08/11/2018 |
| A | LMN | 12/05/2018 |
| A | IJK | 15/05/2018 |
| B | ABC | 13/12/2018 |
| B | XYZ | 14/10/2018 |
| B | IJK | 15/12/2018 |
| C | LMN | 01/12/2018 |
| C | XYZ | 17/05/2018 |
Expected Result | Property | Property_ID | Date | Result | |----------|-------------|------------|------------| | A | ABC | 10/12/2018 | | A | XYZ | 08/11/2018 | | A | LMN | 12/05/2018 | | A | IJK | 15/05/2018 |All PID's are found | B | ABC | 13/12/2018 | | B | XYZ | 14/10/2018 | | B | IJK | 15/12/2018 |LMN is missing for Property B | C | LMN | 01/12/2018 | | C | XYZ | 17/05/2018 |ABC, IJK is missing for property C
MY Logic:
'CREATING VARIABLE TO ACCESS SHEET RANGE
sheetName1 = "test" 'sheetName SHOULD BE EQUAL TO WORKSHEET NAME (REPLACE THE NAME ACCORDINGLY)
Set sht1 = Sheets(sheetName1)
'FINDING TOTAL NUMBER OF ROWS PRESENT IN THE ACTIVE WORKSHEET
totalRowCount = ActiveWorkbook.Worksheets(sheetName1).Range("A1", Worksheets(sheetName1).Range("A1").End(xlDown)).Rows.Count
previous_Value = sht1.Range("A2")
current_Value = Null
'Creating Flags to verify value
ABC = False
XYZ = False
IJK = False
LMN = False
OPQ = False
Date_Validation = Null
For i = 2 To totalRowCount
current_Value = Trim(sht1.Range("A" & i))
If current_Value = previous_Value Then
promotion_ID = Trim(sht1.Range("B" & i))
'Validate date
Date = "10-12-2018"
If promotion_ID = "ABC" Then
ABC = True
ElseIf promotion_ID = "IJK" Then
IJK = True
ElseIf promotion_ID = "XYZ" Then
XYZ = True
End If
'FULL SERVICE
If promotion_ID = "LMN" Then
LMN = True
ElseIf promotion_ID = "OPQ" Then
OPQ = True
ElseIf promotion_ID = "QWE" Then
QWE = True
End If
Else
sht1.Range("D" & i) = "Here i need to display msg of flag which is not found"
previous_Value = sht1.Range("A" & i)
End If
Eg:- verify if each of the property has property if "ABC, XYZ, LMN, IJK". Also verify if each of date is > 10-12-2018
| Property | Property_ID | Date |
|----------|-------------|------------|
| A | ABC | 10/12/2018 |
| A | XYZ | 08/11/2018 |
| A | LMN | 12/05/2018 |
| A | IJK | 15/05/2018 |
| B | ABC | 13/12/2018 |
| B | XYZ | 14/10/2018 |
| B | IJK | 15/12/2018 |
| C | LMN | 01/12/2018 |
| C | XYZ | 17/05/2018 |
Expected Result | Property | Property_ID | Date | Result | |----------|-------------|------------|------------| | A | ABC | 10/12/2018 | | A | XYZ | 08/11/2018 | | A | LMN | 12/05/2018 | | A | IJK | 15/05/2018 |All PID's are found | B | ABC | 13/12/2018 | | B | XYZ | 14/10/2018 | | B | IJK | 15/12/2018 |LMN is missing for Property B | C | LMN | 01/12/2018 | | C | XYZ | 17/05/2018 |ABC, IJK is missing for property C
MY Logic:
'CREATING VARIABLE TO ACCESS SHEET RANGE
sheetName1 = "test" 'sheetName SHOULD BE EQUAL TO WORKSHEET NAME (REPLACE THE NAME ACCORDINGLY)
Set sht1 = Sheets(sheetName1)
'FINDING TOTAL NUMBER OF ROWS PRESENT IN THE ACTIVE WORKSHEET
totalRowCount = ActiveWorkbook.Worksheets(sheetName1).Range("A1", Worksheets(sheetName1).Range("A1").End(xlDown)).Rows.Count
previous_Value = sht1.Range("A2")
current_Value = Null
'Creating Flags to verify value
ABC = False
XYZ = False
IJK = False
LMN = False
OPQ = False
Date_Validation = Null
For i = 2 To totalRowCount
current_Value = Trim(sht1.Range("A" & i))
If current_Value = previous_Value Then
promotion_ID = Trim(sht1.Range("B" & i))
'Validate date
Date = "10-12-2018"
If promotion_ID = "ABC" Then
ABC = True
ElseIf promotion_ID = "IJK" Then
IJK = True
ElseIf promotion_ID = "XYZ" Then
XYZ = True
End If
'FULL SERVICE
If promotion_ID = "LMN" Then
LMN = True
ElseIf promotion_ID = "OPQ" Then
OPQ = True
ElseIf promotion_ID = "QWE" Then
QWE = True
End If
Else
sht1.Range("D" & i) = "Here i need to display msg of flag which is not found"
previous_Value = sht1.Range("A" & i)
End If
Комментарии
Отправить комментарий