Modules & VBA :: Scrolling Excel Worksheet Object Back To A1
May 18, 2015
I have a function which exports some data to Excel, performs some work, and then attaches the final report to an e-mail. As a result of various temporary columns being added / removed (for formulas to determine scope etc.), the main sheet ends up scrolled to the bottom of the used range. Before I attach it to the e-mail, I want to scroll the sheet back to the top-left corner (A1).
Code:
Public appExcel As Object ' Excel Application object (late-bound)
Dim objWorksheet As Object ' Excel Worksheet object (late-bound)
objWorksheet.Activate
With appExcel
With .ActiveWindow
.ScrollRow = 1
.ScrollColumn = 1
End With
End With
It worked up until this week, when I had to make some changes to the rest of the code to refine the output. Now, when it hits the ".ScrollRow = 1" line, I get RTE 91..how I can get the sheet to scroll to the top-left before I save it? (Such that, when subsequently attached to the e-mail, the recipient will open the workbook at the top-left cell and not sacrolled to the bottom).
I've lost two shapes in a worksheet, and can't find them because they are formatted with no fill and no borders.
There are a number of other shapes in the sheet which are formatted and so are visible.
How I can find my two runaway shapes? It's important because they have macros assigned, and so a user may find himself clicking on them unexpectedly, with unfortunate consequences.
Dim xlApp As New Excel.Application Dim xlwrkBk As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim strXLS As String strXLS = "c:AccessMyfile.xls" Set xlwrkBk = xlApp.Workbooks.Open(strXLS)
[code]...
The program is stopping at " Set xlSheet = xlwrkBk.Worksheets("singles")"
and I am receiving the following error box:
Runtime error 9
Subscript out of range.
I don't understand this error because I am using the same program code with another Excel file in another module and it works perfectly.
I am new to MS Access and have been trying to use VBA to import a specific worksheet called "Access" in an Excel file (from about 400 users) into a single table. I want the code to search through one folder and import the "Access" worksheet in each Excel workbook within that folder. Each user has the same worksheet name. Here's my problem. I got this VBA code from: AccessMVP where KDSnell gave examples of how to import Excel worksheets into MS Access Tables.
Sub ImportExcel() Dim strPathFile As String, strFile As String, strPath As String Dim blnHasFieldNames As Boolean Dim intWorksheets As Integer ' Replace 3 with the number of worksheets to be imported ' from each EXCEL file
[Code] ....
When I execute the code. Nothing happens. I go to the table and find nothing....or I get Runtime error 3011, where MS Access can not find the object "Access". Also, is it possible to update the table without duplicating records?
My report has in each row at least 1 picture which is about 1.5" square when open; however, when trying to scroll up or down the pictures dazzles on and off while the pausing the scroll which moves slowly. If the pictures are removed the scrolling movement is normal.
How can this report scrolling be made more efficient?
I have used the following script to export a subform to excel but it isn't working for a report.
The report name is spelled correctly etc... but the error message keeps saying error 2465 or if I enable the error handler it says application defined or object defined error.
I don't want to have to export the data to a table first, but if I have to then I guess I will have to.
Code: Sub fFunctionNameExportExcel(ctrl As IRibbonControl) 'print to excel Dim rst As DAO.Recordset Dim ApXL As Object Dim xlWBk As Object Dim xlWSh As Object Dim fld As DAO.Field Const xlCenter As Long = -4108
I have a question about the best way to go about linking an excel workbook to an ms access table? I have researched hyperlinks and attachments and ole objects and I am not sure what is the best option. I believe hyperlinks will be best, because the attachments will bloat the database, but I am not sure how to go about doing that in vba? My process is such:
1)Users enter project information 2)Users enter the sample information for each project 3)The project and sample information is combined by a query 4)The user clicks a button to print forms, which runs the query and opens an excel workbook template. 5)The data is exported to a specific sheet in the workbook 6)Using vba in excel, the data is used to populate cells in different sheets depending on critera.
After all of this is accomplished, I need the user to SAVE AS the excel workbook and it needs to be "attached" to the ms access 'project' table. I am not sure what is the best way to link this back to the database. I would like to automate it with vba if possible.
I need to pull data from specific worksheets in Excel from Access. I have code to get the data from a worksheet, but the sheets themselves have dynamic names that I will not know until runtime.
There is one worksheet called "Template" that is consistent. I will need data from every sheet after that one, regardless of its name.
So basically I need to find which sheet "Template" is, find all the worksheets after that one and get their names. Then I can use my existing code to loop through each existing sheet (by name) and pull the data I need.
I'm thinking this is somewhat simple--there has to be some command to find all the worksheet names, but I haven't found it yet.
I'm trying to make hyperlinks to specific pages of a workbook to excel. If I put the hyperlink of the form as follows then works properly: C: Users Desktop test.xlsx # Sheet2!A1 -> leads me to Sheet2 document "test".The big problem comes when the leaves have spaces in its name, that is, if the sheet is called Sheet 2:
C: Users Desktop test.xlsx # Sheet 2!A1 -> does not work. C: Users Desktop test.xlsx # 'Sheet 2'!A1 -> does not work.
I am having an issue with an Access import. It worked correctly bringing in a sharepoint spreadsheet until a date field was added to the spreadsheet and the structure to the database. Now it drops any additional fields that are added. At first I thought if I added a filler field after the field I needed that it would still drop the last field but it dropped them both. If I insert the field in the middle of the spreadsheet....(where I really want it). It drops the last field of the email address. Which I need to send out notifications. I have tried designing a complete new table and importing it, but it continues to do the same thing.
Not sure if my problem is with the spreadsheet or Access. Somehow it is still looking at the old structure when I import even if I create a new table. Not sure what is happening.
I have an Access db needing populated via a worksheet with unknown # rows and known # of columns. Before pulling this data in I must do a row count to determine how many records will be added to the db. Otherwise, it would be a very simple thing to just copy the contents of the worksheet over.
Known: - Only using DAO. - The access table is already created matching the column count in the worksheet. - The spreadsheet will have an unknown row count. - Some rows in the spreadsheet will have various cells empty. - A completely empty row will mean EOF.
Need: - I need to determine how many rows are in the spreadsheet before copying into db.
Problem that occurs from attempt: - Overflow issue. I seem to be counting every single row on the worksheet, even though only 2 contain data.
Any ideas out there? Pasting below my latest attempt.
Dim strStorage as integer strStorage = CLng(xlsWST.Rows.Count)
I'm pretty new to Access so I hope this question is not to simple/stupid ;)
Ok, I have an Excel Worksheet that I want to import into an Access Table. The column headers are identical! The only problem is:
- the Access table looks up a couple of the columns from other Access tables. When I try to import the Excel data, Access does (properly) report an error.
- Error: the records from the Excel file were added to the Access table but not all values were imported (no values were imported into the lookup columns...)
Any idea how I should procede so that I can import my data into Access?
I am using Access and Excel 2007. This Db is for a mental health practice to track and store the paper questionnaires that the patients fill out. The data then needs to be exported to Excel so that it can be imported into a proprietary software that analyzes the data and recommends treatment plans. (It does NOT play nice with Access, forget it.) There are many forms and all of them are fine and export to separate worksheets no problems.
Now for the problem child: One form has 493 fields. Obviously I could fit that into two tables, but it seemed cleaner to use a main form and main table with the patient information (ID_Number, Name, Date, etc.), then tabbed subforms and separate tables for each “section” of the questionnaire (School, Work, Home, etc. There are 11 tables/forms in all.) These tables are all related by the ID_Number. The problem is the export. I need all 493 fields to write to one worksheet in order. This would of course involve removing the ID_Number field from all the tables except the main one. A query obviously can’t handle that many fields. VBA I can TransferSpreadsheet but then each table goes to a separate worksheet.
I’m thinking maybe calling some SQL code that will drop the unneeded fields and keep appending the data to the worksheet one table at a time? Of course the rows would somehow need to be defined WHERE ID_Number = ID_Number so that the same patients information is all on one row.
I have an access 2010 database that looks after all the engine data for a fleet of engines. Each engine has a unique serial number and that serial number is displayed in a test box on a form using a search function.
Each engine serial number has a corresponding excel worksheet where the engine data is displayed as a graph.
Is there anyway that I can have a control button on the form that will allow me to display the excel spreadsheet corresponding to the engine serial number displayed in the text box?
I want to export a query into a specific worksheet in Excel. Have tried DoCmd.TransferSpreadsheet acExport, but it appears you can't specify an existing worksheet or cell range with a query. Some have said tables only. I want to assign this export task to a command button.
The variables are:
Query name = TrainingDataQ Excel workbook path & name = C:UsersmeDesktop2015AccessExportTest.xlsm Desired Excel worksheet = RawData
I think thats all you will need to know. The data in the query varies but would be no more than about 500 rows.
Also for the next time i want to run the export, some code to open that same excel file and delete the data in the RawData worksheet so that i can export new data from Access?
where "CustomerFormatted" is the sheet I am trying to import in to the "Customer" table.
The error I get is Run Time Error 3011, The MS Access engine could not find the object "CustomerFormatted" make sure its name is spelled correctly ....
Is there any other way I can import an excel sheet in to an access table?
I have an excel spreadsheet with 8 tabs. They are all in the same format and column order. They are employees grouped by region. My ultimate goal is to merge all of these onto one excel tab, relatively instantly. I created a master tab and tried doing array formulas and Vlookups, it worked but my spreadsheet was way too slow.
My solution? Import and link them to an Access database, step complete. Create an XML export then import into Excel.
My problem? The only way to update the excel tab with the combined tabs is to save the excel file after changes, go back into Access, re-export to XML, then go back into excel and refresh the data.
My questions, is there any way to automate this process to the point that I can change excel, save, then hit refresh on my excel tab with the XML import to auto-update?
I have a listbox "lbxMP" that holds names of forms and a subform "ctrlMP" that opens selected form (ctrlMP.sourceobject = lbxMP). I also have some various master cbx that control criteria in each form. I am trying to create a button that will not only clear/null all the cbx values (which works fine), but I am having a hard time telling me.ctrlMP to go back to null or unbound (i want it to blank out the subform to make it look fresh). I have tried requry and also me.ctrlMP = null and ctrlMP=unbound with no luck.
I have recently been doing a lot of work on this area. Im able to export to where i want to and run macros through the VBA code inside of Access to edit the spreadsheets. This is ok if your making a new excel workbook/worksheet.
But what im stuck on is exporting to a so called template in excel. I can export to it at the moment but creating a new worksheet, in which i have to then cut and paste the data into the correct worksheets through code and then delete the worksheet that i had been working from (which is annoying because you have to confirm the deletion of this worksheet, which is why i couldnt really do the process this way).
What i want to know is there a specific way of telling the data you are exporting from a table/query/querydef to go into a certain worksheet and into a certain cell. For example; a list of names, i want all the Surnames to go into a worksheet called "Claim_Breakdown" and start from cell "A15" downwards until they have all been exported into the worksheet.
Anyone have any ideas on how i could achieve this? Thanks.
I am currently working on a form that exports a query that changes after a user set filter is applied, and am able to get the filter to apply and the query to export. The problem I am having is that the worksheet that the query is copied into retains all previous data, and if the earlier query export included more records, they remain as they were, is there any way of getting them to be blank.
I want to export my query onto a worksheet that has current data, need to delete current data or delete worksheet so that only the selected data is shown.
My code currently is:
Private Sub Command67_Click() Dim strWhere As String Dim strFile As String Const strcStub = "SELECT NomT.shkFirstName, NomT.shkSurName, NomT.shkCompanyName, NomT.shkAdd1, NomT.shkAdd2, NomT.shkPostCode, NomT.shkRegion, NomT.shkCountry, NomT.shkAdd3" & " FROM NomT" & vbCrLf With Me.FilterSub.Form
I have a form (frmCommoditySupplierSpend)and a subform (frmCommoditySupplierSpendSubForm1ByVend). I have a control button in the main form that will scroll down the page of the main form to a point I desire by using:
The problem that I am having is in my subform I have a button as well and when a user clicks the button in the subform I want the main form to scroll down to the same point. I thought the same exact code should work, but it ends up scrolling down the subform instead of the mainform, even though the main form is being stated. how to scroll down my main form when using a contol in subform.
I've been playing around with trying to make a scrolling marquee on an access form and it works. How I could get it to change. Here's what I've got....
Private Sub Form_Open(Cancel As Integer) message = "my message" End Sub Private Sub Form_Timer() Text0 = message 'Get first character Dim FChar As String FChar = Left(message, 1) 'Remove first character message = Mid$(message, 2, Len(message) - 1) 'Put 1st character at the end of the message. message = message + FChar End Sub
and that works great. Now I'm trying to make it get the message value from a table so I change to this...
Private Sub Form_Open(Cancel As Integer) message = Text0.Value End Sub Private Sub Form_Timer() Text0 = message
[code]....
and set the control source for text0 to a field in a table. the problem is when I change the message in the table or add another record the marquee doesn't change unless I completely close and re-open the form. Is there a way to make it update without closing and restarting?
I have split my database in Front End och Back End, and both are password protected. The Front End has been converted to ACCDE.
When I try to import to Excel from Front End and/or Back End using database connections I receive a message telling me that I am using an invalid password (even though I use the same password when I encrypt/decrypt FE and BE). I've tried using Access import, ODBC and Microsoft Query. (In some cases I 'm also prompted to set a username, which I do not know which it should be since I haven't set one in my database (except the automatic "admin"))