ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Find 0s on Sheet and Replace with Formula (https://www.excelbanter.com/excel-programming/401942-find-0s-sheet-replace-formula.html)

stevec

Find 0s on Sheet and Replace with Formula
 
Hi, on a sheet in the area M13:AA6000, i'd like a macro to replace all cells
that are empty or have a value of 0 with a calculated number.

For example, if in cell F500 it finds a value of 0, it calculates and pastes
as value in a new number which is the average of the two subsequent cells
(average(g500:h500)

If in cell aa5123 it finds a cell that is blank, it replaces that value with
a formula equal to average(ab5123:ac5123).

if the calculated value is an error or a zero, the value it replaces should
just be 0.

Also, this should loop starting from column aa, then column z, then column
y... to column m

IF this makes sense to anyone, could some post a code that would make this
work or at least point me in the right direction? I'm a beginnger VbA
person, but I'm pretty good at compiling snippests on the forums and making
useful macros...

thanks for thinking about this.

JLGWhiz

Find 0s on Sheet and Replace with Formula
 
Steve, I didn't test this because I didn't want to have to set up the sheet
to do it. So test it on a copy before you permanently install it. It should
go into the standard code module 1 for your VBA project.

Sub replczilch()
Worksheet(" ? ").Activate 'Replace ? with ws name.
For i = 27 To 15 Step -1
For Each c In Range(Cells(13, i), Cells(6000. i))
If c = 0 Or c = "" Then
If c.Offset(0, 1) < 0 And c.Offset(0, 2) < 0 Then
c.Value = Round(c.Offset(0, 1).Value + c.Offset(0, 2).Value)/2)
End If
End If
Next
Next i
End Sub

"SteveC" wrote:

Hi, on a sheet in the area M13:AA6000, i'd like a macro to replace all cells
that are empty or have a value of 0 with a calculated number.

For example, if in cell F500 it finds a value of 0, it calculates and pastes
as value in a new number which is the average of the two subsequent cells
(average(g500:h500)

If in cell aa5123 it finds a cell that is blank, it replaces that value with
a formula equal to average(ab5123:ac5123).

if the calculated value is an error or a zero, the value it replaces should
just be 0.

Also, this should loop starting from column aa, then column z, then column
y... to column m

IF this makes sense to anyone, could some post a code that would make this
work or at least point me in the right direction? I'm a beginnger VbA
person, but I'm pretty good at compiling snippests on the forums and making
useful macros...

thanks for thinking about this.



All times are GMT +1. The time now is 07:23 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com