Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / October 2008

Tip: Looking for answers? Try searching our database.

Macro doesn't  loop through sheets of books in specific folder

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Diddy - 10 Oct 2008 15:17 GMT
Hi everyone,

I'm trying to select a folder then on each worksheet in each book I would
like to clear the contents of hidden rows 1-4 and then run David McRitchie's
Trimall routine on column H.

Sub PrepClear_Trimall()
Dim lCount As Long
Dim wbResults As Workbook
Dim wbCodeBook As Workbook

Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False

On Error Resume Next

Set wbCodeBook = ThisWorkbook

   With Application.FileSearch
       .NewSearch
       strFolder = InputBox("Please enter folder", "Path")
       .LookIn = strFolder
       .FileType = msoFileTypeExcelWorkbooks
       .Filename = "*.xls"
       
           If .Execute > 0 Then 'Workbooks in folder
               For lCount = 1 To .FoundFiles.Count 'Loop through all.
                'Open Workbook x and Set a Workbook variable to it
                Set wbResults = Workbooks.Open(.FoundFiles(lCount))
               
               Dim Shts As Worksheet
'Carries out action for ALL worksheets in active workbook
For Each Shts In ActiveWorkbook.Worksheets
Shts.Rows("1:4").Select
Range("B1").Activate
Selection.ClearContents
Columns("H:H").Select
Range("H5").Activate
Call Trimall
Next
wbResults.Close SaveChanges:=True
Next lCount
End If
End With
On Error GoTo 0
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
   Application.EnableEvents = True
End Sub

I've pasted in some recorded macro bits and it works after a fashion but
only carries out the actions on the active sheet of each workbook it goes
into.

Where am I going wrong?

Thank you

Signature

Deirdre

Gary''s Student - 10 Oct 2008 15:47 GMT
After:

For Each Shts In ActiveWorkbook.Worksheets
insert:
Shts.Activate

This will help insure the various ranges are associated with Shts
Signature

Gary''s Student - gsnu200806

> Hi everyone,
>
[quoted text clipped - 54 lines]
>
> Thank you
Diddy - 10 Oct 2008 16:05 GMT
Thank you Gary's Student :-)

Is there a difference between Activate and Select in this case?

Cheers
Diddy
Signature

Deirdre

> After:
>
[quoted text clipped - 62 lines]
> >
> > Thank you
Rick Rothstein - 11 Oct 2008 20:18 GMT
From the Remarks section of the help files for the Select Method (for a
range)...

"To select a cell or a range of cells, use the Select method.
To make a single cell the active cell, use the Activate method."

Signature

Rick (MVP - Excel)

> Thank you Gary's Student :-)
>
[quoted text clipped - 73 lines]
>> >
>> > Thank you
Dave Peterson - 10 Oct 2008 15:48 GMT
Untested, but it did compile:

Option Explicit
Sub PrepClear_Trimall()
   Dim lCount As Long
   Dim wbResults As Workbook
   Dim wbCodeBook As Workbook
   Dim Shts As Worksheet
   Dim strFolder As String
   
   Application.ScreenUpdating = False
   Application.DisplayAlerts = False
   Application.EnableEvents = False
   
   Set wbCodeBook = ThisWorkbook
   
   With Application.FileSearch
       .NewSearch
       strFolder = InputBox("Please enter folder", "Path")
       .LookIn = strFolder
       .FileType = msoFileTypeExcelWorkbooks
       .Filename = "*.xls"
           If .Execute > 0 Then 'Workbooks in folder
               For lCount = 1 To .FoundFiles.Count 'Loop through all.
                    'Open Workbook x and Set a Workbook variable to it
                    Set wbResults = Workbooks.Open(.FoundFiles(lCount))
                   'Carries out action for ALL worksheets in active workbook
                   For Each Shts In wbResults.Worksheets
                       Shts.Select
                       Shts.Rows("1:4").ClearContents
                       Shts.Columns("H:H").Select
                       Call Trimall
                   Next Shts
               wbResults.Close SaveChanges:=True
               Next lCount
           End If
   End With
   
   Application.ScreenUpdating = True
   Application.DisplayAlerts = True
   Application.EnableEvents = True

End Sub

> Hi everyone,
>
[quoted text clipped - 57 lines]
> --
> Deirdre

Signature

Dave Peterson

Diddy - 10 Oct 2008 16:06 GMT
Thank you Dave :-)

Works beautifully

Cheers
Diddy
Signature

Deirdre

> Untested, but it did compile:
>
[quoted text clipped - 101 lines]
> > --
> > Deirdre
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.