Charlotte Foust
charlotte.foust at gmail.com
Thu Jan 30 20:31:57 CST 2014
So what is the original name of the sheet you're adding? What is its name in its parent template? And is the value of your Me.lstJobs.ItemData(intI) expression a string that you can evaluate and test for? I have workbooks with no "Sheet1" in them, so it isn't requiring that name that's the problem. When you copy a worksheet it usually retains the name of the sheet that's being copied (unless it would be a duplicate, of course). Maybe you need to count the number of worksheets in the workbook to be sure you're tackling the right problem. Charlotte On Thu, Jan 30, 2014 at 6:12 PM, Rocky Smolin <rockysmolin at bchacc.com>wrote: > 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 > > -- > AccessD mailing list > AccessD at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/accessd > Website: http://www.databaseadvisors.com >