+ Reply to Thread
Results 1 to 2 of 2

Thread: de-consolidate procedure into parts

  1. #1
    Registered User
    Join Date
    01-28-2012
    Location
    Bangalore
    MS-Off Ver
    Excel 2007
    Posts
    1

    de-consolidate procedure into parts

    Hi All, I'm facing problem in deconsolidate procedure. below is the code, can anybody help on this.
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Dim MainFile As String
    Dim GlbFile As String
    Dim RegFCell As Integer
    Dim RegFName As String
    Dim RegCell As Integer
    Dim RegName As String
    Dim SheetCell As Integer
    Dim SheetName As String
    Dim MyCell As String
    GlbFile = ActiveWorkbook.Name
    Workbooks(GlbFile).Activate
    RegFCell = 6
    RegFName = ActiveWorkbook.Sheets("Screener Process").Range("C" & RegFCell).Value
    RegCell = 6
    RegName = ActiveWorkbook.Sheets("Screener Process").Range("G" & RegCell).Value
    Do
    ActiveWorkbook.Sheets.Copy
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    Do
    Sheets(SheetName).Select
    If Range("A2").Value <> "" Then
    Selection.AutoFilter Field:=1, Criteria1:="<>" & RegName
    Rows(2).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    Selection.AutoFilter
    End If
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    Loop While SheetName <> ""
    Sheets("Index").Select
    Rows(2).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Delete Shift:=xlUp
    Range("A1").Select
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E8").Value
    Do
    ActiveWorkbook.Sheets(SheetName).Select
    With ActiveSheet.Columns(9)
    If Range("I2").Value <> "" Then
    Range("I2", Range("I1000000").End(xlUp).Address).Copy
    ActiveSheet.Paste Destination:=Worksheets("Index").Range("A100000").End(xlUp).Offset(1, 0)
    End If
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    End With
    Loop While SheetName <> ""
    Sheets("Index").Select
    Columns("A:A").Select
    ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:= _
    xlYes
    ActiveWorkbook.Worksheets("Index").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Index").Sort.SortFields.Add Key:=Range("A:A") _
    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Index").Sort
    .SetRange Range("A:A")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    Range("A1").Select
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E8").Value
    Do
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = SheetName
    ActiveCell.Offset(1, 0).Value = "=COUNTIF('" & SheetName & "'!I:I,$A2)"
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    Loop While SheetName <> ""
    
    ActiveCell.Offset(0, 1).Value = "Total"
    ActiveCell.Offset(1, 1).Value = "=Sum(B2:" & ActiveCell.Offset(1, 0).Address(False, False) & ")"
    ActiveCell.Offset(1, 1).Select
    Range(Selection, Range("A1").End(xlDown).Offset(0, 1)).Select
    Selection.FillDown
    Range("A1").End(xlDown).Offset(1, 0).Select
    ActiveCell.Value = "Total"
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = "=Sum(B2:" & Range("A1").End(xlDown).Offset(-1, 1).Address(False, False) & ")"
    ActiveCell.Offset(-1, 0).Select
    ActiveCell.End(xlToRight).Offset(1, 0).Select
    Range(Selection, ActiveCell.End(xlToLeft).Address(False, False)).Select
    Selection.FillRight
    Range("A1", Range("A1").End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    
    With Selection
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Borders.ColorIndex = xlAutomatic
    .Font.Name = "Palatino Linotype"
    .Font.Size = 9
    .NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)"
    .Columns.AutoFit
    End With
    Range("A1").Select
    
    ActiveWorkbook.Sheets.Add
    ActiveSheet.Name = "Stats"
    Range("A1").Value = "Team leader"
    
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E8").Value
    
    Do
    ActiveWorkbook.Sheets(SheetName).Select
    With ActiveSheet.Columns(3)
    If Range("I2").Value <> "" Then
    Range("C2", Range("C1000000").End(xlUp).Address).Copy
    ActiveSheet.Paste Destination:=Worksheets("Stats").Range("A100000").End(xlUp).Offset(1, 0)
    End If
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    End With
    Loop While SheetName <> ""
    
    Sheets("Stats").Select
    ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
    
    Sheets("Screener Process").Select
    Range("E8").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Stats").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    Application.CutCopyMode = False
    Range("A1").End(xlDown).Offset(1, 0).Value = "Total"
    Range("A1").End(xlToRight).Offset(0, 1).Value = "Total"
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    With Selection
    .Borders.LineStyle = xlContinuous
    .Borders.Weight = xlThin
    .Borders.ColorIndex = xlAutomatic
    .Font.Name = "Palatino Linotype"
    .Font.Size = 9
    .NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""??_);_(@_)"
    .Columns.AutoFit
    End With
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Font.Bold = True
    Selection.Interior.ColorIndex = 6
    
    
    Range("A1").Select
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E8").Value
    
    Do
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Offset(1, 0).Value = "=COUNTIF('" & SheetName & "'!C:C,$A2)"
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    Loop While SheetName <> ""
    
    ActiveCell.Offset(1, 1).Value = "=Sum(B2:" & ActiveCell.Offset(1, 0).Address(False, False) & ")"
    ActiveCell.Offset(1, 1).Select
    Range(Selection, Range("A1").End(xlDown).Offset(-1, 1)).Select
    Selection.FillDown
    Range("A1").End(xlDown).Offset(0, 1).Select
    ActiveCell.Value = "=Sum(B2:" & Range("A1").End(xlDown).Offset(-1, 1).Address(False, False) & ")"
    ActiveCell.Offset(-1, 0).Select
    ActiveCell.End(xlToRight).Offset(1, 0).Select
    Range(Selection, ActiveCell.End(xlToLeft).Address(False, False)).Select
    Selection.FillRight
    Range("A1", Range("A1").End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    
    
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("A1").End(xlDown).Offset(3, 0).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    MyCell = ActiveCell.Address(False, False)
    Range(MyCell).Offset(-1, 0).Value = "Fixed Exceptions"
    
    Range("A1", Range("A1").End(xlDown)).Copy
    ActiveSheet.Paste Destination:=Range(MyCell)
    Application.CutCopyMode = False
    Range("A1", Range("A1").End(xlToRight)).Copy
    ActiveSheet.Paste Destination:=Range(MyCell)
    Application.CutCopyMode = False
    
    SheetCell = 8
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E8").Value
    Range(MyCell).Offset(1, 0).Select
    Do
    ActiveCell.Offset(0, 1).Select
    ActiveCell.Value = "=COUNTIFS('" & SheetName & "'!C:C," & Range(MyCell).Offset(1, 0).Address(False, False) & ",'" & SheetName & "'!F:F,""<>""&"""")"
    SheetCell = SheetCell + 1
    SheetName = ActiveWorkbook.Sheets("Screener Process").Range("E" & SheetCell).Value
    Loop While SheetName <> ""
    
    ActiveCell.Offset(0, 1).Value = "=SUM(" & Range(MyCell).Offset(1, 1).Address(False, False) & ":" & ActiveCell.Address(False, False) & ")"
    Range(MyCell).Offset(1, 1).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Range(MyCell).End(xlDown).Offset(-1, 1)).Select
    Selection.FillDown
    Range(MyCell).End(xlDown).Offset(0, 1).Select
    ActiveCell.Value = "=SUM(" & Range(MyCell).Offset(1, 1).Address(False, False) & ":" & ActiveCell.Offset(-1, 0).Address(False, False) & ")"
    
    ActiveCell.Offset(-1, 0).Select
    ActiveCell.End(xlToRight).Offset(1, 0).Select
    Range(Selection, ActiveCell.End(xlToLeft).Address(False, False)).Select
    Selection.FillRight
    Range(MyCell, Range(MyCell).Offset(0, 1)).Select
    Selection.Copy
    Range(MyCell).Offset(-1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    
    next part is:
    Range("A1:" & Range("A1").End(xlToRight).Address).Select
    Range(Selection, Selection.End(xlDown)).Copy
    ActiveSheet.Paste Destination:=Range(MyCell).End(xlDown).Offset(3, 0)
    
    Range(MyCell).End(xlDown).Offset(4, 1).Select
    ActiveCell.Value = "=" & Range("B2").Address(False, False) & "-" & Range(MyCell).Offset(1, 1).Address(False, False)
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.FillRight
    Range(Selection, Selection.End(xlDown)).FillDown
    
    Range(Range(MyCell).Offset(-1, 0).Address & ":" & Range(MyCell).Offset(-1, 1).Address).Copy
    ActiveSheet.Paste Destination:=Range(MyCell).End(xlDown).Offset(2, 0)
    Range(MyCell).End(xlDown).Offset(2, 0).Value = "Pending Exceptions"
    Application.CutCopyMode = False
    Sheets("Screener Process").Delete
    Sheets("Stats").Select
    Range("A1").Select
    
    On Error Resume Next
    MkDir "C:\" & MonthName(Month(Now)) & "-Screeners"
    
    ActiveWorkbook.SaveAs Filename:="C:\" & MonthName(Month(Now)) & "-Screeners\" & RegFName & ".xlsx", FileFormat:= _
    xlOpenXMLWorkbook, CreateBackup:=False
    ActiveWorkbook.Close
    Workbooks(GlbFile).Activate
    
    RegFCell = RegFCell + 1
    RegFName = ActiveWorkbook.Sheets("Screener Process").Range("C" & RegFCell).Value
    
    RegCell = RegCell + 1
    RegName = ActiveWorkbook.Sheets("Screener Process").Range("G" & RegCell).Value
    
    Loop While RegName <> ""
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    
    End Sub
    Last edited by pike; 01-28-2012 at 02:13 AM.

  2. #2
    Forum Guru pike's Avatar
    Join Date
    12-11-2005
    Location
    Alstonville, Australia
    MS-Off Ver
    2010
    Posts
    5,150

    Re: de-consolidate procedure into parts

    Hi sidduk83

    It a big chuck of code.. what do you want to know?
    regards pike

    If the solution helped please donate
    here to the RSPCA

    Sites worth visiting;

    J&R Solutions - royUK

    AJP Excel Information - Andy Pope

    Spreadsheet Toolbox

    VBA for smarties - snb

+ Reply to Thread

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.2.0