Documente Academic
Documente Profesional
Documente Cultură
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
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)
'
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
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
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
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