ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Get macro to run on all sheets not just the active sheet (https://www.excelbanter.com/excel-programming/426521-get-macro-run-all-sheets-not-just-active-sheet.html)

trey1982

Get macro to run on all sheets not just the active sheet
 
I am new to macros and visual basic. I am trying to get what is found below
to run on all worksheets not just the active sheet which is happening now.

Thank you. (Sorry for the double post in Excel Worksheet Functions)


Sub stock1()
'
' stock1 Macro
'
' Keyboard Shortcut: Ctrl+y
'

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ActiveWorkbook.RefreshAll
Next
For Each ws In ActiveWorkbook.Worksheets
Cells.Find(What:="put options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Range("A1:P317").Select
Selection.Cut
ActiveCell.Offset(-14, 12).Range("A1").Select
Cells.Find(What:="call options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 17).Range("A1").Select
ActiveSheet.Paste
Next
End Sub

Dave Peterson

Get macro to run on all sheets not just the active sheet
 
Option Explicit
Sub stock1()

Dim ws As Worksheet
Dim FoundPutCell As Range
Dim FoundCallCell As Range

ActiveWorkbook.RefreshAll

For Each ws In ActiveWorkbook.Worksheets
With ws
Set FoundPutCell = .Cells.Find(What:="put options", _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If FoundPutCell Is Nothing Then
'not found on this sheet
Else
Set FoundCallCell = .Cells.Find(What:="Call options", _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If FoundCallCell Is Nothing Then
'no call options found
Else
FoundPutCell.Range("A1:P317").Cut _
Destination:=FoundCallCell.Offset(0, 17)
End If
End If
End With
Next ws
End Sub


trey1982 wrote:

I am new to macros and visual basic. I am trying to get what is found below
to run on all worksheets not just the active sheet which is happening now.

Thank you. (Sorry for the double post in Excel Worksheet Functions)

Sub stock1()
'
' stock1 Macro
'
' Keyboard Shortcut: Ctrl+y
'

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ActiveWorkbook.RefreshAll
Next
For Each ws In ActiveWorkbook.Worksheets
Cells.Find(What:="put options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Range("A1:P317").Select
Selection.Cut
ActiveCell.Offset(-14, 12).Range("A1").Select
Cells.Find(What:="call options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 17).Range("A1").Select
ActiveSheet.Paste
Next
End Sub


--

Dave Peterson

trey1982

Get macro to run on all sheets not just the active sheet
 
Works like a charm. Thank you.

"Dave Peterson" wrote:

Option Explicit
Sub stock1()

Dim ws As Worksheet
Dim FoundPutCell As Range
Dim FoundCallCell As Range

ActiveWorkbook.RefreshAll

For Each ws In ActiveWorkbook.Worksheets
With ws
Set FoundPutCell = .Cells.Find(What:="put options", _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If FoundPutCell Is Nothing Then
'not found on this sheet
Else
Set FoundCallCell = .Cells.Find(What:="Call options", _
After:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)

If FoundCallCell Is Nothing Then
'no call options found
Else
FoundPutCell.Range("A1:P317").Cut _
Destination:=FoundCallCell.Offset(0, 17)
End If
End If
End With
Next ws
End Sub


trey1982 wrote:

I am new to macros and visual basic. I am trying to get what is found below
to run on all worksheets not just the active sheet which is happening now.

Thank you. (Sorry for the double post in Excel Worksheet Functions)

Sub stock1()
'
' stock1 Macro
'
' Keyboard Shortcut: Ctrl+y
'

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ActiveWorkbook.RefreshAll
Next
For Each ws In ActiveWorkbook.Worksheets
Cells.Find(What:="put options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Range("A1:P317").Select
Selection.Cut
ActiveCell.Offset(-14, 12).Range("A1").Select
Cells.Find(What:="call options", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Offset(0, 17).Range("A1").Select
ActiveSheet.Paste
Next
End Sub


--

Dave Peterson



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

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