ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Adding criteria to loop (https://www.excelbanter.com/excel-programming/404200-adding-criteria-loop.html)

Andyjim

Adding criteria to loop
 
I submitted this question earlier, but I don't see my post.

This loop works fine. I need to create a similar loop that does the same
thing except instead of copy and pasting, I need it to delete certain ranges
(specifically cells a:f, K:m, and o:s). This probably could be done with
offsets, but is there a better way? Thanks in advance.



Sub MoveCompletedTradesLoop()


Dim TradesEntered As Range, ClosCheck As Range

With Sheets("Analysis")
Set TradesEntered = .Range("at17:at56")
End With


'Loop: Check for complete trades, copy to Trade History
For X = 1 To TradesEntered.Count
Set ClosCheck = TradesEntered(X)

If ClosCheck.Value = "True" Then
With ClosCheck
.Worksheet.Select
ClosCheck.EntireRow.Select
Selection.Copy
Sheets("TradeHistory").Select
Range("A4").Activate
Selection.End(xlDown).Select
ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
ActiveCell.EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Sheets("Analysis").Select
Range("A1").Select
End With
'Else
' MsgBox ("OK") 'Goes with Else. Comment out
' Exit Sub 'Goes with Else. Comment it out.
End If
Next 'Ends "For Each" Loop




End Sub

joel

Adding criteria to loop
 
You probably want to clearcontents, not delete cells

clearrow = activecell.row
Range("A" & clearrow & ":F" & clearrow).clearcontents
Range("K" & clearrow & ":M" & clearrow).clearcontents
Range("O" & clearrow & ":S" & clearrow).clearcontents


"Andyjim" wrote:

I submitted this question earlier, but I don't see my post.

This loop works fine. I need to create a similar loop that does the same
thing except instead of copy and pasting, I need it to delete certain ranges
(specifically cells a:f, K:m, and o:s). This probably could be done with
offsets, but is there a better way? Thanks in advance.



Sub MoveCompletedTradesLoop()


Dim TradesEntered As Range, ClosCheck As Range

With Sheets("Analysis")
Set TradesEntered = .Range("at17:at56")
End With


'Loop: Check for complete trades, copy to Trade History
For X = 1 To TradesEntered.Count
Set ClosCheck = TradesEntered(X)

If ClosCheck.Value = "True" Then
With ClosCheck
.Worksheet.Select
ClosCheck.EntireRow.Select
Selection.Copy
Sheets("TradeHistory").Select
Range("A4").Activate
Selection.End(xlDown).Select
ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
ActiveCell.EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Sheets("Analysis").Select
Range("A1").Select
End With
'Else
' MsgBox ("OK") 'Goes with Else. Comment out
' Exit Sub 'Goes with Else. Comment it out.
End If
Next 'Ends "For Each" Loop




End Sub


Andyjim

Adding criteria to loop
 
Thanks so much Joel...I'll try this

"Joel" wrote:

You probably want to clearcontents, not delete cells

clearrow = activecell.row
Range("A" & clearrow & ":F" & clearrow).clearcontents
Range("K" & clearrow & ":M" & clearrow).clearcontents
Range("O" & clearrow & ":S" & clearrow).clearcontents


"Andyjim" wrote:

I submitted this question earlier, but I don't see my post.

This loop works fine. I need to create a similar loop that does the same
thing except instead of copy and pasting, I need it to delete certain ranges
(specifically cells a:f, K:m, and o:s). This probably could be done with
offsets, but is there a better way? Thanks in advance.



Sub MoveCompletedTradesLoop()


Dim TradesEntered As Range, ClosCheck As Range

With Sheets("Analysis")
Set TradesEntered = .Range("at17:at56")
End With


'Loop: Check for complete trades, copy to Trade History
For X = 1 To TradesEntered.Count
Set ClosCheck = TradesEntered(X)

If ClosCheck.Value = "True" Then
With ClosCheck
.Worksheet.Select
ClosCheck.EntireRow.Select
Selection.Copy
Sheets("TradeHistory").Select
Range("A4").Activate
Selection.End(xlDown).Select
ActiveCell.Offset(rowoffset:=1, columnoffset:=0).Activate
ActiveCell.EntireRow.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Sheets("Analysis").Select
Range("A1").Select
End With
'Else
' MsgBox ("OK") 'Goes with Else. Comment out
' Exit Sub 'Goes with Else. Comment it out.
End If
Next 'Ends "For Each" Loop




End Sub



All times are GMT +1. The time now is 08:56 PM.

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