Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 65
Default Help with For...each...next

The following code is in a regular module in a workbook named DATA
COLLECTION. It checks to see if a worksheet with the same name as the active
worksheet exists in another workbook named DATA STORAGE AND RETRIEVAL. If
the sheet name does not exist, the sheet from DATA COLLECTION is copied over.
If it does, the like-named sheet is first deleted from DATA STORAGE AND
RETRIEVAL and then the sheet is copied over. (this was created with a lot of
help from this board)

I want to use a For...each...next loop to check all sheet names in DATA
COLLECTION but I think I'm having trouble with my object names or variables.
The sub runs only on the sheet that is active when it starts (I believe).
Can anyone help me trouble shoot this?

Sub Data_Mover()
Application.Run "'DATA COLLECTION.xls'!StopTimer_Collect"
Windows("DATA COLLECTION").Activate

For Each Worksheet in Worksheets

Dim wksName As String
wksName = ActiveSheet.Name

Dim wbk As Workbook

On Error Resume Next
Set wbk = Workbooks("DATA STORAGE AND RETRIEVAL.xls")
On Error GoTo 0

If wbk Is Nothing Then
'MsgBox "Opening DATA STORAGE AND RETRIEVAL"
Set wbk = Workbooks.Open("P:\Bowling Green\QA DATA\QA DATA
COLLECTION\DATA STORAGE AND RETRIEVAL.xls")
Windows("DATA COLLECTION").Activate
End If

Application.DisplayAlerts = False 'not "are you sure prompt"
On Error Resume Next 'in case it isn't there
Workbooks("DATA STORAGE AND RETRIEVAL").Worksheets(wksName).Delete
On Error GoTo 0
Application.DisplayAlerts = True
Sheets(wksName).Select
ActiveSheet.Unprotect
Worksheets(wksName).Copy After:=Workbooks( _
"DATA STORAGE AND RETRIEVAL").Worksheets("DATA STORAGE AND
RETRIEVAL")
ActiveWindow.FreezePanes = False
Rows("11:11").Select
Selection.Insert Shift:=xlDown
Rows("10:10").Select
Selection.Copy
Rows("11:11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Rows("10:10").Delete
Rows("1:7").Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection
ActiveWindow.SelectedSheets.Visible = False
Windows("DATA COLLECTION").Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

Next

Application.Run "'DATA COLLECTION.xls'!StartTimer_Collect"

End Sub


--
n00b lookn for a handout :)
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,058
Default Help with For...each...next

This seems to work. It assumes both workbooks are open. You might want to
turn off display alerts as well:

Sub copyover()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim sh As Worksheet
Set wb1 = Workbooks("DATA COLLECTION.xls")
Set wb2 = Workbooks("DATA STORAGE AND RETRIEVAL.xls")

wb1.Activate
cName = ActiveSheet.Name
MsgBox (cName)

isthere = False
For Each sh In wb2.Worksheets
If sh.Name = cName Then
isthere = True
End If
Next

If isthere Then
wb2.Activate
Sheets(cName).Delete
End If

wb1.Activate
ActiveSheet.Copy Befo=wb2.Sheets(1)
End Sub

--
Gary''s Student - gsnu200749


"Arnie" wrote:

The following code is in a regular module in a workbook named DATA
COLLECTION. It checks to see if a worksheet with the same name as the active
worksheet exists in another workbook named DATA STORAGE AND RETRIEVAL. If
the sheet name does not exist, the sheet from DATA COLLECTION is copied over.
If it does, the like-named sheet is first deleted from DATA STORAGE AND
RETRIEVAL and then the sheet is copied over. (this was created with a lot of
help from this board)

I want to use a For...each...next loop to check all sheet names in DATA
COLLECTION but I think I'm having trouble with my object names or variables.
The sub runs only on the sheet that is active when it starts (I believe).
Can anyone help me trouble shoot this?

Sub Data_Mover()
Application.Run "'DATA COLLECTION.xls'!StopTimer_Collect"
Windows("DATA COLLECTION").Activate

For Each Worksheet in Worksheets

Dim wksName As String
wksName = ActiveSheet.Name

Dim wbk As Workbook

On Error Resume Next
Set wbk = Workbooks("DATA STORAGE AND RETRIEVAL.xls")
On Error GoTo 0

If wbk Is Nothing Then
'MsgBox "Opening DATA STORAGE AND RETRIEVAL"
Set wbk = Workbooks.Open("P:\Bowling Green\QA DATA\QA DATA
COLLECTION\DATA STORAGE AND RETRIEVAL.xls")
Windows("DATA COLLECTION").Activate
End If

Application.DisplayAlerts = False 'not "are you sure prompt"
On Error Resume Next 'in case it isn't there
Workbooks("DATA STORAGE AND RETRIEVAL").Worksheets(wksName).Delete
On Error GoTo 0
Application.DisplayAlerts = True
Sheets(wksName).Select
ActiveSheet.Unprotect
Worksheets(wksName).Copy After:=Workbooks( _
"DATA STORAGE AND RETRIEVAL").Worksheets("DATA STORAGE AND
RETRIEVAL")
ActiveWindow.FreezePanes = False
Rows("11:11").Select
Selection.Insert Shift:=xlDown
Rows("10:10").Select
Selection.Copy
Rows("11:11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Rows("10:10").Delete
Rows("1:7").Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection
ActiveWindow.SelectedSheets.Visible = False
Windows("DATA COLLECTION").Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

Next

Application.Run "'DATA COLLECTION.xls'!StartTimer_Collect"

End Sub


--
n00b lookn for a handout :)

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 65
Default Help with For...each...next

This still isn't quite right. I want to perform the routine on each
worksheet in DATA COLLECTION.

The sub works great when I'm only concerned with the active sheet but I
can't seem to get it to cycle thru all sheet names in DATA COLLECTION.

--
n00b lookn for a handout :)


"Gary''s Student" wrote:

This seems to work. It assumes both workbooks are open. You might want to
turn off display alerts as well:

Sub copyover()
Dim wb1 As Workbook
Dim wb2 As Workbook
Dim sh As Worksheet
Set wb1 = Workbooks("DATA COLLECTION.xls")
Set wb2 = Workbooks("DATA STORAGE AND RETRIEVAL.xls")

wb1.Activate
cName = ActiveSheet.Name
MsgBox (cName)

isthere = False
For Each sh In wb2.Worksheets
If sh.Name = cName Then
isthere = True
End If
Next

If isthere Then
wb2.Activate
Sheets(cName).Delete
End If

wb1.Activate
ActiveSheet.Copy Befo=wb2.Sheets(1)
End Sub

--
Gary''s Student - gsnu200749


"Arnie" wrote:

The following code is in a regular module in a workbook named DATA
COLLECTION. It checks to see if a worksheet with the same name as the active
worksheet exists in another workbook named DATA STORAGE AND RETRIEVAL. If
the sheet name does not exist, the sheet from DATA COLLECTION is copied over.
If it does, the like-named sheet is first deleted from DATA STORAGE AND
RETRIEVAL and then the sheet is copied over. (this was created with a lot of
help from this board)

I want to use a For...each...next loop to check all sheet names in DATA
COLLECTION but I think I'm having trouble with my object names or variables.
The sub runs only on the sheet that is active when it starts (I believe).
Can anyone help me trouble shoot this?

Sub Data_Mover()
Application.Run "'DATA COLLECTION.xls'!StopTimer_Collect"
Windows("DATA COLLECTION").Activate

For Each Worksheet in Worksheets

Dim wksName As String
wksName = ActiveSheet.Name

Dim wbk As Workbook

On Error Resume Next
Set wbk = Workbooks("DATA STORAGE AND RETRIEVAL.xls")
On Error GoTo 0

If wbk Is Nothing Then
'MsgBox "Opening DATA STORAGE AND RETRIEVAL"
Set wbk = Workbooks.Open("P:\Bowling Green\QA DATA\QA DATA
COLLECTION\DATA STORAGE AND RETRIEVAL.xls")
Windows("DATA COLLECTION").Activate
End If

Application.DisplayAlerts = False 'not "are you sure prompt"
On Error Resume Next 'in case it isn't there
Workbooks("DATA STORAGE AND RETRIEVAL").Worksheets(wksName).Delete
On Error GoTo 0
Application.DisplayAlerts = True
Sheets(wksName).Select
ActiveSheet.Unprotect
Worksheets(wksName).Copy After:=Workbooks( _
"DATA STORAGE AND RETRIEVAL").Worksheets("DATA STORAGE AND
RETRIEVAL")
ActiveWindow.FreezePanes = False
Rows("11:11").Select
Selection.Insert Shift:=xlDown
Rows("10:10").Select
Selection.Copy
Rows("11:11").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Rows("10:10").Delete
Rows("1:7").Delete
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlNoSelection
ActiveWindow.SelectedSheets.Visible = False
Windows("DATA COLLECTION").Activate
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
ActiveSheet.EnableSelection = xlUnlockedCells

Next

Application.Run "'DATA COLLECTION.xls'!StartTimer_Collect"

End Sub


--
n00b lookn for a handout :)

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



All times are GMT +1. The time now is 08:45 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"