Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 691
Default Replacing formulas in Excel

Formulas usually work only in a specific cell because the adjust addresses
depending on where they are used. Are the formulas all exactly
the same ?

Can you give an example of what you have and what you want.

Look at the Replace function in VBE HELP.

Also Ctrl+H replace in the worksheet will also work on formulas.

---
HTH,
David McRitchie, Microsoft MVP - Excel [site changed Nov. 2001]
My Excel Pages: http://www.mvps.org/dmcritchie/excel/excel.htm
Search Page: http://www.mvps.org/dmcritchie/excel/search.htm

"Vijay" wrote in message ...

I have a workbook with 15 worksheets in it. I need to go through all the cells in the entire workbook and replace certain formulas

with values and some with other formulas. I am currently doing this task using VB 6.0 by looping through all the cells in all the
worksheets of the workbook, but this process goes on forever and ever and I am yet to see if finish. Is there a quicker and easier
way to accomplish this?

Thanks in advance.

- Vijay



  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Replacing formulas in Excel

David

Well, the formulas are not the same everywhere, but the function used in the formulas are the same
e.g. some of the formulas are =SUM(A1:A3), =SUM(B4:B9), SUM(D20:D31), etc. But the common thing in all the formulas is that all the formulas that I need replaced have the SUM() in them. I need these replaced with its resultant values. But at the same time, I need to leave every other cell in the worksheet as it is. I hope I am clear in what I am saying

Here is what I currently have.... its in VB 6.

' wkb is source workboo
' wkb1 is destination workboo
' I copy each worksheet from source to destination and then loop thru' the cells in the destination to check the formulas in them and perform the replace

For Each wks In wkb.Worksheet
isHidden = wks.Visibl

wks.Visible = xlSheetHidde
wks.Activat
Cells.Selec
Selection.Cop
wkb1.Worksheets(i).Activat

Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=
False, Transpose:=Fals

Range("A1").Selec
wkb1.Worksheets(i).Name = wks.Nam

' Loop thru' each cell to strip off the formula for specific cells
For Each cel In wkb1.Worksheets(i).UsedRang
If cel.HasFormula The
curcell = cel.Formul
Els
curcell = cel.Valu
End I

cel.Cop

Range(cel.Address).Selec

If InStr(0, curcell, "=SUM(", 1) 0 The
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
False, Transpose:=Fals
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=
False, Transpose:=Fals
Els
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=
False, Transpose:=Fals
End I

Nex

wkb1.Worksheets(i).Visible = isHidde

i = i +
Nex

Thanks
- Vija

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 136
Default Replacing formulas in Excel

Try this:

Sub test()
Dim testrange()
Dim fillrange()
Dim theusedrange As Range
Dim firstrow As Integer, lastrow As Integer, firstcol As Integer,
lastcol As Integer
Dim i As Integer, j As Integer
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ActiveWorkbook.Worksheets
wks.Activate
firstrow = ActiveSheet.UsedRange.Row
lastrow = ActiveSheet.UsedRange.Rows.Count + firstrow - 1
firstcol = ActiveSheet.UsedRange.Column
lastcol = ActiveSheet.UsedRange.Columns.Count + firstcol - 1
Set theusedrange = Range(Cells(firstrow, firstcol),
Cells(lastrow, lastcol))
ReDim testrange(firstrow To lastrow, firstcol To lastcol)
ReDim fillrange(firstrow To lastrow, firstcol To lastcol)
For i = firstrow To lastrow
For j = firstcol To lastcol
fillrange(i, j) = Cells(i, j).Value
testrange(i, j) = Cells(i, j).Formula
If Left(testrange(i, j), 5) = "SUM(" Then
fillrange(i, j) = testrange(i, j)
End If
Next j
Next i
theusedrange.Value = fillrange
Set theusedrange = Nothing
Next wks
Application.ScreenUpdating = True
End Sub


Vijay wrote:

David,

Well, the formulas are not the same everywhere, but the function used in the formulas are the same.
e.g. some of the formulas are =SUM(A1:A3), =SUM(B4:B9), SUM(D20:D31), etc. But the common thing in all the formulas is that all the formulas that I need replaced have the SUM() in them. I need these replaced with its resultant values. But at the same time, I need to leave every other cell in the worksheet as it is. I hope I am clear in what I am saying.

Here is what I currently have.... its in VB 6.0

' wkb is source workbook
' wkb1 is destination workbook
' I copy each worksheet from source to destination and then loop thru' the cells in the destination to check the formulas in them and perform the replace.

For Each wks In wkb.Worksheets
isHidden = wks.Visible

wks.Visible = xlSheetHidden
wks.Activate
Cells.Select
Selection.Copy
wkb1.Worksheets(i).Activate

Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("A1").Select
wkb1.Worksheets(i).Name = wks.Name

' Loop thru' each cell to strip off the formula for specific cells.
For Each cel In wkb1.Worksheets(i).UsedRange
If cel.HasFormula Then
curcell = cel.Formula
Else
curcell = cel.Value
End If

cel.Copy

Range(cel.Address).Select

If InStr(0, curcell, "=SUM(", 1) 0 Then
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Else
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If

Next

wkb1.Worksheets(i).Visible = isHidden

i = i + 1
Next


Thanks!
- Vijay

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 136
Default Replacing formulas in Excel- correction

Option Explicit

Sub test()
Dim testrange()
Dim fillrange()
Dim theusedrange As Range
Dim firstrow As Integer, lastrow As Integer, firstcol As Integer,
lastcol As Integer
Dim i As Integer, j As Integer
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ActiveWorkbook.Worksheets
wks.Activate
firstrow = ActiveSheet.UsedRange.Row
lastrow = ActiveSheet.UsedRange.Rows.Count + firstrow - 1
firstcol = ActiveSheet.UsedRange.Column
lastcol = ActiveSheet.UsedRange.Columns.Count + firstcol - 1
Set theusedrange = Range(Cells(firstrow, firstcol),
Cells(lastrow, lastcol))
ReDim testrange(firstrow To lastrow, firstcol To lastcol)
ReDim fillrange(firstrow To lastrow, firstcol To lastcol)
For i = firstrow To lastrow
For j = firstcol To lastcol
fillrange(i, j) = Cells(i, j).Formula
testrange(i, j) = Cells(i, j).Value
If Left(fillrange(i, j), 5) = "=SUM(" Then
fillrange(i, j) = testrange(i, j)
End If
Next j
Next i
theusedrange.Formula = fillrange
Set theusedrange = Nothing
Next wks
Application.ScreenUpdating = True
End Sub
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
excel replacing my text Dutchess46514 Excel Worksheet Functions 3 September 12th 09 05:43 PM
Excel - replacing Text in workbooks Frank Excel Worksheet Functions 1 August 7th 07 12:57 AM
Replacing formulas with its value Marcus A Excel Worksheet Functions 4 September 21st 06 06:24 PM
replacing just the sheet names within formulas Jeanne Criez Excel Worksheet Functions 1 January 4th 05 06:27 PM
Replacing a number with a description in Excel Steinbart Excel Worksheet Functions 2 December 7th 04 09:43 PM


All times are GMT +1. The time now is 04:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"