Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 89
Default Anouther loop question

WOW - those last answers not only worked well but were som mcuh faster that
my code - I LOVE this forum!!!

Below is anouther loop I am using - it works but is slow and inefficient -
any suggestions for improvement would be muxh appreciated. Not sure how to
impliment the 'used range' and 'no selection' tips here.

Sub ProcessCountHistory()
Dim i As Integer

For i = 7 To 7500
Cells(i, 15).Select
If ActiveCell.Value = "" Then
If ActiveCell.Offset(-1, 0).Value = "YES" Then
If ActiveCell.Offset(-2, 0).Value = "YES" Then
If ActiveCell.Offset(-3, 0).Value = "YES" Then
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "NO"
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
End If
Next i
Range("a1").Select
End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Anouther loop question


set rng1 = rng.offset(0,-3).Resize(,3)

Sub ProcessCountHistory()
Dim rng as Range, rng1 as range, cell as Range

set rng = Range(cells(7,15),cells(rows.count,15).End(xlup))

On error Resume Next
set rng1 = rng.specialCells(xlBlanks)
On error goto 0

if rng1 is nothing then exit sub

For each cell in rng1
If Cell.Offset(-1, 0).Value = "YES" Then
If Cell.Offset(-2, 0).Value = "YES" Then
If Cell.Offset(-3, 0).Value = "YES" Then
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "NO"
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"

End If
Next cell
Range("a1").Select
End Sub

This assumes that the cells in column O are actually blank

if the cells appear blank because there is a formula like
=if(condition,"",number result)

so all non blank appearing cells are numeric you could change
xlblank to

xlformulas,xltextvalues

--
Regards,
Tom Ogilvy



"Christy" wrote:

WOW - those last answers not only worked well but were som mcuh faster that
my code - I LOVE this forum!!!

Below is anouther loop I am using - it works but is slow and inefficient -
any suggestions for improvement would be muxh appreciated. Not sure how to
impliment the 'used range' and 'no selection' tips here.

Sub ProcessCountHistory()
Dim i As Integer

For i = 7 To 7500
Cells(i, 15).Select
If ActiveCell.Value = "" Then
If ActiveCell.Offset(-1, 0).Value = "YES" Then
If ActiveCell.Offset(-2, 0).Value = "YES" Then
If ActiveCell.Offset(-3, 0).Value = "YES" Then
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "NO"
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
End If
Next i
Range("a1").Select
End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 89
Default Anouther loop question

Thanks Tom! It works fine but it wouldn't let me use the line above the Sub
ProcessCountHistory() line. I commented thaty out and it seems to work great.
Did I need to put that line above all my subs in the module?

"Tom Ogilvy" wrote:


set rng1 = rng.offset(0,-3).Resize(,3)

Sub ProcessCountHistory()
Dim rng as Range, rng1 as range, cell as Range

set rng = Range(cells(7,15),cells(rows.count,15).End(xlup))

On error Resume Next
set rng1 = rng.specialCells(xlBlanks)
On error goto 0

if rng1 is nothing then exit sub

For each cell in rng1
If Cell.Offset(-1, 0).Value = "YES" Then
If Cell.Offset(-2, 0).Value = "YES" Then
If Cell.Offset(-3, 0).Value = "YES" Then
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "NO"
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"

End If
Next cell
Range("a1").Select
End Sub

This assumes that the cells in column O are actually blank

if the cells appear blank because there is a formula like
=if(condition,"",number result)

so all non blank appearing cells are numeric you could change
xlblank to

xlformulas,xltextvalues

--
Regards,
Tom Ogilvy



"Christy" wrote:

WOW - those last answers not only worked well but were som mcuh faster that
my code - I LOVE this forum!!!

Below is anouther loop I am using - it works but is slow and inefficient -
any suggestions for improvement would be muxh appreciated. Not sure how to
impliment the 'used range' and 'no selection' tips here.

Sub ProcessCountHistory()
Dim i As Integer

For i = 7 To 7500
Cells(i, 15).Select
If ActiveCell.Value = "" Then
If ActiveCell.Offset(-1, 0).Value = "YES" Then
If ActiveCell.Offset(-2, 0).Value = "YES" Then
If ActiveCell.Offset(-3, 0).Value = "YES" Then
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "NO"
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
End If
Next i
Range("a1").Select
End Sub

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Anouther loop question

That was just a stray line that got copied by accident.

--
Regards,
Tom Ogilvy


"Christy" wrote in message
...
Thanks Tom! It works fine but it wouldn't let me use the line above the
Sub
ProcessCountHistory() line. I commented thaty out and it seems to work
great.
Did I need to put that line above all my subs in the module?

"Tom Ogilvy" wrote:


set rng1 = rng.offset(0,-3).Resize(,3)

Sub ProcessCountHistory()
Dim rng as Range, rng1 as range, cell as Range

set rng = Range(cells(7,15),cells(rows.count,15).End(xlup))

On error Resume Next
set rng1 = rng.specialCells(xlBlanks)
On error goto 0

if rng1 is nothing then exit sub

For each cell in rng1
If Cell.Offset(-1, 0).Value = "YES" Then
If Cell.Offset(-2, 0).Value = "YES" Then
If Cell.Offset(-3, 0).Value = "YES" Then
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "NO"
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"
End If
Else
Cell.Offset(0, -2).Value = "Count required?"
Cell.Value = "YES"

End If
Next cell
Range("a1").Select
End Sub

This assumes that the cells in column O are actually blank

if the cells appear blank because there is a formula like
=if(condition,"",number result)

so all non blank appearing cells are numeric you could change
xlblank to

xlformulas,xltextvalues

--
Regards,
Tom Ogilvy



"Christy" wrote:

WOW - those last answers not only worked well but were som mcuh faster
that
my code - I LOVE this forum!!!

Below is anouther loop I am using - it works but is slow and
inefficient -
any suggestions for improvement would be muxh appreciated. Not sure how
to
impliment the 'used range' and 'no selection' tips here.

Sub ProcessCountHistory()
Dim i As Integer

For i = 7 To 7500
Cells(i, 15).Select
If ActiveCell.Value = "" Then
If ActiveCell.Offset(-1, 0).Value = "YES" Then
If ActiveCell.Offset(-2, 0).Value = "YES" Then
If ActiveCell.Offset(-3, 0).Value = "YES" Then
ActiveCell.Offset(0, -2).Value = "Count
required?"
ActiveCell.Value = "NO"
Else
ActiveCell.Offset(0, -2).Value = "Count
required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
Else
ActiveCell.Offset(0, -2).Value = "Count required?"
ActiveCell.Value = "YES"
End If
End If
Next i
Range("a1").Select
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
loop question in VBA h2o[_3_] Excel Programming 1 February 1st 06 08:33 PM
The 7 nested If() function Limitation. Is there anouther way? DMB Excel Worksheet Functions 9 January 15th 06 12:06 AM
end with loop question Lee Hunter Excel Programming 2 November 3rd 05 08:14 PM
copying the function contained within a cell to anouther cell. DMB Excel Worksheet Functions 2 September 1st 05 05:49 PM
In excel, importing from anouther sheet background colors will no. importing backgrounds Excel Worksheet Functions 0 April 20th 05 09:38 PM


All times are GMT +1. The time now is 09:28 AM.

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

About Us

"It's about Microsoft Excel"