+ Reply to Thread
Results 1 to 7 of 7

make VBA code smaller

Hybrid View

  1. #1
    Registered User
    Join Date
    10-06-2009
    Location
    Diemen, The Netherlands
    MS-Off Ver
    Excel 2007
    Posts
    87

    Unhappy make VBA code smaller

    Hello friends,

    I'm a beginner with VBA and I want to ask if someone can provide me with the VBA code to make this long code as small as possible.

    Thank you in advance for any help offered.



    Sub PRD2()
    '
    ' PRD2 Macro
    '
        Application.ScreenUpdating = False
    
        Windows("ST1.xls").Activate
        Range("A53:IU53").Select
        Selection.Copy
        Range("A62").Select
        Selection.Insert Shift:=xlDown
    
        Range("D55:V62").Select
        Range("D62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("E62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("F62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("G62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("H62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("I62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("J62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("K62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("L62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("M62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("N62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("O62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("P62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("Q62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("R62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("S62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("T62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("U62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("D55:V62").Select
        Range("V62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("X62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("Y62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("Z62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AA62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AB62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AC62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AD62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AE62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AF62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AG62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AH62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AI62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
        Range("X55:AN62").Select
        Range("AJ62").Activate
        ActiveCell.FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
    
        
    The VBA code actually goes much further 
    
    
        Application.ScreenUpdating = True
    End

  2. #2
    Forum Expert shg's Avatar
    Join Date
    06-20-2007
    Location
    The Great State of Texas
    MS-Off Ver
    2003, 2010
    Posts
    40,678

    Re: make VBA code smaller

    Maybe like this:
    Sub PRD2()
        Workbooks("ST1.xls").Activate
        
        Range("A53:IU53").Copy
        Range("A62").Insert Shift:=xlDown
    
        Range("D62:AJ62").FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
    End
    Entia non sunt multiplicanda sine necessitate

  3. #3
    Registered User
    Join Date
    10-06-2009
    Location
    Diemen, The Netherlands
    MS-Off Ver
    Excel 2007
    Posts
    87

    Re: make VBA code smaller

    Shg, thank you for your reply.

    How do I let the VBA code skip one column if it's empty and it doesn't need to be calculated?

    Greetings

  4. #4
    Forum Expert shg's Avatar
    Join Date
    06-20-2007
    Location
    The Great State of Texas
    MS-Off Ver
    2003, 2010
    Posts
    40,678

    Re: make VBA code smaller

    Use two lines of code.

  5. #5
    Registered User
    Join Date
    10-06-2009
    Location
    Diemen, The Netherlands
    MS-Off Ver
    Excel 2007
    Posts
    87

    Re: make VBA code smaller

    I mean something like;

    If ActiveCell = "" then next ...

  6. #6
    Forum Expert shg's Avatar
    Join Date
    06-20-2007
    Location
    The Great State of Texas
    MS-Off Ver
    2003, 2010
    Posts
    40,678

    Re: make VBA code smaller

    No, like
    Range("D62:Y62").FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"
    Range("AA62:AZ62").FormulaR1C1 = "=COUNT(R[-7]C:R[-1]C)"

+ 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.6.0 RC 1