Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I'm not very experienced with VBE, so used the recorder to write macro. As you will see below, it is quite redundant. If fact its too large t compile. Could someone shorten this up with "Do...Loop" or something similar? Also, I need the macro to activate from a selected cell, not "C4". Any help would be much appreciated. I shortened the actual macro down so it wouldn't be so huge in thi post. Sub Macro5() ' ' Macro5 Macro ' Macro recorded 3/21/2006 by ' ' Keyboard Shortcut: Ctrl+Shift+Q ' ActiveCell.FormulaR1C1 = " " Range("C4").Select ActiveCell.FormulaR1C1 = _ "IF(Sheet1!R[88]C[1]="""","""",IF(AND(Sheet1!R[87]C[3]20,Sheet1!R[87}C[4]20,RC[-1],IF(AND(Sheet1!R[87]C[3]<-20,Sheet1!R[87]C[4]<-20,RC[-1],AVERAGE(Sheet1!R[87]C[3],Sheet1!R[87]C[4])/4)))" Range("C4:C84").Select Selection.FillDown Range("F2:G2").Select Selection.Copy Range("C86").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _ :=False, Transpose:=False Range("E86").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = " " Range("C4").Select ActiveCell.FormulaR1C1 = _ "=IF(Sheet1!R[88]C[1]="""","""",IF(AND(Sheet1!R[87]C[3]20,Sheet1!R[87]C[4]20),RC[-1],IF(AND(Sheet1!R[87]C[3]<-20,Sheet1!R[87]C[4]<-20),RC[-1],AVERAGE(Sheet1!R[87]C[3],Sheet1!R[87]C[4])/3.9)))" Range("C4:C84").Select Selection.FillDown Range("F2:G2").Select Selection.Copy Range("C87").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _ :=False, Transpose:=False Range("E87").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = " " Range("C4").Select ActiveCell.FormulaR1C1 = _ "=IF(Sheet1!R[88]C[1]="""","""",IF(AND(Sheet1!R[87]C[3]20,Sheet1!R[87]C[4]20),RC[-1],IF(AND(Sheet1!R[87]C[3]<-20,Sheet1!R[87]C[4]<-20),RC[-1],AVERAGE(Sheet1!R[87]C[3],Sheet1!R[87]C[4])/3.8)))" Range("C4:C84").Select Selection.FillDown Range("F2:G2").Select Selection.Copy Range("C88").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _ :=False, Transpose:=False Range("E88").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = " " Range("C4").Select ActiveCell.FormulaR1C1 = _ "=IF(Sheet1!R[88]C[1]="""","""",IF(AND(Sheet1!R[87]C[3]20,Sheet1!R[87]C[4]20),RC[-1],IF(AND(Sheet1!R[87]C[3]<-20,Sheet1!R[87]C[4]<-20),RC[-1],AVERAGE(Sheet1!R[87]C[3],Sheet1!R[87]C[4])/3.7)))" Range("C4:C84").Select Selection.FillDown Range("F2:G2").Select Selection.Copy Range("C89").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _ :=False, Transpose:=False Range("E89").Select Application.CutCopyMode = False ,This continues on down with the "IF" statement divisor ,decreasing by 1/10 each time until it reaches -4 (as seen below) ActiveCell.FormulaR1C1 = " " Range("C4").Select ActiveCell.FormulaR1C1 = _ "=IF(Sheet1!R[88]C[1]="""","""",IF(AND(Sheet1!R[87]C[3]20,Sheet1!R[87]C[4]20),RC[-1],IF(AND(Sheet1!R[87]C[3]<-20,Sheet1!R[87]C[4]<-20),RC[-1],AVERAGE(Sheet1!R[87]C[3],Sheet1!R[87]C[4])/-4)))" Range("C4:C84").Select Selection.FillDown Range("F2:G2").Select Selection.Copy Range("C165").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone SkipBlanks _ :=False, Transpose:=False Range("E165").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = " " Range("E166").Select End Su -- Rookie ----------------------------------------------------------------------- Rookie1's Profile: http://www.excelforum.com/member.php...fo&userid=3271 View this thread: http://www.excelforum.com/showthread.php?threadid=52540 |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
My excel macro recorder no longer shows up when recording macro | Excel Discussion (Misc queries) | |||
My excel macro recorder no longer shows up when recording macro | Excel Discussion (Misc queries) | |||
Trim function in a macro | Excel Programming | |||
Recording a macro | Excel Programming | |||
Macro recording | Excel Programming |