[AccessD] Deleting Worksheet

Rocky Smolin rockysmolin at bchacc.com
Thu Jan 30 20:12:14 CST 2014


Darryl:

I'm not adding the new sheets - I'm copying from a template in another
workbook:

                objXLWSAlcoa.Copy After:=objXLBook.Sheets(intXLSheetCount)
                objXLApp.ActiveSheet.Name = Me.lstJobs.ItemData(intI)
                objXLApp.ActiveWorkbook.Save
                Set objXLWS = objXLApp.ActiveSheet

And that's working well.  The delete routine at the end cycles through all
the sheets and deletes any that start with "Sheet".

I had three brute force deletes call out Sheet1, Sheet2, Sheet3.  It deleted
2 and 3 and left 1.  So I tried cycling through the sheets looking for
left("Sheet",5). No go.  I've tried a bunch of different things.  Nothing
seems to work.

I'm leaving town tomorrow so I may take this up again when I get back on
Monday if I can't find a solution while I'm on the road.

Thanks

Rocky


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darryl Collins
Sent: Thursday, January 30, 2014 5:22 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Deleting Worksheet

Rocky,

So the process should be.

Open XL
Add new sheets (which are default named as "Sheet5", "Sheet6" assuming you
add two new ones).  I would also assume you are renaming these sheets.
Then remove Sheet1, Sheet2 and Sheet3.

It smells a lot like you are not adding the sheets correctly, as a couple of
folks have pointed out, the workbook must always have a sheet and XL won't
let you delete the last worksheet.

Firstly I would ask why you are adding sheets and just not using the blanks
ones available.  You can just populate the default sheet1, rename it to
something useful and then delete the other two blanks if you so please.

There can be advantages of bringing in a sheet from an external source, if
that is what you are doing (?)

Can you post the code you are using to add and then delete the sheets?

I would strongly recommend stepping thru the code and checking the creation
and deletion is working as expected.

Cheers
Darryl


-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
Sent: Friday, 31 January 2014 11:41 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Deleting Worksheet

There is still one sheet left after I delete the three defaults created when
the workbook is first opened.  It's that last one Sheet1 that I can't get
rid of.

r 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence
Sent: Thursday, January 30, 2014 4:38 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Deleting Worksheet

Hi Rocky:

Late to this topic but I thought that you can not have zero sheets in a
Excel spreadsheet any more than you can have zero tabs in a browser? IOW, it
can be an blank sheet but not "no" sheets...so it is possible that you are
wasting your time.

Jim   

----- Original Message -----
From: "Rocky Smolin" <rockysmolin at bchacc.com>
To: "Access Developers discussion and problem solving"
<accessd at databaseadvisors.com>
Sent: Thursday, January 30, 2014 4:23:58 PM
Subject: Re: [AccessD] Deleting Worksheet

Darryl:

I added true but no cigar.  The other two 'Sheets' Sheet2 and Sheet3 delete
just fine.  But Sheet1 remains even though I watched it go through the
delete statement for Sheet1.  Odd that.
 

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Darryl Collins
Sent: Thursday, January 30, 2014 4:05 PM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Deleting Worksheet

Hi Rocky.


Firstly you would have to add the "TRUE" post fix to the following if you
want the changes to stick.

    objXLApp.ActiveWorkbook.Close

should be

    objXLApp.ActiveWorkbook.Close TRUE

If you just use    objXLApp.ActiveWorkbook.Close than the workbook will
close without saving (false is the default).

I would also be leery of using 'ActiveWorkbook' as it may not be the
workbook you think it is.  Be specific:  I usually use something like


Dim objExcelApp As Object
Dim objExcelSheet As Excel.Worksheet
Dim objExcelWB As Excel.Workbook

Set objExcelApp = CreateObject("Excel.Application")
        objExcelApp.Visible = True
        
        With objExcelApp
            .Workbooks.Open FileName:=strTargetPathAndName
            Set objExcelWB = objExcelApp.ActiveWorkbook

	With objExcelWB.Worksheets("Lookups")
				Etc....


Have you (for testing purposes) made the XL application visible and stepped
thru the code and see if you are actually deleting the sheets?  This is
probably the best way to debug this.

I would also turn off any "On Error Resume Next" statement (or all On Error
Statements).  Perhaps the source workbook has protection turned on, which
would prevent sheet deletion and the On Error is skipping over this step
without warning.

Lambert's code below should work fine - assuming there is no issue with XL
protection.  Keep in mind there is a different between the SheetName (which
the user sees) and the SheetCodeName, which is the VBA name.  They are often
the same, but don't have to be.  In your case you are using sheetname, which
should work fine on the code you have.

I do this sort of thing all the time, so let me know if you cannot get it
working.

cheers
Darryl.





-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
Sent: Friday, 31 January 2014 6:24 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Deleting Worksheet

Lambert:

After the deletes I have

' Save and Close Workbook
    objXLApp.ActiveWorkbook.Save
    objXLApp.Quit
    Set objXLApp = Nothing 

Adding 

    objXLApp.ActiveWorkbook.Close

Didn't help.  Sheet1 is still there.

R

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Heenan, Lambert
Sent: Thursday, January 30, 2014 11:20 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Deleting Worksheet

After your code runs to delete the offending worksheets you then must save
the workbook with its changes. Like this...


Dim xlApp As Excel.Application
Dim xlS As Excel.Worksheet
    Set xlApp = Excel_OpenWorkBook(strFile) ' my canned "open an excel
workbook object routine"
    For Each xlS In xlApp.Worksheets
        If xlS.Name <> "MySheet" Then
            xlS.Delete
        End If
    Next xlS
    Excel_CloseWorkBook xlApp, strFile, True ' the True parameter tells my
canned routine to save the workbook
    Set xlApp = Nothing



Lambert

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Rocky Smolin
Sent: Thursday, January 30, 2014 11:05 AM
To: 'Access Developers discussion and problem solving'
Subject: Re: [AccessD] Deleting Worksheet

I have my objects dimmed so:

Dim objXLApp As Excel.Application
Dim objXLBook As Excel.Workbook
Dim objXLWS As Excel.Worksheet

I set objXLApp - Set objXLApp = New Excel.Application - and open a new
worksheet:

Set objXLBook = objXLApp.Workbooks.Open(Me.txtOutputFileName)

into which I copy the template worksheet from another XL workbook, giving it
a unique name each time.

At the end of the process I end up with a workbook with n number of
worksheet and all's well except I still have the default "Sheet1", "Sheet2",
and "Sheet3", which I want to delete.

I've tried several things among which are

            objXLBook.Worksheets("Sheet1").Delete

And 
            objXLApp.Worksheets("Sheet1").Activate
            objXLWS.Delete

But so far no joy.  


Rocky

-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Susan Harkins
Sent: Thursday, January 30, 2014 7:47 AM
To: Access Developers discussion and problem solving
Subject: Re: [AccessD] Deleting Worksheet

<
http://www.techrepublic.com/blog/10-things/10-ways-to-reference-excel-workbo
oks-and-sheets-using-vba/
>

#9 and #10 might be helpful, but they're very basic -- referencing 101.
What have you tried and why isn't it working?


On Thu, Jan 30, 2014 at 10:40 AM, Rocky Smolin
<rockysmolin at bchacc.com>wrote:

> Dear List:
>
> I'm automating a spreadsheet from Access (2003) and importing a 
> worksheet from another excel file as a template.  I want to delete the 
> default worksheets Sheet1, Sheet2, and Sheet3 but can't seem to get 
> the right syntax going.
>
> Any pointers on how to get this done?
>
> MTIA
>
> Rocky Smolin
> Beach Access Software
> 858-259-4334
> www.bchacc.com <http://www.bchacc.com/> www.e-z-mrp.com 
> <http://www.e-z-mrp.com/>
> Skype: rocky.smolin
>
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com
--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com

--
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com



More information about the AccessD mailing list