Sort Column Using VBA When Workbook Opens - Runtime 91 Error
Jun 24, 2014
I'm trying to introduce some VBA code to an existing workbook that will automatically sort column A alphabetically on Sheet 2 (Summary) (excluding rows 1 & 2 as they contain headings) whenever the workbook is opened.
At the moment this code doesn't automatically run and when I run it manually I get a run-time error '91' the first time I try and when I run it for a second time (again manually) it works.
The code I've got at the moment is:
VB:
'The following code will run the sorting subroutine when the workbook is opened:
Private Sub Workbook_Open()
Call SortByWave
End Sub
'And this subroutine will enable the autofilter functionality, clear all existing filters and then filter the data on column A:
Sub SortByWave()
I have written a very basic Macro code to retrieve a photo off of my server. I want it to run this macro when a person has selected a certain item off of a drop down list. The problem I am having is that when I try and run the macro manually or when the workbook opens I get a an error message that reads "Compile Error: Invalid outside procedure". I click "Okay" and it highlights this portion of the code
I have a program that uses the Document Open event to display a custom form. This program is being used on about 50 computers for the past 8 years with no problems. One user has a problem now. They can open the program once and the code fires. But when the user tries to open the same file a second time, the "Microsoft Excel has encountered a problem and needs to close" dialog box is displayed. The document that is recovered has no vba modules and no code in the Document open event. I've uninstalled and reinstalled Office Professional. Shut down all firewalls.
I am getting a runtime error 32809, Application-defined or Object-defined error when I try to open my workbook. I remember someone posting code to set the VBA References when the Workbook is opened and I think this is what I need, because the file will run on Excel 2000 and not on Excel 2003. I know the References are different, but I don't know how to change them.
I have a list of workbooks on a sheet that i am trying to open with vba one by one. If a workbook in my list does not exist or was deleted then excel displays a runtime error. Is there a way to bypass this error and have the code skip the non existant workbook and open the next one?
i have this code for copying diffrent ranges of cells and saving it in different workbooks:
Sub NewCopy() Dim strFileName As String Dim range1 As Range Dim rng1 As Range, rng2 As Range, myMultiRanges As Range
[Code].....
the problem is when is share the workbook, it generated the runtime error '1004' Command is not available in a shared workbook... make it work even in a shared workbook.
Suddenly when I open a ExcelWorkbook Microsoft Visual Basic shows a messagebox stating: "Runtime faillure 9 Subscript out of reach" only the closebtn is enabled. After closing the box the workbook opens normally.
I'm getting the error for the following piece of code.
Sub itconfandscratch() Dim Cn As ADODB.Connection Dim Server_Name As String Dim Database_Name As String Dim User_ID As String Dim Password As String Dim SQLStr As String Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Server_Name = "sturecord" Database_Name = "Scratch" ' Enter your database name here SQLStr = "SELECT stuname FROM dbo.sturec" ' Enter your SQL here Set Cn = New ADODB.Connection Cn.Open "Driver={SQL Server};Server=" & Server_Name & ";Database=" & Database_Name & ""..............
How do I run this I can not get it to work I keep getting errors this is the way I have it for now.
Private Sub ThisWorkbook_Open() MY_MONTH = Month(Now()) + 5 With Sheets("Master List") .Unprotect ("123") .Columns("A").Locked = False .Columns("A").Hidden = True .Columns("T:IV").Hidden = True .Rows("265:65536").Hidden = True .Columns("E:Q").Locked = False .Columns("E:Q").Hidden = True .Columns(MY_MONTH).Hidden = False .Columns(MY_MONTH - 1).Hidden = False .Columns(MY_MONTH - 1).Locked = True Dim ws As Worksheet For Each ws In Sheets([{"JAN","FEB","MAR","APR","MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC","2008","Read Me","Record"}]) With ws .Protect ("123") End With Next End Sub Compile error: Expected End With
My workbooks contains 2 worksheets with data and autofilters on for each column in use.
When my workbook opens I am trying to reset the autofilters of each worksheet in the workbook and to filter the data according to one criteria in one column.
This is what I have that works to reset each worksheet but I haven't been able to figure out how to subsequently filter each worksheet.
Private Sub Workbook_Open() Application.ScreenUpdating = False For Each w In Worksheets w.Unprotect If w.FilterMode Then w.ShowAllData w.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFiltering:=True Next w Application.ScreenUpdating = True End Sub
The autofilter sits in A3 to N3 and I am trying to filter according to column M (i.e. 13th column)
I've created an add-in that runs a simple macro. The problem I have is that when I run the add-in it opens the workbook I originally created it from - is this what I should expect it to do? How do I stop this from happening?
Also, do I need to have the workbook from which I created the add in located in the same place on every machine I want to use the add in on? At the moment if I move the original workbook the add-in won't work.
I have a workbook on a share drive that is used by multiple people. In the event that someone leaves the workbook open after using it, I have a timer function that pops up a splash screen after 4 minutes of inactivity which states, "This workbook will close in 1 minute if there is no further activity". If there is no further activity in that minute, the workbook closes.
The code works fine...unless the workbook is manually closed in that minute between the splash screen and when the timer would have closed the workbook. If that happens, the workbook closes normally and then briefly reopens and closes a minute later when the timer would have closed the workbook. Is there any code to prevent this?
I have the following code in a module that I would like to initiate when the workbook opens:
Code: Private Declare Function GetComputerName Lib "kernel32" _ Alias "GetComputerNameA" ( _ ByVal lpBuffer As String, _ ByRef nSize As Long) As Long
Public Property Get ComputerName() As String
[Code] ........
In a worksheet, I have =compname() in cell A1 and =hdserialnumber() in A2. What is the trick to make the values in these cells appear as soon as the worksheet opens?
I need to set the "Sheet1" to be the sheet that always displays first, regardless of what sheet was active when last saved.
The reason is that I have a sheet with instructions on it as how to use the Workbook, including "You must Enable Macros" etc. When Macros are enabled, it's all good, as most people use a USERFORM which I have coded to set "Sheet1".Select and save their work upon closing using the USERFORM.
BUT when the advanced users modify other Sheets directly without using the USERFORM, and "SAVE" and then "Close" , the next time a user opens the Workbook (If they do not enable Macros) it opens to the sheet the advanced user Saved on. Thus killing my instructions page and putting the exact people I did not want messing around on certain sheets, on those sheets, fully bypassing the USERFORM created to avoid the problem.
I can force the workbook to switch to "Sheet1" and Save and Close, every time someone closes or EXITs, BUT I quickly realized when testing that any mistakes made are then permanent because you cant EXIT without Saving.
So. Is there a setting somewhere (Not Requiring Enabled Macros) to force a Workbook to ALWAYS open "Sheet1" first, regardless of what Sheet was last saved in the Workbook?
I have a workbook where the sheets are all protected and I want to stop users scrolling up or across beyond the limits of the input areas. I have used the following code (or variations of)...
Private Sub Worksheet_Activate() Me.ScrollArea = "A1:G32" End Sub
This works fine except that when I first open the workbook, the first sheet displayed can still be scrolled. As soon as you move to another sheet and then back again, it is then OK.
It appears that the Worksheet_Activate code does not execute when the workbook is first opened.
I am trying to find a way to automatically do a query and dump the data into a sheet when a previously created workbook is open. I know how to get the data (use the Tools, Import External Data option to retrieve data from Access) but what I don't know is how to make it do it automatically when the workbook is open.
I have a work book that contains 10sheets. considering one as main sheet remaning as sub sheets. I want to open main sheet from all other remaining sheets using a common button.when I tried normally is shows compile error: Ambiguous name detected. Any other way to solve it.
I have a problem, where every time I close or open any workbook, Excel prompts me to "Enable or Disable Macros" in one particular workbook, wether I have tried to open it or not. In the said workbook, I have a macro that automatically updates a pivot table upon selecting the worksheet where the pivot table resides.
The code for it is as follows:
Sub UpdateIt() Dim iP As Integer Application.DisplayAlerts = False For iP = 1 To ActiveSheet.PivotTables.Count ActiveSheet.PivotTables(iP).RefreshTable Next Application.DisplayAlerts = True End Sub
Private Sub Worksheet_Activate() Call UpdateIt End Sub
There is something in the code that calls UpdateIt any time a workbook is opened, closed or selected.
I am trying exactly the same things stated in here Open two workbooks at the same time as stated in the other thread's answer I would love to "just use the Workbook name IF both Workbooks are in the same folder." both files are in the same folder and this is the code that I am trying to use
Private Sub Workbook_Open() Workbooks.Open ("toto1234.xls")
and it does not work any one explain me what I am doing wrong?
When I open any saved Excel file the saved file opens along with a blank workbook titled "Book 1". How can I make it so when I open any saved Excel file it only opens the file I want and not a new workbook every time?
The code thats generating the error is the following:
For Y = 8 To 131 TmpDate = Empty Range("A1").Value = "=" + Path + Sheet + "B" + CStr(Y) TmpDate = Range("A1").Value
For Langd = 1 To Len(TmpDate) TmpChar = Mid(TmpDate, Langd, 1) If Not TmpChar = " " Then TmpComp = TmpComp + TmpChar End If Next Langd
TmpDate = TmpComp TmpComp = Empty
If Len(Dag) = 1 Then Dag = "0" + CStr(Dag) End If
Macro continues before the Next-statement...
(it might not be good programming, but I think it should work). A little explanation to the code. I have a spreadsheet located on the intranet that has values I need in my spreadsheet. These figures are sorted by date, so I search for the date to find the right figures. The line Range("A1").Value = "=" + Path + Sheet + "B" + CStr(Y) works prefectly. I can see the value in my spreadsheet in the cell A1. its the next line that causes the error "Type mismatch". The value I get from the intranet spreadsheet looks similar to this: "1 Jul 2006 " (note all the spaces). What I do is just run it through a loop and cut of all spaces so it will look like this: "1Jul2006" to be sure I dont miss a space or anything.
Now to the funny part. The error only happens at runtime on the first go. If I chose to END the macro then and there, and then run it again from the top it works perfectly. If I set a stopsign to debug the code, it works perfectly on the first go too. Can anyone explain to me why that happens??
I know enough about programming to handle my syntax errors and so on, but I cant see anything wrong in this one...
Please note that this isnt the the entire code. I'm building a report on 12 diffrent spreadsheet. The main macro is almost 2000 rows of code, and it call other Subs too (because of limitations in the VBA-editor. A macro cant to be too big), so its impossible for me to post the entire macro...
if I leave the inputbox blank I get an Excel error. I.e. it says that the formula I tried to type contains an error..... Is the Type:=8 not working properly here?
Dim Addr As Range On Error GoTo Problem Set Addr = Application.InputBox( _ Prompt:="Enter or Select a cell in the last record", _ Title:="Select Last Record:", Default:=Selection.Address, Type:=8) If Addr Is Nothing Then Exit Sub Edit: I guess I should mention that I am trying to retrieve a cell reference from the user via an input box. This cell reference will help me determine the last record in the spreadsheet.
In Excel 2003 I have made a model for evaluating co-workers. The model consist of a number of different questions regarding performance. At the top of the sheet, the user have to select som data from a drop down list, and depending on the answer (upward or downward), som of the questions in the sheets is hidden or shown. For this purpose I have created this string of VB-code in the sheet:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$E$5" And Target.Value = "Upward" Then Rows("20:41").EntireRow.Hidden = True ElseIf Target.Address = "$E$5" And Target.Value = "Downward" Then Rows("20:41").EntireRow.Hidden = False ElseIf Target.Address = "$E$5" And Target.Value = "" Then Rows("20:41").EntireRow.Hidden = False