Office Automation :: Run Excel 2007 Macro From Custom Button
Jun 10, 2009
I have used Visual Studio 2008 (VB) to create a custom tab and button group with custom buttons. When any of those buttons are clicked, I simply want to run a macro (add-in) that will already be loaded when Excel is launched. The main examples I've seen create an Excel object in the VB code and then call the macro, but that seems like unnecessary overhead, since the custom buttons are are already loaded into Excel.
[Code]....
View 5 Replies
ADVERTISEMENT
Mar 28, 2011
i was wondering if someone could give me the final explanation on what i might be doing wrong here.I spent a lot of time reading around the net and the forum about how to add Threading capabilities to a VB project.
Nos, i've got .NET 4 installed, and i've added the system.tsr and mscorlib.dll files as reference in, say, Excel 2007 (see screenshot).However, when i try to make a thread with anything as basic as "Dim Thread1 As System.Threading.Thread", i get a user-defined type not found error.Indeed, when i use the object browser to see what's in the System file, theres nothing remotely linked to any Threading, and in the mscorlib file, nothing under "Threading" either, just a few Thread related functions, but nothing defining a data type
View 2 Replies
Feb 12, 2009
I have both Excel 2003 and Excel 2007 installed on my system. When I call oExcel = CreateObject("Excel.Application"), Excel 2003 is used in the context in my .NET code instead of Excel 2007 (which I need to be used). I have referenced the "Microsoft Excel 12.0 Object Library" but when the code runs, the 11.0 version is used.
Is it because I am using Visual Studio .Net 2003 that Excel 2007 cannot be correctly referenced or do I need to change a reference or setting?
View 5 Replies
Dec 1, 2010
I used the code previously added by Mike Rosenblum but Excel is still not closing, Here is my code:
Imports Microsoft.Office.Interop
Imports Excel = Microsoft.Office.Interop.Excel
Imports System.Runtime.InteropServices
Private Sub Check_For_Xcel(ByVal filename As String)
Dim varpath As String = ""
Dim varvalue As String = ""
Dim xlapp As New Excel.Application
Dim xlbook1 As Excel.Workbook = xlapp.Workbooks.Add()
Try
varpath = filename
xlbook1 = GetObject(varpath)
xlbook1.Application.Visible = True
xlbook1.Windows(1).Visible = True
xlbook1.Application.WindowState = Excel.XlWindowState.xlMinimized
For irow = 2 To 65536
For icol = 1 To 4
Select Case icol
Case 1
read_date_time = xlbook1.Worksheets(1).Cells(irow, icol).Value
Case 2
read_plate = xlbook1.Worksheets(1).Cells(irow, icol).Value
Case 3
read_plate_state = xlbook1.Worksheets(1).Cells(irow, icol).Value
Case 4
read_location = xlbook1.Worksheets(1).Cells(irow, icol).Value
End Select
Next
If read_plate = Nothing Then Exit For
Check_IF_Present(read_plate, read_plate_state)
Next
If Not xlapp Is Nothing Then
GC.Collect()
GC.WaitForPendingFinalizers()
GC.Collect()
GC.WaitForPendingFinalizers()
Marshal.FinalReleaseComObject(xlbook1.Worksheets)
xlbook1.Close(SaveChanges:=False)
Marshal.FinalReleaseComObject(xlbook1)
xlapp.Quit()
Marshal.FinalReleaseComObject(xlapp)
End If
xlbook1 = Nothing
xlapp = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error at Check for Xcel")
End Try
End Sub
View 1 Replies
May 23, 2011
I've managed to work out how to read EXCEL cells via static values. Ideally I would like my application to check the third column of the EXCEL sheet and if there are no entries on a given row, it should display the coresponding row of colums 1 and 2...for example if (C,3) contains no entry then get values of (A,3) and (B,3)...then mark (C,3) as pending by writing a value to (C,3). Here is my code at the moment
[Code]...
View 2 Replies
Jul 7, 2009
I have an application that browses through Excel-files, changes color in some cells if they are in a wrong format etc.When my application is saving the changed file I get this alert about compatibility issues that can occur, and this alertbox has to be agreed or cancelled to move on to the next file. How can I disable this compatibility check programmatically? Or is there any way to ensure there are only Excel 2003 compatible colors in the document before saving?
View 13 Replies
Aug 24, 2009
I have an issue which has successfully busted my head all weekend. I created a COMAdd-in, in VB.NET (VS 2008) for Excel 2003. We now need to work the solution out for 2007 and since the layout and objects are a little different we had to make some critical Interface changes.Instead of a floating CommandBar we are now going with RibbonBar, which looks good but it doesn't work. Whenever I open Excel Workbook (which is the primary application). The Add-in successfully recognizes it and opens it up properly (bunch of Macro calls, layout settings etc). Anyway, after it opens, if I click on any button (on the new ribbon tab) I get "Application not properly initialize. Program will now close" and excel object is lost.
View 1 Replies
Jun 19, 2009
I added the reference and the "Imports" line, and I get the folowing error on the line
Code:
Dim oApp As New Excel.Application
Dim oWB As Excel.Workbook = oApp.Workbooks.Add()
Dim oWS As Excel.Worksheet = CType(oWB.Worksheets(1), Excel.Worksheet)
COMException was unhandled
Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
View 4 Replies
Aug 17, 2009
my program lets people pick their color to highlight different shifts.after data manipulation they can export the shifts to Excel.I want Excel to show up the same colors as the users picked so I know I need to add them to the workbook palette.the first color I import works fine but after that, all the colors get jumbled and messed up and put in random spots in the palette
WorkBook.Colors(paletteIndex) = RGB(dColor.R, dColor.G, dColor.B)
leads to
Excel.Cells(i, j).Interior.ColorIndex = paletteIndex
something must be wrong in these two lines. I get no errors, just the wrong set of colors.
View 7 Replies
Jul 2, 2009
I have created a Customized Excel template for Office 2007 using VSTO. currently i am showing this template under my templates. is it possible to show under Installed templates?
like we have in office 2007 Billing Statement, Blood Presser Tracker, Time Card , etc. Is it possibe to show the template which is created by me; under Installed templates?
View 10 Replies
Feb 14, 2009
It appears that when one creates an instance of Excel, using CreateObject, (Late binding), the suggested Excel closing function (with GC.collect etc) does not work. I have tried several suggestions, and the only one that works is process.kill method. Do you see any problem in using this? BTW: the reason we are using late binding is that we cannot use Office PIAs....not sure which version of Office would be installed on the client site. We work with O2003, but the client might still be at 2000 or 2002.
View 7 Replies
Jan 25, 2011
I have written an automation addin in Excel with C# (addin.dll). To use the addin, I need to 1. register it using "regasm /codebase c:...addin.dll"2. select in ExcelOptionsAddInsExcel AddinsAutomation the respective addin from the list
I would like to automatize 1) and 2), so that the user just needs to run an exe-file in order to use the addin. 1) should be no problem, but how can one automatize 2)?
View 12 Replies
Apr 20, 2010
Ok basically what I need to do is the following:Read FirstExcelDoc (attached)For every row in that: Retrieve data from sql server db based on info in the Orange columns of FirstExcelDoc Let's say I retrieved data elements A, B, C, D, and E from sql server. Then I need to enter those same data elements A, B, and C in another excel spreadsheet (which has formulas etc) After inputing A, B, and C in that spreadsheet, read a couple of calculated fields and compare those results to data elements D and E retrieved originally from SQL Server DB. Finally, output the results in the Blue columns of the FirstExcelDoc spreadsheet for that row.Loop through and do the same thing for row 2 of the FirstExcelDoc and keep on until you see "END TEST" in the FirstExcelDoc.
I'm looking for a method of doing this efficiently. I have read several articles over the past few days as well as those from Mike R. but just need some direction to get started on this.To start of I'm looking for whether to read the entire FirstExcelDoc spreadsheet or just read the info for first policy number(2nd row) and process it and write out the blue column info for that row and then loop through and come back and read the second policy number (3rd row) etc... Please attach a code snippet for either way of reading the data.
View 19 Replies
Jun 17, 2009
I'm using excel via interop in application.Sometimes users kill application that created excel instance and that results in excel instance sitting in memory without any chance of disposing it.First I tried to tackle this using ROT(running object table) looks like not all instances of excel are registered there.Than I tried to somehow mark excel process after it is started via interop.[code]This works as long as excel is visible but in my case excel window is invisible.All I need is to somehow mark process that started via automation with the parent PID, so that later I can kill it if parent does not exist.
View 19 Replies
Dec 17, 2010
I have been pulling my hair out trying to fix this.
[Code]....
View 1 Replies
Jun 1, 2010
We have a vb program which is run on our server by scheduled task every day. The program opens about 30 excel files, refreshes the data connections, pivot tables and then saves the document in another location.
This may run fine for a couple days but sooner or later the process starts crashing, usually with this error: RPC_E_SERVERFAULT.
My question is, Is it expected that continually opening/closing/refreshing workbooks will inevitably cause the Excel object to crash at some point.
View 3 Replies
Sep 25, 2009
I'm having an issue where my excel.exe process doesn't close until I close my .net application. I'd like to avoid using Process.Kill() if at all possible.
Code:
Private Sub WriteRowsToXls(ByVal rows As DataRowCollection, ByVal xlsPath As String, ByVal showStatus As Boolean, Optional ByVal AddTotals As Boolean = True)
Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
[CODE]............
This method references a couple of other methods I use for repeated formatting tasks, I'll include those methods below. (I added the FinalReleaseComObject into the other methods after reading Mike's thread but the issue persists)
Code:
Private Sub SetRangeValidation(ByVal rng As Range)
With rng.Validation
.Delete()
[CODE]..............
Method SetRangeAllBorders does about the same as these other methods but my post is too long to add it. The only other things not shown in these code snippets are a few string variable that are defined in the class, studentWS, studentsWSPW, paymentsWS and paymentsWSPW My App creates an instance of the class, loads some data, runs the method above, and then sets the class to nothing. I'm using .NET 3.5 automating Excel 10
View 2 Replies
Sep 9, 2011
I have this code that works. it goes down a range and deletes the empty rows, seperates the first character into a different column if its not a number or negative sign.This code WORKS. but it is too SLOW for the amount of data i need it to deal with. I have already turned off automatic calculations. screen updating.and visibility of application.
[Code]...
View 3 Replies
Dec 28, 2011
I have this code that works. it goes down a range and deletes the empty rows, seperates the first character into a different column if its not a number or negative sign
View 1 Replies
May 28, 2009
I am developing an application using excel automation.The worst thing is the client's side doesn't have excel installed.What is the solution for this case?
View 17 Replies
Sep 24, 2009
This code worked fine in Excel 2003, but since upgrading to Excel 2007 (Office 2007) it's not working. In Excel 2003 it opened the access db form and stayed open. In Excel 2007, you can see the db open, then the form, but then it immediately closes. I've checked to code and it still works fine in 2003. Can anyone tell me how to fix this? Here's the code:
Sub OpenDatabase()
Set a = CreateObject("Access.Application")
strDB = "C:Weekly FilesWeekly Db.accdb"
[code]....
View 4 Replies
Oct 6, 2009
I'm trying to upgrade a VB6 app to VB 2008. I have read the article in the tutors corner about automating Excel from VB but I cannot get it to work. Heres what I have done:
1) set a reference to the Microsoft Excel 12.0 Object Library
2) Added "Imports Excel = Microsoft.Office.Interop.Excel" to the top of the module
3) in a routine I have added: Dim X As New Excel.Application Here's where I get an error: Error 75 'Application' is ambiguous in the namespace 'Microsoft.Office.Interop.Excel'.
View 6 Replies
Feb 24, 2012
I am writing a program that loops through all of the sheets in an Excel workbook and saves each sheet as its own workbook. It turned out to be a bit trickier than I expected, since the Sheet.Copy method creates a strange object (see here for the MSDN discussion that I believe is relevant: [URL]. Anyway, I found a Stack Overflow post [URL] that got me to where I am, which is essentially complete, outside of one hanging EXCEL.EXE process that is left after the program completes, which I believe is a result of the sheet.copy method creating a new workbook (potentially a new application as well?). The other thing I run into, which I believe is related to this, is that even though I have my application set to visibility off, when I run the program, excel still opens up and is visible going through the steps.
Here is my code:
Code:
Imports System.Data
Imports System.IO
Imports Microsoft.Office.Interop
[CODE]...
Now I think the problem comes from the end of the loop, where I try to close the export file and the new worksheet it creates:
Code:
'close excel and release com objects
System.Runtime.InteropServices.Marshal.ReleaseComObject(exportsheet)
exportsheet = Nothing
xlApp1.Workbooks(fileNames(counter - 1)).Close(False)
I can't figure out what to do to release the `ComObject` for the new worksheet that is created. I have been trying all sorts of things, but it always throws a COM error when I do it and if I try to define it as nothing (like I do with exportsheet) is says that it is read only by default, so I can't do it. It seems like it should be something as simple as: System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp1.Workboo ks(fileNames(counter - 1))) But that is not the case. I have tried a few variants of this and I am thinking it has to do with the MSDN link above, but I can't quite sort out what to do. So the code works for my purposes, outside of leaving one EXCEL.EXE after it is done. As far as a test file, I am just using an Excel file with 3 sheets and I put some information on each and change the sheet name, so it is easy to see if it is working or not.
View 1 Replies
Aug 3, 2009
I use the following code snippet
Dim exlapp As New Microsoft.Office.Interop.Excel.Application
Dim xlWorkBook_new As Microsoft.Office.Interop.Excel.Workbook
Dim strOriginal As String
strOriginal = Server.MapPath(Request.ApplicationPath & "/Attachments/") & "abc.xls"
xlWorkBook_new = exlapp.Workbooks.Open(strOriginal)
The code hangs in the last line. It works fine in the development environment. i deployed in windows server 2000 ,where I get this issue. the browser goes half way and throws the below exception after some time
[Code]...
I have set the identity impersonate to true in web config. This should be mostly an access rights issue.I have even provided access rights for the "everyone " user in the excel file and as well for the interop component. Please post ur valuable comments.
View 3 Replies
Oct 25, 2009
I have an Excel file with utilizes macros to allow a user to enter names of people and then double click on cells to enter ratings via radio buttons. When I open a blank file and enable the macros, I can add users, rate their skills using the radio buttons, etc. with no issue. I then SaveAs the file and continue working on it. once I Save and CLOSE the file, then go to re-open it, the trouble begins. Keep in mind, there is no alteration to the macros directly. Just entering data and using the form as intended. Here's what happens.
I reopen the file.I enter in the name of a person on one line. I go to the first box - double click on it.It is supposed to pop up a dialog box which allows me to choose a rating via radio button (as I had been doing before I closed the file). Instead, in that first column of ratings, it instead gives me the following error:
Runtime error '1004'Unable to set the LineStyle property of the Border class
When I hit "debug" this is the code it points to:
If ActiveCell.Column = leftb Then Range(Cells(ActiveCell.Row, leftb), Cells(ActiveCell.Row, rightb + 1)).Borders(xlEdgeTop).LineStyle = xlContinuous I have no idea why this would not work when I re-open the file!
note that when I go to click on the subsequent cells (there are 8 cells in which you provide ratings, moving across the columns with each cell) - the 2nd through 8th cells function fine. The dialog box pops up, the rating can be selected. it's just the FIRST cell that gives the issue What would possibly be the cause of this? We need users of this form to be able to save, close, and re-open it if needed.
View 1 Replies
Jun 15, 2011
We have a VB 2005 program that reads data from a database and builds an Excel output file to be emailed. This works fine from my computer but when we put it on the server it fails on the Excel functionality.
The error is: Unhandled Exception: System.Runtim.InteropServices.COMException
Although Excel is not installed on the server we did also build a Setup program to install our program. It copies the Microsoft.Office.Interop.Excell.dll to the server folder with the exe.I thought the setup program should register the Excel DLL and the program should work even if the server does not have Office or Excel installed.
View 3 Replies
Aug 7, 2009
when the worksheet is built i get the error message "Object reference not set to an instance of an object.".Here is my code:
Code:
Dim myXLApp As Excel.Application
Dim myXLWbs As Excel.Workbook
Dim myXLSht As Excel.Worksheet
[code]....
View 1 Replies
Jun 19, 2012
I am creating a new software with visual studio 2010 using the program language visual basic .NET, well in that software I create a new file in excel 2007, my question is because I do not know how I can create a combobox with data of my database inside, [code]
View 2 Replies
Jun 9, 2010
I work for a financial firm doing vb.net work.I open an excel doc and populate it using calls to range...i however dont dim the range...I call xlsSheet.Range.ValueI have about 30 ranges i update in this method before printingdo i need to set the .Range.Value to Nothing in order to close the excel.exe
View 9 Replies
Dec 1, 2009
When connecting, I am getting the error 'Provider is not specified and there is no designated default provider.'[code]
View 4 Replies