Sunteți pe pagina 1din 11

VERSION 1:

Sub DualFind()
Dim vFind1 As String, vFind2 As Integer
Dim rFound As Range, lLoop1 As Long, lLoop As Long
Dim bFound As Boolean
Dim rLookIn1 As Range, rLookIn2 As Range
Dim cValue As Variant
Dim iCompanyCnt As Integer, iMstrCompanyCnt As Integer
vFind2 = Worksheets("1999").Name
iCompanyCnt = 4
Do
iMstrCompanyCnt = ActiveCell.Row
vFind1 = Cells(iMstrCompanyCnt, 7)
cValue = GetInfoFromClosedFile("Procssd-Formt", "A" & iCompanyCnt)
vFind1
vFind2
MsgBox
MsgBox

= "7Seas Entertainment Ltd."


= 2013
(vFind2)
("Within Do: " + vFind1 + cValue)

Do Until IsEmpty(cValue)
If LTrim(RTrim(UCase(cValue))) = LTrim(RTrim(UCase(vFind1))) Then
If Year(CDate(GetInfoFromClosedFile("Procssd-Formt", "C" & iCompanyC
nt))) = vFind2 Then
MsgBox (iCompanyCnt)
Range("EO" & iCompanyCnt & ":EU" & iCompanyCnt).Select
Selection.Copy
Exit Do
End If
End If

iCompanyCnt = iCompanyCnt + 1
cValue = GetInfoFromClosedFile("Procssd-Formt", "A" & iCompanyCnt)

Loop
Exit Do
iMstrCompanyCnt = iMstrCompanyCnt + 1
Loop Until IsEmpty(vFind1)
MsgBox ("OUTSIDE:" + cValue)

For lLoop1 = 4 To WorksheetFunction.CountIf(rLookIn1, vFind1)


iMstrCompanyCnt = ActiveCell.Row
MsgBox iYrCnt
Exit For
For lLoop = ActiveCell.Row To WorksheetFunction.CountIf(rLookIn1, vFin
d2)
Set rFound = rLookIn1.Find(What:=vFind1, After:=rFound, LookAt:=
xlWhole)
If UCase(rLookIn2.Cells(rFound.Row, 1)) = UCase(vFind2) Then
bFound = True
Exit For
End If
Next lLoop
Next lLoop1

Set rFound = rLookIn1.Cells(4, 1)


MsgBox (rFound)
If Selection.Areas.Count > 1 Then
Set rLookIn1 = Selection.Areas(1).Columns(1)
Set rLookIn2 = Selection.Areas(2).Columns(1)
Else
Set rLookIn1 = Selection.Columns(1)
Set rLookIn2 = Selection.Columns(2)
End If

'
Set rFound = rLookIn1.Cells(1, 1)
'
'
For lLoop = 1 To WorksheetFunction.CountIf(rLookIn1, vFind1)
'
'
Set rFound = rLookIn1.Find(What:=vFind1, After:=rFound, LookAt:
=xlWhole)
'
'
If UCase(rLookIn2.Cells(rFound.Row, 1)) = UCase(vFind2) Then
'
'
bFound = True
'
'
Exit For
'
'
End If
'
Next lLoop
If bFound = True Then
MsgBox "Match found", vbInformation, "ozgrid.com"
Range(rFound, rLookIn2.Cells(rFound.Row, 1)).Select
Else
MsgBox "Sorry, no match found", vbInformation, "ozgrid.com"
End If
End Sub
Private Function GetInfoFromClosedFile(ByVal wsName As String, cellRef As String
) As Variant
Dim arg As String
Dim wbPath As String
Dim wbName As String
GetInfoFromClosedFile = ""
wbPath = "C:\Users\Rahul\Desktop\SGD-PROJ Systematic Review\Data Analysis\Pr
e-Processing Data_RTh\Preprocessed Versions"
wbName = "Preprocessed_RTh 12012016.xlsm"
If Right(wbPath, 1) <> "\" Then wbPath = wbPath & "\"
If Dir(wbPath & "\" & wbName) = "" Then Exit Function
arg = "'" & wbPath & "[" & wbName & "]" & _
wsName & "'!" & Range(cellRef).Address(True, True, xlR1C1)
On Error Resume Next
GetInfoFromClosedFile = ExecuteExcel4Macro(arg)
End Function
------------------------------------------------------------------------------------------------------------------------------------------------------------------VERSION-2 (WORKING)

Sub DualFind()
Dim srcWrkShtName As String
Dim vSrcCmpany As String, vTrgtCmpany As String
Dim iTrgtRowPosition As Integer, iMstrCompanyCnt As Integer
Dim vSrcYr As Integer, vTrgtYear As Integer
Dim vWithinSrcCompanyCnt As Integer, vWithinYrCnt As Integer
Dim vTrgtDt As Date
vSrcYr = ThisWorkbook.Worksheets(1).Name
srcWrkShtName = LTrim(Str(vSrcYr))
iMstrCompanyCnt = 2
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt, 7)
Do
iTrgtRowPosition = 4
vWithinSrcCompanyCnt = 0
vWithinYrCnt = 0
vTrgtCmpany = ThisWorkbook.Worksheets("Annualizd-Retrns").Cells(iTrgtRowPosi
tion, "A").Value
Do Until IsEmpty(vTrgtCmpany) Or vTrgtCmpany = ""
If LTrim(RTrim(UCase(vTrgtCmpany))) = LTrim(RTrim(UCase(vSrcCmpany))) T
hen
vWithinSrcCompanyCnt = vWithinSrcCompanyCnt + 1
vTrgtDt = ThisWorkbook.Worksheets("Annualizd-Retrns").Cells(iTrgtRow
Position, "C").Value
vTrgtYear = Year(CDate(vTrgtDt))
If vTrgtYear = vSrcYr Then
ThisWorkbook.Worksheets("Annualizd-Retrns").Range("AI" & iTrgtRow
Position & ":AQ" & iTrgtRowPosition).Select
Selection.Copy
ThisWorkbook.Worksheets(srcWrkShtName).Range("N" & iMstrCompanyCn
t).PasteSpecial Paste:=xlPasteValues
Exit Do
Else: vWithinYrCnt = vWithinYrCnt + 1

End If
End If
If (vWithinYrCnt > 0) And (vWithinSrcCompanyCnt = vWithinYrCnt) Then
Exit Do
End If
iTrgtRowPosition = iTrgtRowPosition + 1
vTrgtCmpany = ThisWorkbook.Worksheets("Annualizd-Retrns").Cells(iTrgtRowP
osition, "A").Value
Loop
iMstrCompanyCnt = iMstrCompanyCnt + 1
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt,
7).Value
Loop Until IsEmpty(vSrcCmpany) Or vSrcCmpany = ""
End Sub
------------------------------------------------------------------------------------------------------------------------------------------------------------------VERSION-2B (ALTERNATE DATA ORIENTATION)
Sub PopulateValues()
Dim
Dim
Dim
Dim
Dim
Dim
Dim

cellsToSearch As Range
foundColumn As Range
searchValue As Integer, StartYear As Integer, EndYear As Integer
pivotColumn As Integer, yearDiffStart As Integer, yearDiffEnd As Integer
startColumn As Integer, endColumn As Integer
distinOffsetLeft As Integer, destinLocatnIndex As Integer
destinLocatnLttr As String

StartYear = Range("YEARRNG")(1, 1)
EndYear = StartYear + Range("YEARRNG").Count - 1
searchValue = 2012
Set cellsToSearch = ThisWorkbook.Worksheets("Return Copied").Range("YEARRNG") '
Set your cells to be examined here
Set foundColumn = cellsToSearch.Find(What:=searchValue)
pivotColumn = foundColumn.Column
MsgBox pivotColumn
yearDiffStart = searchValue - StartYear
If (yearDiffStart < 3) Then
startColumn = pivotColumn - yearDiffStart
distinOffsetLeft = (3 - yearDiffStart)
Else:

startColumn = pivotColumn - 3
distinOffsetLeft = 0
End If
yearDiffEnd = EndYear - searchValue
If (yearDiffEnd < 5) Then
endColumn = pivotColumn + yearDiffEnd
Else: endColumn = pivotColumn + 5
End If
MsgBox Str(startColumn) + " - " + Str(endColumn)
destinLocatnIndex = 2 + distinOffsetLeft
destinLocatnLttr = Replace(Cells(1, destinLocatnIndex).Address(0, 0), 1, "")
MsgBox ("LEFT POS: " + destinLocatnLttr)
ThisWorkbook.Worksheets("Return Copied").Range(Cells(4, startColumn), Cells(4, e
ndColumn)).Select
Selection.Copy
ThisWorkbook.Worksheets("Sheet1").Range(destinLocatnLttr & 2).PasteSpecial Paste
:=xlPasteValues
End Sub
---------------------------------------------------------------------------------------------------------------------------------------------------------------VERSION-2B-1 (ALTERNATE DATA ORIENTATION)
Sub PopulateValues()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

cellsToSearch As Range
foundColumn As Range
StartYear As Integer, EndYear As Integer
pivotColumn As Integer, yearDiffStart As Integer, yearDiffEnd As Integer
startColumn As Integer, endColumn As Integer
distinOffsetLeft As Integer, destinLocatnIndex As Integer
vSrcYr As Integer, vTrgtYear As Integer
iTrgtRowPosition As Integer
vSrcCmpany As String
destinLocatnLttr As String
srcWrkShtName As String

vSrcYr = ThisWorkbook.Worksheets(1).Name
srcWrkShtName = LTrim(Str(vSrcYr))
iMstrCompanyCnt = 3
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt, 7)
StartYear = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range("YEARRNG")(1, 1)
EndYear = StartYear + Range("YEARRNG").Count - 1
Set cellsToSearch = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range("YEARRNG
") ' Set your cells to be examined here
Set foundColumn = cellsToSearch.Find(What:=vSrcYr)
pivotColumn = foundColumn.Column

yearDiffStart = vSrcYr - StartYear


If (yearDiffStart < 3) Then
startColumn = pivotColumn - yearDiffStart
distinOffsetLeft = (3 - yearDiffStart)
Else:
startColumn = pivotColumn - 3
distinOffsetLeft = 0
End If
yearDiffEnd = EndYear - vSrcYr
If (yearDiffEnd < 5) Then
endColumn = pivotColumn + yearDiffEnd
Else: endColumn = pivotColumn + 5
End If
destinLocatnIndex = 35 + distinOffsetLeft
destinLocatnLttr = Replace(Cells(1, destinLocatnIndex).Address(0, 0), 1, "")
Do
iTrgtRowPosition = 4
vTrgtCmpany = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Cells(iTrgtRowPo
sition, "A").Value
Do Until IsEmpty(vTrgtCmpany) Or vTrgtCmpany = ""
If LTrim(RTrim(UCase(vTrgtCmpany))) = LTrim(RTrim(UCase(vSrcCmpany))) T
hen
ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range(Cells(iTrgtRowP
osition, startColumn), Cells(iTrgtRowPosition, endColumn)).Select
Selection.Copy
ThisWorkbook.Worksheets(srcWrkShtName).Range(destinLocatnLttr & iMs
trCompanyCnt).PasteSpecial Paste:=xlPasteValues
Exit Do
End If
iTrgtRowPosition = iTrgtRowPosition + 1
vTrgtCmpany = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Cells(iTrgt
RowPosition, "A").Value
Loop
iMstrCompanyCnt = iMstrCompanyCnt + 1
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt,
7).Value
Loop Until IsEmpty(vSrcCmpany) Or vSrcCmpany = ""
End Sub
################################################################################
################################################################################
##
MODULE-1 FINAL:
Sub PopulateReturns()

Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

cellsToSearch As Range
foundColumn As Range
StartYear As Integer, EndYear As Integer
pivotColumn As Integer, yearDiffStart As Integer, yearDiffEnd As Integer
startColumn As Integer, endColumn As Integer
distinOffsetLeft As Integer, destinLocatnIndex As Integer
vSrcYr As Integer, vTrgtYear As Integer
iTrgtRowPosition As Integer
vSrcCmpany As String
destinLocatnLttr As String
srcWrkShtName As String

On Error GoTo ErrorHandler


vSrcYr = ThisWorkbook.Worksheets(1).Name
srcWrkShtName = LTrim(Str(vSrcYr))
iMstrCompanyCnt = 3
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt, 7)
StartYear = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range("YEARRNG")(1, 1)
EndYear = StartYear + Range("YEARRNG").Count - 1
Set cellsToSearch = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range("YEARRNG
") ' Set your cells to be examined here
Set foundColumn = cellsToSearch.Find(What:=vSrcYr)
pivotColumn = foundColumn.Column
yearDiffStart = vSrcYr - StartYear
If (yearDiffStart < 3) Then
startColumn = pivotColumn - yearDiffStart
distinOffsetLeft = (3 - yearDiffStart)
Else:
startColumn = pivotColumn - 3
distinOffsetLeft = 0
End If
yearDiffEnd = EndYear - vSrcYr
If (yearDiffEnd < 5) Then
endColumn = pivotColumn + yearDiffEnd
Else: endColumn = pivotColumn + 5
End If
destinLocatnIndex = 35 + distinOffsetLeft
destinLocatnLttr = Replace(Cells(1, destinLocatnIndex).Address(0, 0), 1, "")
Do
iTrgtRowPosition = 4
vTrgtCmpany = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Cells(iTrgtRowPo
sition, "A").Value
Do Until IsEmpty(vTrgtCmpany) Or vTrgtCmpany = ""
If LTrim(RTrim(UCase(vTrgtCmpany))) = LTrim(RTrim(UCase(vSrcCmpany))) T
hen
ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Range(Cells(iTrgtRowP
osition, startColumn), Cells(iTrgtRowPosition, endColumn)).Select

Selection.Copy
ThisWorkbook.Worksheets(srcWrkShtName).Range(destinLocatnLttr & iMs
trCompanyCnt).PasteSpecial Paste:=xlPasteValues
Exit Do
End If
iTrgtRowPosition = iTrgtRowPosition + 1
vTrgtCmpany = ThisWorkbook.Worksheets("AnnualRetrn Prcssd").Cells(iTrgt
RowPosition, "A").Value
Loop
iMstrCompanyCnt = iMstrCompanyCnt + 1
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt,
7).Value
Loop Until IsEmpty(vSrcCmpany) Or vSrcCmpany = ""
ErrorHandler:
If Err.Number <> 0 Then
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Descripti
on
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
Resume Next
End Sub
********************************************************************************
********************************************************************************
****
MODULE-2 FINAL
Sub PopulateOpPerfData()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

cellsToSearch As Range
foundColumn As Range
StartYear As Integer, EndYear As Integer
pivotColumn As Integer, yearDiffStart As Integer, yearDiffEnd As Integer
startColumn As Integer, endColumn As Integer
rngNameStartColPostn As Integer
distinOffsetLeft As Integer, destinLocatnIndex As Integer
vSrcYr As Integer, vTrgtYear As Integer
iTrgtRowPosition As Integer
vSrcCmpany As String
destinLocatnLttr As String
srcWrkShtName As String

On Error GoTo ErrorHandler


vSrcYr = ThisWorkbook.Worksheets(1).Name
srcWrkShtName = LTrim(Str(vSrcYr))
iMstrCompanyCnt = 3
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt, 7)
StartYear = ThisWorkbook.Worksheets("OPProcessed").Range("YEARRNGOP")(1, 1)

EndYear = StartYear + (Range("YEARRNGOP").Count) / 4 - 1


rngNameStartColPostn = ThisWorkbook.Worksheets("OPProcessed").Range("YEARRNGOP")
(1, 1).Column - 1
Set cellsToSearch = ThisWorkbook.Worksheets("OPProcessed").Range("YEARRNGOP") '
Set your cells to be examined here
Set foundColumn = cellsToSearch.Find(What:=vSrcYr)
pivotColumn = foundColumn.Column - rngNameStartColPostn
n within the defined range name

' pivot column positio

yearDiffStart = vSrcYr - StartYear


If (yearDiffStart < 3) Then
startColumn = rngNameStartColPostn + (pivotColumn - yearDiffStart * 2)
distinOffsetLeft = (3 - yearDiffStart) * 2
Else:
startColumn = rngNameStartColPostn + (pivotColumn - 3 * 2)
distinOffsetLeft = 0
End If
yearDiffEnd = EndYear - vSrcYr
If (yearDiffEnd < 5) Then
endColumn = rngNameStartColPostn + (pivotColumn + yearDiffEnd * 2) + 1
Else: endColumn = rngNameStartColPostn + (pivotColumn + 5 * 2) + 1
End If
destinLocatnIndex = 15 + distinOffsetLeft
destinLocatnLttr = Replace(Cells(1, destinLocatnIndex).Address(0, 0), 1, "")
Do
iTrgtRowPosition = 4
vTrgtCmpany = ThisWorkbook.Worksheets("OPProcessed").Cells(iTrgtRowPosition,
"A").Value
Do Until IsEmpty(vTrgtCmpany) Or vTrgtCmpany = ""
If LTrim(RTrim(UCase(vTrgtCmpany))) = LTrim(RTrim(UCase(vSrcCmpany))) T
hen
ThisWorkbook.Worksheets("OPProcessed").Range(Cells(iTrgtRowPosition
, startColumn), Cells(iTrgtRowPosition, endColumn)).Select
Selection.Copy
ThisWorkbook.Worksheets(srcWrkShtName).Range(destinLocatnLttr & iMs
trCompanyCnt).PasteSpecial Paste:=xlPasteValues
Exit Do
End If
iTrgtRowPosition = iTrgtRowPosition + 1
vTrgtCmpany = ThisWorkbook.Worksheets("OPProcessed").Cells(iTrgtRowPosi
tion, "A").Value
Loop
iMstrCompanyCnt = iMstrCompanyCnt + 1
vSrcCmpany = ThisWorkbook.Worksheets(srcWrkShtName).Cells(iMstrCompanyCnt,
7).Value
Loop Until IsEmpty(vSrcCmpany) Or vSrcCmpany = ""

ErrorHandler:
If Err.Number <> 0 Then
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Descripti
on
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
Resume Next
End Sub

S-ar putea să vă placă și