Tuesday, March 8, 2016

Pulling set of rows and columns from a Excel Sheet and place that data under different multiple Sheets.





Public Filename, GCOT, FCCT, Status, Sheetname, Director1, Director

Sub Macro1()
Dim file1
MsgBox ("Open the GCOT automated report")
file1 = Application.GetOpenFilename()

Set owb = Application.Workbooks.Open(file1)

strString = Split(file1, "\")

 'UBound - Returns the highest available subscript for the indicated dimension of an array.
 For i = 0 To UBound(strString) - 1
     ' strNewPath = strNewPath & strString(i) & "\"
       
 Next

 Filename = strString(i)

MsgBox ("File name is: " & Filename)
Workbooks(Filename).Sheets(2).Activate

 GCOT = InputBox("Enter the column number for LOB_Tier1") 'getting values from user. Value for the field should be number
     FCCT = InputBox("Enter the column number for LOB_Tier2")
 Status = InputBox("Enter Idea_Status column number")
 Sheetname = ActiveWorkbook.Sheets(2).Name 'InputBox("Enter the main Sheet name")
 Director1 = InputBox("Enter 'Final Director Name' column number")


  For i = 2 To 12
 
  Workbooks(Filename).Sheets("Directorlist").Activate
   'throwing error unable to extract data from the directorlist
  Workbooks(Filename).Sheets("Directorlist").Cells(i, 3).Activate
  Director = ActiveCell.Value
 
  'Set Director = ActiveSheet.Cells(i, 0).Value
  Call directordata(Filename, Sheetname, Director)
  Next
 
  End Sub
 
Function directordata(Filename, Sheetname, Director)

  '//Sheila Wilson
    On Error Resume Next  'to check whether the Sheetname is matching with the name in the report
    Workbooks(Filename).Sheets(Sheetname).Activate
    If (Err.Number) Then
    MsgBox Sheename & " is not matching with name in the report"
    End If
    Workbooks(Filename).Sheets(Sheetname).Rows("5:5").Select
   
    If (Director <> "Jessica G Adams") Then
   
    Workbooks(Filename).Sheets(Sheetname).Range("$A$5:$W$5").AutoFilter Field:=GCOT, Criteria1:= _
        "GCOT"
       
    Workbooks(Filename).Sheets(Sheetname).Range("$A$5:$W$5").AutoFilter Field:=FCCT, Criteria1:= _
        "FCCT"
    End If
   
   
    Workbooks(Filename).Sheets(Sheetname).Range("$A$5:$W$5").AutoFilter Field:=Status, Criteria1:=Array("Approved", "Draft", "Future Pipeline", "In Progress", _
        "Pending Actuals", "Ready for Finance Review", "Submit for Approval"), Operator _
        :=xlFilterValues
        'Director
       
   
        Workbooks(Filename).Sheets(Sheetname).Range("$A$5:$W$5").AutoFilter Field:=Director1, Criteria1:=Director
     
         On Error Resume Next
         Workbooks(Filename).Sheets(Director).Activate
         If (Err.Number) Then
         MsgBox "Sheet name for " & Director & "does not match"
         End If
         Workbooks(Filename).Sheets(Director).Range("B25").Select
     
        Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlDown)).Select
        Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlToRight)).Select
         Selection.Clear
       
        Workbooks(Filename).Sheets(Sheetname).Activate
        Workbooks(Filename).Sheets(Sheetname).Range("A5").Select
       
        Workbooks(Filename).Sheets(Sheetname).Range(Selection, Selection.End(xlDown)).Select
        Workbooks(Filename).Sheets(Sheetname).Range(Selection, Selection.End(xlToRight)).Select
       
        Selection.Copy
       
     Workbooks(Filename).Sheets(Director).Activate
     Workbooks(Filename).Sheets(Director).Range("B25").Select
     
    Workbooks(Filename).Sheets(Director).Paste
   
    Workbooks(Filename).Sheets(Director).Range("B25").Select
    Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlDown)).Select
    Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlToRight)).Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.RowHeight = 15
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .ColorIndex = 0
        .TintAndShade = 0
        .Weight = xlThin
    End With
   
     With Selection
        .HorizontalAlignment = xlLeft
        .VerticalAlignment = xlTop
        .WrapText = True
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
       
    End With
   
   

        'Deleting unwanted  columns
       
    Workbooks(Filename).Sheets(Director).Range("B25").Select
    Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlDown)).Select
    Workbooks(Filename).Sheets(Director).Range(Selection, Selection.End(xlToRight)).Select
   
    Selection.Columns("G:I").Delete
    Selection.Columns("G:H").Delete
    Selection.Columns("L:Q").Delete
    Selection.Columns("N:AR").Delete
    Selection.Columns("O:AA").Delete 'Q 2015 saves deleted
    Selection.Columns("S:AK").Delete
    Selection.Columns("T:X").Delete
   
    ' Arranging the Automation type in descending order

    Workbooks(Filename).Sheets(Director).Range("N25").Select
   Rows2 = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
   
    Workbooks(Filename).Sheets(Director).Sort.SortFields.Clear ' will clear the existing sorting
    Workbooks(Filename).Sheets(Director).Sort.SortFields.Add Key:=Range("O25"), _
        SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal  'xlAscending 'take a column and sort order
    With Workbooks(Filename).Sheets(Director).Sort  ' parameters of sorting include selecting table(Range), header, apply
       ' .SetRange Range("E15:G21")
        .SetRange Range("B26:T" & Rows2)
        .Header = xlGuess 'xlNo ' xlGuess or xlNo anyone could be used
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
   Workbooks(Filename).Sheets(Sheetname).Activate
   
    Workbooks(Filename).Sheets(Sheetname).Range("$A$5:$W$5").AutoFilter
 
       
End Function


Working on Excel sheets in same Workbook. Getting values from each sheet and consolidating and placing it under one sheet.


'3/8/2016

Attribute VB_Name = "Module1"
Sub ConsolidatedApps()
Dim Workbookname, maxrowcount, Consolidatesheetname, Appname, strX, Vp, Dir
'Workbook name
Dim Test_Annual, Test_Net, Test_Inv, TC_Annual, TC_Net, TC_Inv, O_Annual, O_Net, O_Inv
Workbookname = ActiveWorkbook.Name
Consolidatesheetname = "Consolidated Apps"

'Activate specific application tab and get the values
Workbooks(Workbookname).Sheets(Consolidatesheetname).Activate

maxrowcount = ActiveSheet.UsedRange.Rows.Count

For i = 3 To maxrowcount - 1

'strX = UCase(ActiveSheet.Cells(i, 1).Value)
'str1st = Left(strX, 1)
'strRest = Right(strX, Len(strX) - 1)
'Appname = UCase(str1st) & LCase(strRest)
Appname = ActiveSheet.Cells(i, 1).Value
'Go to respective app tabs and retreive the values

If (Appname = "ABACUS") Then
Appname = "Abacus"
End If

If (Appname = "Oracle Financial Analytics Business Intelligence (BIEE,FABI) & Oracle Reporting") Then
Appname = "OBIEE,FABI"
End If
If (Appname = "Finance Regulatory Reporting Data Warehouse deployment (OFSAA)") Then
Appname = "OFSAA"
End If
If (Appname = "GRC Archer - GRM RDT & Exceptions Mgmt") Then
Appname = "GRC Archer - GRM RDT"
End If
If (Appname = "Asset Backed Securitization (ABS) Re-Architecture") Then
Appname = "Asset Backed Securitization"
End If

If (Appname = "Corporate Asset Liability Management / LCR / TDS") Then
Appname = "Corporate Asset Liability "
End If

If (Appname = "GRE APPROPRIATION REQUEST (GRE AR)") Then
Appname = "GRE AR"
End If

If (Appname = "Integrated Workplace Management System (IWMS)") Then
Appname = "IWMS"
End If

If (Appname = "Basel Analytical & Reporting Environment") Then
Appname = "Basel Analytical & Reporting "
End If

If (Appname = "BI&DW-Rewards & Rebates Applications") Then
Appname = "BI&DW-Rewards"
End If

If (Appname = "Basel II ODS Warehouse / Basel II RWA-C") Then
Appname = "Basel_ODS_Warehouse & RWA-C"
End If

Workbooks(Workbookname).Sheets(Appname).Activate
Vp = Workbooks(Workbookname).Sheets(Appname).Cells(3, 4).Value
Dir = Workbooks(Workbookname).Sheets(Appname).Cells(4, 4).Value
Test_Annual = Workbooks(Workbookname).Sheets(Appname).Cells(30, 20).Value
Test_Net = Workbooks(Workbookname).Sheets(Appname).Cells(30, 21).Value
Test_Inv = Workbooks(Workbookname).Sheets(Appname).Cells(30, 4).Value

TC_Annual = Workbooks(Workbookname).Sheets(Appname).Cells(59, 17).Value + Workbooks(Workbookname).Sheets(Appname).Cells(59, 18).Value
TC_Net = Workbooks(Workbookname).Sheets(Appname).Cells(59, 19).Value
TC_Inv = Workbooks(Workbookname).Sheets(Appname).Cells(59, 4).Value
     
O_Annual = Workbooks(Workbookname).Sheets(Appname).Cells(93, 4).Value + Workbooks(Workbookname).Sheets(Appname).Cells(93, 10).Value + Workbooks(Workbookname).Sheets(Appname).Cells(92, 16).Value
O_Net = O_Annual - O_Inv 'Workbooks(Workbookname).Sheets(Appname).Cells(93, 16).Value
O_Inv = Workbooks(Workbookname).Sheets(Appname).Cells(92, 4).Value + Workbooks(Workbookname).Sheets(Appname).Cells(92, 10).Value + Workbooks(Workbookname).Sheets(Appname).Cells(92, 17).Value

Workbooks(Workbookname).Sheets(Consolidatesheetname).Activate

'Insert the values

ActiveSheet.Cells(i, 3).Value = Vp
ActiveSheet.Cells(i, 4).Value = Dir
ActiveSheet.Cells(i, 5).Value = Test_Annual
ActiveSheet.Cells(i, 6).Value = Test_Inv
ActiveSheet.Cells(i, 7).Value = Test_Net
ActiveSheet.Cells(i, 8).Value = TC_Annual
ActiveSheet.Cells(i, 10).Value = TC_Net
ActiveSheet.Cells(i, 9).Value = TC_Inv
ActiveSheet.Cells(i, 11).Value = O_Annual
ActiveSheet.Cells(i, 13).Value = O_Net
ActiveSheet.Cells(i, 12).Value = O_Inv


Next

End Sub