Excel button problem

Hi All
I have a macro that copies a worksheet in the active workbook and puts it 
into a new workbook - then formats it and deletes any buttons on the 
worksheet.

On the first click on the button the macro works ok.
On the second click, it fails because the all assigned macros on all buttons 
in the active workbook changed from "mba" to "book1!mba".  Book 1 doesn't 
exists (wasn't opened, wasn't saved, doesn't have the macros).

I've never experienced this problem before??
Can anyone help to solve this problem?
FYI
The macro to do this is called "mba".
It lives in the active workbook within "Module 1" as a "General" macro
The active workbook is currently called "Template.xls" - users save as from 
this workbook 
The macro is assigned to a button created from the Form toolbar (it's named 
"creatembabutton")

-- 
Thank for your help
BeSmart
0
Utf
3/13/2010 6:31:01 AM
excel.programming 6508 articles. 2 followers. Follow

5 Replies
1164 Views

Similar Articles

[PageSpeed] 9

I think you know what the problem is already.  Excel doesn't delete the
VBA project when a workbook is closed so the project is still active
when you run the macro a 2nd time.  You always want to run the macro
from the first workbook that was opened.  You should always refere to
the main workbook using THISWORKBOOK.


Try to Avoid using Activeworkbook.  When you open a workbook use 

Set bk = workbooks.open(filename:="c:\temp\book1.xls")

Then use bk to reference the new workbook.  for some reason if you open
a text file as a workbook the statement above doesn't work.  So I
immediately after opening the workbook use a set statement to make a
variable equal to the active workbook

Set bk = activeworkbook


A common problem with VBA is that the focus shifts from one object to
another without you knowing it is happening.  for example when you open
a workbook the focus changes to the workbook that you opened to one of
the sheet of the workbook (which ever sheet was the active sheet when
the workbook was closed).

Without seeing your code I can't tell how to fix your problem.  but is
is good practive to avoid usiong the following methods:

1) ActiveSheet
2) ActiveCell
3) select
4) Selection


With VBA it is inconsistenet and some commands only work with the above
methods so that is why I say Avoid.


-- 
joel
------------------------------------------------------------------------
joel's Profile: 229
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=187201

http://www.thecodecage.com/forumz/chat.php

0
joel
3/13/2010 9:30:50 AM
Hi Joel
Please forgive me (I'm a novice at this), and I don't totally understand 
e.g. how do I avoid using "activeworkbook" when I don't know what the 
filename of the workbook will be (users save as from the original workbook I 
send to them)?

Here is my code that is assigned to the button.
The code gets data from the original workbook and the current worksheet 
(which is already open and selected because the button is on that sheet)
It pastes the data into a section on a hidden worksheet within the same 
workbook.
Then it makes a copy of the MBA worksheet and renames it
then the new worksheet is moves out of the original workbook and the formats 
e.g. clear un-necessary defined names, paste all formulas as values etc, 
re-hides the 

There are situation where I use the following - what should I use instead?
1) ActiveSheet 
2) ActiveCell 
3) select 
4) Selection

_____________________
Sub mba()
Dim nme As Name

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Goto Reference:="MBAData" 'named range on current worksheet'
Selection.Copy
Sheets("MBA").Visible = True 'hidden template worksheet'
Sheets("MBA").Select
Range("A80").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Sheets("MBA").Copy After:=Sheets(Sheets.Count)
Sheets("MBA (2)").Name = "Client MBA"
Range("A1").Select
Application.CutCopyMode = False
Range("A1").Select   'from here on it is formatting'
Selection.Clear
Cells.Select
Selection.Copy 'replace all formulas with values
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Range("A1").Select
Application.Goto Reference:="MBApaste"
Selection.Clear 'clear data dump section

Sheets("MBA").Select 'clear the pasted data on the template & re-hide the 
sheet 
Application.Goto Reference:="MBApaste"
Selection.Clear
Sheets("MBA").Visible = False
Application.CutCopyMode = False

Sheets("Client MBA").Move
Range("A1").Select
For Each nme In ActiveWorkbook.Names 'delete named ranges not needed in new 
workbook
If nme.Name Like "*_FilterDatabase" Or _
nme.Name Like "*Print_Area" Or _
nme.Name Like "*Print_Titles" Or _
nme.Name Like "*wvu.*" Or _
nme.Name Like "*wrn.*" Or _
nme.Name Like "*!Criteria" Then
Else
nme.Delete
End If
Next nme
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

-- 
Thank for your help
BeSmart


"joel" wrote:

> 
> I think you know what the problem is already.  Excel doesn't delete the
> VBA project when a workbook is closed so the project is still active
> when you run the macro a 2nd time.  You always want to run the macro
> from the first workbook that was opened.  You should always refere to
> the main workbook using THISWORKBOOK.
> 
> 
> Try to Avoid using Activeworkbook.  When you open a workbook use 
> 
> Set bk = workbooks.open(filename:="c:\temp\book1.xls")
> 
> Then use bk to reference the new workbook.  for some reason if you open
> a text file as a workbook the statement above doesn't work.  So I
> immediately after opening the workbook use a set statement to make a
> variable equal to the active workbook
> 
> Set bk = activeworkbook
> 
> 
> A common problem with VBA is that the focus shifts from one object to
> another without you knowing it is happening.  for example when you open
> a workbook the focus changes to the workbook that you opened to one of
> the sheet of the workbook (which ever sheet was the active sheet when
> the workbook was closed).
> 
> Without seeing your code I can't tell how to fix your problem.  but is
> is good practive to avoid usiong the following methods:
> 
> 1) ActiveSheet
> 2) ActiveCell
> 3) select
> 4) Selection
> 
> 
> With VBA it is inconsistenet and some commands only work with the above
> methods so that is why I say Avoid.
> 
> 
> -- 
> joel
> ------------------------------------------------------------------------
> joel's Profile: 229
> View this thread: http://www.thecodecage.com/forumz/showthread.php?t=187201
> 
> http://www.thecodecage.com/forumz/chat.php
> 
> .
> 
0
Utf
3/13/2010 11:10:01 AM
You are getting me confused!!!!!  The code below is adding a new sheet
to the workbook and not a new workbook.  I've made my changes to the
code below to remove the methods that cause problems.

I think you have to explaoin to me what is happening beofre this code
is run.  How do you create a new workbook and How to you open the work
book.


Usually when people create a new work book they will use the SAVEAS
method or copy a file (template file) to a new filename and then open
the the copied file and make appropriate changes.  If yo uuse the SaveAS
you have to be a little careful of how you reffernce the SAVEAS file
since it closes the original workbook.  The solution may be to use the
file copy method.





VBA Code:
--------------------
  

  
Sub mba()
  Dim nme As Name
  
  Application.ScreenUpdating = False
  Application.EnableEvents = False
  
  With Sheets("MBA")
  Range("MBAData").Copy
  Range("A80").PasteSpecial _
  Paste:=xlValues
  End With
  
  Sheets("MBA").Copy After:=Sheets(Sheets.Count)
  Set NewSht = Sheets(Sheets.Count)
  With NewSht
  .Name = "Client MBA"
  .Range ("A1")
  .Cells.Copy
  .cellsPasteSpecial _
  Paste:=xlValues
  End With
  
  Range("MBApaste").Clear
  Sheets("MBA").Visible = False
  
  Sheets("Client MBA").Move
  
  For Each nme In ThisWorkbook.Names 'delete named ranges not needed in new
  'Workbook
  If nme.Name Like "*_FilterDatabase" Or _
  nme.Name Like "*Print_Area" Or _
  nme.Name Like "*Print_Titles" Or _
  nme.Name Like "*wvu.*" Or _
  nme.Name Like "*wrn.*" Or _
  nme.Name Like "*!Criteria" Then
  Else
  nme.Delete
  End If
  Next nme
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  End Sub
  
  
  
--------------------


-- 
joel
------------------------------------------------------------------------
joel's Profile: 229
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=187201

http://www.thecodecage.com/forumz/chat.php

0
joel
3/13/2010 12:20:42 PM
Hi Joel
Thank you for looking at the code for me.

I don't need to "open" an existing workbook - the workbook is already open 
and the user is on the worksheet that has the MBAData named range that needs 
to be copied into the hidden worksheet MBA.

i.e.
Range(MBAData).Copy (this happens on the current worksheet - not sheet("MBA")

I also don't need to open a new workbook
The code "moves" the "Client MBA" worksheet into a separate workbook (to do 
this manually I would go right mouse, select Cooy/Move, select "new booK" & 
hit OK.
i.e.    Sheets("Client MBA").Move

I tried to test your code (after a few little changes - see below revised 
code), but had these problems:

- it didn't select worksheet MBA to pasted MBAData values from A80 - it 
pasted the values into the current worksheet from cell A80.
With Sheets("MBA")
Range("A80").PasteSpecial _
Paste:=xlValues
End With

- it didn't change the worksheet name "MBA(2)" to "Client MBA"?
With NewSht
..Name = "Client MBA"
..Cells.Copy
..Cells.PasteSpecial _
Paste:=xlValues

Thank you for your patience and help
BeSmart

Revised code:
____________
Sub mba()
Dim nme As Name

Application.ScreenUpdating = False
Application.EnableEvents = False

Range("MBAData").Copy

Sheets("MBA").Visible = True
With Sheets("MBA")
Range("A80").PasteSpecial _
Paste:=xlValues
End With

Sheets("MBA").Copy After:=Sheets(Sheets.Count)
Set NewSht = Sheets(Sheets.Count)
With NewSht
..Name = "Client MBA"
..Cells.Copy
..Cells.PasteSpecial _
Paste:=xlValues
End With
Range("A1").Clear
Range("MBApaste").Clear
Sheets("MBA").Visible = False

Sheets("Client MBA").Move

For Each nme In ThisWorkbook.Names 'delete named ranges not needed in new
'Workbook
If nme.Name Like "*_FilterDatabase" Or _
nme.Name Like "*Print_Area" Or _
nme.Name Like "*Print_Titles" Or _
nme.Name Like "*wvu.*" Or _
nme.Name Like "*wrn.*" Or _
nme.Name Like "*!Criteria" Then
Else
nme.Delete
End If
Next nme
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

0
Utf
3/13/2010 5:29:01 PM
I left out two periods in the With Statement.  I'm not sure why the
sheet name didn't get changed.  I also missed the fact that the MOVE
method was creating a new workbook.




VBA Code:
--------------------
  

  
Sub mba() 
  Dim nme As Name 
  
  Application.ScreenUpdating = False 
  Application.EnableEvents = False 
  
  With Sheets("MBA") 
  .Range("MBAData").Copy 
  .Range("A80").PasteSpecial _ 
  Paste:=xlValues 
  End With 
  
  Sheets("MBA").Copy After:=Sheets(Sheets.Count) 
  Set NewSht = Sheets(Sheets.Count) 
  With NewSht 
  .Name = "Client MBA" 
  .Range ("A1") 
  .Cells.Copy 
  .cellsPasteSpecial _ 
  Paste:=xlValues 
  End With 
  
  Range("MBApaste").Clear 
  Sheets("MBA").Visible = False 
  
  Sheets("Client MBA").Move 
  Set NewBk = Activeworkbook
  
  For Each nme In NewBk.Names 'delete named ranges not needed in new
  'Workbook
  If nme.Name Like "*_FilterDatabase" Or _ 
  nme.Name Like "*Print_Area" Or _ 
  nme.Name Like "*Print_Titles" Or _ 
  nme.Name Like "*wvu.*" Or _ 
  nme.Name Like "*wrn.*" Or _ 
  nme.Name Like "*!Criteria" Then 
  Else 
  nme.Delete 
  End If 
  Next nme 
  Application.ScreenUpdating = True 
  Application.EnableEvents = True 
  End Sub 
  
--------------------


-- 
joel
------------------------------------------------------------------------
joel's Profile: 229
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=187201

http://www.thecodecage.com/forumz/chat.php

0
joel
3/13/2010 6:30:59 PM
Reply:

Similar Artilces:

Possible MSVCRT.dll problem
I get these errors when trying to install any version of Iomega's EMC = Retrospect Express HD for Windows. Using Windows 2000 Prof. =20 Any help would be greatly appreciated! Pls post and also email to me = at brotherdave@bigfoot.com. Thanks! Bob MSVCRT.dll for Win32 Error: MSVCRT.dll is not compatible with Win32s. The application failed to initialize properly [0xc0000142]. Click on OK = to terminate the application. How does your question pertain to Outlook Express functionality? EMC� Retrospect� Express HD - System Requirements http://www.retrospect.com/pro...

CList problem: double entries...
I'm having trouble workin with a simple CList: the function always adds the first element twice and I don't know why. also, the later added elements do not appear immediately in the list, but only on the next function call... here is the code: ---------------- CList<CASystem, CASystem> AllCAS; CASystem *GetCreateCASystem(int ID) { bool bFound = false; CASystem *pCAS = NULL; // check if AS list exists if(AllCAS.IsEmpty()) { // create new AS pCAS = new CASystem; pCAS->ID = ID; ...

How do I create project schedule using excel
I need to create a project schedule using excel. Please help. Hi lack of details :-) Maybe give some more information what you're trying to do? -- Regards Frank Kabel Frankfurt, Germany raeisza wrote: > I need to create a project schedule using excel. Please help. ...

Printing an Excel doucument
In this example, I have a document of 100 pages, when I print the document, the column headers only print on the first page and not the subsequent pages. also I would like all the pages to be numbered. is therea fix for this? Hi Richard, For your first question goto File>Page Setup>Sheet tab and look for the option 'Rows to repeat at top' For your second question goto View>Header and Footer and look at the &[page] and &[pages] options in your footer. HTH Martin ...

Beware apparent Tax Estimator problem in M+
The Tax Line Manager shows a "tax category" (my term for lack of a better name--these are kinda cryptic like budget groups) called "State taxes" as being associated with Schedule A. I have a category "Taxes : State Income Tax - previous year" associated with "State taxes". Tax Line Manager shows amounts from transactions categorized as "Taxes : State Income Tax - previous year". So far so good. And there it stops. Tax Estimator doesn't add the amounts from this "State taxes" tax category into the "Deductible Taxes"...

my printer ejects a blank sheet prior to printing with EXCEL
...

Excel: extract and sum numerals from mixed text/numeral cell range
I have a large (30x20) grid of cells with data, and I want to extract and then sum up certain numerals from this entire range. The catch is that the data is mixed numerals and text, as you'll see below. Here's an abbreviated 3x3 example, with a value in each of the nine cells: V7.1 T H P1 A T B V3 P4.5 If I just wanted to sum up the instances of "T" appearing, I could use COUNTIF() for the entire range to come up with answer ("T" appears 2 times). Easy enough. But, what I'm trying to accomplish is to sum up the numerals associated w...

Error in formula displayed for linear and 2nd order curve fits in Excel 2003
I have created trendlines for some pretty simple data using both 2nd order polynomial and linear fits. In both cases, the displayed formulas have their 1st and 2nd order coefficients wrong by a factor of 10!! (I have read lots of posts about increasing precision but this is not what I am up against). Has anyone seen this? What version of Excel? Could you include the data in a follow up post (not as an attachment), along with the coefficients you've computed? - Jon ------- Jon Peltier, Microsoft Excel MVP Tutorials and Custom Solutions Peltier Technical Services, Inc. - http://PeltierT...

Windows Update
My problem is similar to someone else's below(about Excel 2003 not being able to update), the only difference is that I don't want Excel to update at all. I don't even use it. But the yellow shield kept telling me that it had 1 update available, which was Excel 2003, so, out of annoyance, I installed it. After failing to install several times, I decided to uninstall Excel from Microsoft Office(Pro Edition 2003). Even after uninstalling Excel, I still got the windows update alert. How do I stop it? Extra info: When windows update first appeared, I did a custom instal...

excel axes
how do I create a secondary horizontal axis on an xy scatter plot? forgot to mention 2008 excel using Leopard (10.5.2) ...

Excel program
I have a simple program in excel for data entry. When I protect the sheet, and use tab to move about within the spreadsheet, sometimes the tab button will not move the cursor to the next cell. It will pick a random cell to go to next. Is there a way that I can designate what cell it will go to next. Thanks for your help, jb On a protected sheet, it is going to the next unprotected cell. So, if you don't want it to go to a cell, protect it. "JB" <jgblanton@hotmail.com> wrote in message news:093a01c391d0$ae57f190$a301280a@phx.gbl... > I have a simple program in exce...

2003 Excel and 2007 Trial Version Excel
I downloaded the 2007 trial version of Microsoft Office. Now my trial is over and I reloaded my 2003 version. But it will not let me remove the 2007 trial version. Also when I go into my 2003 Excel a Window Installer box comes up that says Preparing to install and this stays on for about 5 minutes before it goes away. I know that I should not have downloaded the trial version but I did. Can someone please help me. I have Windows XP and it is my office computer. Please help! ...

Error Message When opening Excel
I am using Windows VISTA 64 bit O/S with Office Professional 2003 All of a sudden I started to get the following error message: 'One of your object libraries (Stdole32.tlb) is missing or damaged. Please run setup to install it' I am at a loss as how to correct this. I checked online and found some instructions that were for Windows 2000 Those did not work for VISTA at all. Thank you in advance for your support and suggestions, HankL It is telling you to do a "setup to install" on the Office product, did you try that? Did you try doing a repair on ...

MFC: Excel Automation Can't Quit from Excel. Please help...
Hi I use MFC Visual C++ 4.2. I am automating Excel from my application. My problem is I cannot quit the Excel after the automation process finished! I checked it still exists on the Process lists and the most DANGEROUS is everytime the automation function run, it create other Excel and so on. So it must be out of memory soon. I have used the app.Quit() method like all the people used but it DOES NOT work. What should I do? Thank you. I happened to answer this on the office.developer.vba newsgroup. You most likely have neglected to Release() the automation object. joe On Wed, 3 Sep...

Excel number / date conversion
I've just pulled some data out of an ODBC connection into Access an then exported it to Excel. The dates are currently in the format 20031109. But the built in dat convertor (from Format Cells) doesn't do anything, even if I convert i to a 'proper' number first. How can I convert this to 09/11/2003 so that I can do some date - base arithmetic and work out difference in days -- markperr ----------------------------------------------------------------------- markperry's Profile: http://www.excelforum.com/member.php?action=getinfo&userid=2759 View this thread: http://w...

Excel charts should allow "switching" series on or off
A plot (chart) of time series data may be used for many purposes. From my use two reasons I use such plots are: Studying individual time series trends; and Overall impression of all results. But when studying multiple time series data a chart can become cluttered. It would be useful if individual series could be seleceted as visible or invisible so that they could be evaluated without losing the total plot. At the moment the only way to "unclutter" the plot is to remove the temporaily-unwanted series but it can be time consuming to reconstruct the plot. ---------------- Thi...

Email from Excel #3
Is it possible to have Excel send an email if the value of a certain cell is changed? Hi see your post in public.excel -- Regards Frank Kabel Frankfurt, Germany "berj" <berj@adelphia.net> schrieb im Newsbeitrag news:CcSdndsVDJy4jcjcRVn-pQ@adelphia.com... > Is it possible to have Excel send an email if the value of a certain cell is > changed? > > ...

version excel
bonjour a tous, & a tous les pro bien sur es qu'il est possible ,que des l'instant on modifie le code VBA EXCEL on incremente un compteur pour les mise a jour cela me semble plus simple merci pour vos reponse patrick.villa@laposte.net +++++ http://www.mcgimpsey.com/excel/udfs/sequentialnums.html -- --- HTH Bob (change the xxxx to gmail if mailing direct) "pounet" <patrick.villa@laposte.net> wrote in message news:1165418782.552172.169740@j44g2000cwa.googlegroups.com... > bonjour a tous, & a tous les pro bien sur > > es qu'il est possible ,qu...

double line spacing using excel 2000
I have a paragraph of writing, how do i get the text to be double line spaced? I am using excel 2000. Excel doesn't have a line spacing setting. You could add line breaks by pressing Alt+Enter at the end of a line, then another Alt+Enter to create a blank line. Dan wrote: > I have a paragraph of writing, how do i get the text to be double line > spaced? I am using excel 2000. -- Debra Dalgleish Excel FAQ, Tips & Book List http://www.contextures.com/tiptech.html Does this aply to newer versions of excel? "Debra Dalgleish" wrote: > Excel doesn't have a...

Function Problem 12-07-07
Hello...ok I have a form with a button that I am trying to get to call on a function. I have been able to do this and the funtion processes but I keep getting an error. Now, the funtion works perfectly if I run it from the switchboard/menu, but when run from the form button I get this error: "The action or method requires a Table Name argument" Here is the code I have: Private Sub Update_All_Records_Click() On Error GoTo Update_All_Records_Click_Err DoCmd.OpenFunction Public_Income_Update_Step_1 Update_All_Records_Click_Exit: Exit Sub Update_All_Records_Click_Err: M...

Excel 95 to Excel 2003
Anyone know if it's possible to convert Excel 95 files to Excel 2003? If so, how. Thanks in advance Open the file in 2003 and SAVE as you would a file created in 2003. If not absolutely positive, save as a different name. -- Don Guillett SalesAid Software donaldb@281.com "Cooper" <kcooper2@austin.rr.com> wrote in message news:uqLpEuG4EHA.1292@TK2MSFTNGP10.phx.gbl... > Anyone know if it's possible to convert Excel 95 files to Excel 2003? If > so, how. > > Thanks in advance > > Open in XL 2003, when you close it, it should, ask you if you w...

Conversion Excel 97 to Excel 2003
Hi There, I would like to convert Excel 97 files to excel 2003 I m using Save AS, but little bit confuse what type I have to choose "Microsoft Office Excel workbood (*.xls)" or "Microsoft Excel 97 - Excel 2003 & 5.0/95 workbook (*.xls)". We will not use Office 97 anymore next few weeks. Thank for your prompt response. Wayne You shouldn't have to do anything. If you feel the need, just save as microsoft excel workbook.xls -- Don Guillett SalesAid Software donaldb@281.com "Wayne" <anonymous@discussions.microsoft.com> wrote in message news:8286...

Inner Borders in Excel 2007
Before in pre-Excel 2007 world, I used to be able to select a range of cells, click on a button to get vertical or horizontal boarders for the range selected. In Excel 2007 I can only apply outer boarders. Was this feature removed? I now have go to "format cells", then select the "borders" tab to do the same. Where did the buttons for inner vertical/horizontal boarders go? Thanks. louishong - Home ribbon > (Font group) drop down between Underline and Fill Color - Mike http://www.MikeMiddleton.com <louishong@lycos.com> wrote in message...

Convert excel to java
Hi does anybody know a way to convert an XL spreadhseet (with charts) to a fully interactive Java object?? I have tried exceleverywhere and xlsius, but no luck! Thanks in advance -- shnim1 ...

Importing Excel data into Access?
Can Excel data be imported into Access easily!? I know from Word table I can simply copy and paste but it is not that easy when doing from Excel to Access! I downloaded this manual from http://www.mousetraining.co.uk/training-manuals/Access2003Intro.pdf but couldn't find this topic If anyone knows please let me know! Cheers Raj Hello, there are plenty of sources. e.g.: http://office.microsoft.com/training/training.aspx?AssetID=RC102722321033 Stefan. "Rajeev Rawat" wrote: > Can Excel data be imported into Access easily!? I know from Word table &g...