![]() |
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 |
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 |
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