Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi to all !!
I have a small problem in Excel97, although I don't know if the Excel version is relevant. In some of my sheets, I've elaborated some complex formulas which, sometimes, can lead to the infamous "#NA" result. I want to replace the "#NA" by a clean 2 characters "NA" string. As there are MANY formulas, I want to develop a VBA sub which does the work : a) pick up the actual formula (which we'll define as FormulaContent) (maybe save the activecell.address so as to be able to write to that range) b) replace it by IF(ISERROR( FC ),"NA", FC) WHERE FC is FormulaContent without the preceeding "=" sign I thank you by advance. Best regards, -- Herve Hanuise |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Herve
you could try something like this Sub Exchange_Formula() Dim cell_ As Range Dim str_formula As String For Each cell_ In ActiveSheet.Cells If cell_.HasFormula Then str_formula = Right(cell_.Formula, Len(cell_.Formula) - 1) cell_.Formula = "=if(iserror(" & str_formula & "),""NA""," & str_formula & ")" End If Next cell_ End Sub hth Carlo On Nov 29, 3:24 pm, affordsol wrote: Hi to all !! I have a small problem in Excel97, although I don't know if the Excel version is relevant. In some of my sheets, I've elaborated some complex formulas which, sometimes, can lead to the infamous "#NA" result. I want to replace the "#NA" by a clean 2 characters "NA" string. As there are MANY formulas, I want to develop a VBA sub which does the work : a) pick up the actual formula (which we'll define as FormulaContent) (maybe save the activecell.address so as to be able to write to that range) b) replace it by IF(ISERROR( FC ),"NA", FC) WHERE FC is FormulaContent without the preceeding "=" sign I thank you by advance. Best regards, -- Herve Hanuise |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Carlo !
So sorry for the late reply but I wish to thank you for your code : it does the job quite perfectly. I just changed it a little bit to match MY OWN ranges and I post it here so as to 'empower' anyone which might be interested in the post. Best regards from Belgium, Hervé+ '================================================= ============== Sub VoidNAinPrintout() Dim cell_ As Range Dim str_formula As String 'Here is the all sheet startup 'For Each cell_ In ActiveSheet.Cells For Each cell_ In ActiveSheet.Range("L25:P26") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J31:U33") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J35:U39") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J41:U44") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J49:U61") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J63:U70") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J75:U77") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J79:U98") GoSub CLEANME Next cell_ For Each cell_ In ActiveSheet.Range("J102:U104") GoSub CLEANME Next cell_ Exit Sub '<<<<<<<<<<<<<<<<<<< CLEANME: If cell_.HasFormula Then str_formula = Right(cell_.Formula, Len(cell_.Formula) - 1) cell_.Formula = "=if(iserror(" & str_formula & "),""NA""," & str_formula & ")" End If Return ' End Sub '================================================= ============== -- Herve Hanuise "carlo" wrote: Hi Herve you could try something like this Sub Exchange_Formula() Dim cell_ As Range Dim str_formula As String For Each cell_ In ActiveSheet.Cells If cell_.HasFormula Then str_formula = Right(cell_.Formula, Len(cell_.Formula) - 1) cell_.Formula = "=if(iserror(" & str_formula & "),""NA""," & str_formula & ")" End If Next cell_ End Sub hth Carlo On Nov 29, 3:24 pm, affordsol wrote: Hi to all !! I have a small problem in Excel97, although I don't know if the Excel version is relevant. In some of my sheets, I've elaborated some complex formulas which, sometimes, can lead to the infamous "#NA" result. I want to replace the "#NA" by a clean 2 characters "NA" string. As there are MANY formulas, I want to develop a VBA sub which does the work : a) pick up the actual formula (which we'll define as FormulaContent) (maybe save the activecell.address so as to be able to write to that range) b) replace it by IF(ISERROR( FC ),"NA", FC) WHERE FC is FormulaContent without the preceeding "=" sign I thank you by advance. Best regards, -- Herve Hanuise |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
HELP...Draging cell without changing Formula linked to cell | Excel Discussion (Misc queries) | |||
changing cell formula | Excel Worksheet Functions | |||
how to edit formula without changing formula of each cell | Excel Worksheet Functions | |||
get the value of a formula in cell B1 into cell A1 without changing my current cell selection | Excel Programming | |||
Changing cell from formula to data. | Excel Discussion (Misc queries) |