![]() |
Modify Code Creating a Formula List
Phil,
Apart from no 1, which I can't see taht it does, this is the other points covered Sub ListFormulas() 'From John Walkenbach List formulas, cell addresses and values in a newly created worksheet Dim FormulaCells As Range, Cell As Range Dim FormulaSheet As Worksheet Dim Row As Integer 'Create a range object for all formula cells On Error Resume Next Set FormulaCells = Range("A1").SpecialCells(xlFormulas, 23) 'Exit if no formulas found If FormulaCells Is Nothing Then MsgBox "No Formulas, or the sheet is protected." Exit Sub End If 'Add a new worksheet Application.ScreenUpdating = False Set FormulaSheet = ActiveWorkbook.Worksheets.Add FormulaSheet.Name = "Formulas in " & FormulaCells.Parent.Name 'Set up the column headings With FormulaSheet Range("A1") = "Address" Range("B1") = "Formula" Range("C1") = "Value" Range("A1:C1").Font.Bold = True End With 'Process each formula Row = 2 For Each Cell In FormulaCells Application.StatusBar = Format((Row - 1) / FormulaCells.Count, "0%") With FormulaSheet Cells(Row, 1) = Cell.Address(RowAbsolute:=False, ColumnAbsolute:=False) Cells(Row, 2) = " " & Cell.Formula Cells(Row, 3) = Cell.Value If InStr(1, Cell.Formula, "[") 0 Then Cells(Row, 2).Font.ColorIndex = 3 End If Row = Row + 1 End With Next Cell 'Adjust column widths With FormulaSheet .Columns("A:A").AutoFit With .Columns("B:C") .ColumnWidth = 45 .WrapText = True End With .Rows("1:1000").AutoFit End With Application.StatusBar = False End Sub -- HTH Bob Phillips ... looking out across Poole Harbour to the Purbecks (remove nothere from the email address if mailing direct) "Phil Hageman" wrote in message ... This is John Walkenback's code to make a list of formulas on a worksheet. I would like to modify it as follows: 1. Not show the rows where there is no formula 2. In the case where a formula links to another workbook, make all fonts red (three columns) 3. Make the "Formula" and "Value" column widths = 45 4. Where columns are not wide enough to display all the text, make row height fit, and wrap. Could someone modify this code? Thanks, Phil Sub ListFormulas() 'From John Walkenback 'List formulas, cell addresses and values in a newly created worksheet Dim FormulaCells As Range, Cell As Range Dim FormulaSheet As Worksheet Dim Row As Integer 'Create a range object for all formula cells On Error Resume Next Set FormulaCells = Range("A1").SpecialCells(xlFormulas, 23) 'Exit if no formulas found If FormulaCells Is Nothing Then MsgBox "No Formulas, or the sheet is protected." Exit Sub End If 'Add a new worksheet Application.ScreenUpdating = False Set FormulaSheet = ActiveWorkbook.Worksheets.Add FormulaSheet.Name = "Formulas in " & FormulaCells.Parent.Name 'Set up the column headings With FormulaSheet Range("A1") = "Address" Range("B1") = "Formula" Range("C1") = "Value" Range("A1:C1").Font.Bold = True End With 'Process each formula Row = 2 For Each Cell In FormulaCells Application.StatusBar = Format((Row - 1) / FormulaCells.Count, "0%") With FormulaSheet Cells(Row, 1) = Cell.Address(RowAbsolute:=False, ColumnAbsolute:=False) Cells(Row, 2) = " " & Cell.Formula Cells(Row, 3) = Cell.Value Row = Row + 1 End With Next Cell 'Adjust column widths FormulaSheet.Columns("A:C").AutoFit Application.StatusBar = False End Sub |
All times are GMT +1. The time now is 12:03 PM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com