VBA -Determine Last Row Of Source Data Tab For Use In Executing Formulas In Template Tab
May 7, 2008
I am currently building a workbook with 2 tabs.
The first is a data dump tab. The number of rows used in this tab will change each time it is used.
The second tab currently has a header row and in cells A2-H2 are formulas based on data in the first tab.
I am creating a macro to autofill those formulas, but I don't know how to determine what is the last row of data in the 1st tab and use that as reference in my macro.
i'm trying to find out how i can determine if a template (.xlt) has been opened.. the name of the file generated is dynamic, and increments by 1 for each open count. this limits me from using an isWorkBookOpen() function, since i do not know the name, and my project does not allow me to save the file file before hand..
my thought was to set the .name value to the workbook object holding the template.. and then check to see if a workbook with that name is open.. but alas.. .name is readonly
how can i check to see if the template file is already open?
I am new to the VBA editing and I am missing some steps to get my files correctly generated and then ideally saved in PDF format in the same folder.
I have two files; one is an invoice template with the following fields:
Invoice Reference: Line 8 column D Issue date: Line 9 column D Client name: Line 11 column E&F Client address: Line 12 column E&F Product name: Line 16 column E&F Product details: Line 18 column E&F Production date: Line 20 column E&F Delivery date: Line 22 column E&F Units: Line 24 column E&F Total Units: Line 26 column E&F Total Invoiced: Line 30 column F
Each sheet in the "template" workbook should be named after the Invoice Reference.
Secondly I have the source file in which the data is organized as follows: (Both are in the same folder)
Invoice Reference: column A Issue date: column B Client name: column C Client address: column D Product name: F Product details: column G Production date: column H Delivery date: column I Units: column J Total Units: column J Total Invoiced: column E
One invoice needs to be created per line in the source workbook. I tried many times the macro recording without getting the correct outputs.
I have a report that was created for 2005 that contains two worksheets: a "source data" worksheet and a " pivot table" worksheet. I cleared out the 2005 data in the "source data" worksheet and replaced it with 2006 data...after this I refreshed the Pivot Table and everything seemed fine. When looking at the file size I noticed that it was almost twice its original size....upon further investigation I found that the Pivot Table was internally holding onto the old source data (the "Show" functionality of the rows/columns in the table lists the 2005 row/column headers as well as the 2006 headers....even though no data from 2005 is shown in the Pivot Table).
Does anyone know how to purge the old data from the internal Pivot Table memory?
I hope this is enough information....let me know if you need more.
I've attached 2 test files, one is the database master file containing the projects (each row represents a project, unique reference number in column A) and the other is the blank template file i'm hoping to export data into and then save down with the naming convention "column A_column B.xlsx"
Kept the test files simple but would need to modify any code to apply to much larger database consisting of many more fields etc.
I have the same question as described in Graphs Not Updating When Source Data Updated; however, the poster did not reply to the request-for-clarification questions.
My chart does not always update when my source data changes. My Calculations setting is Automatic (not Manual). There is no macro code working to produce the source data or the chart. My chart is on the same worksheet as my source data. The source data is simple links to other cells in the same workbook that update as the underlying data is updated. Saving doesn't work. Manually calculating (F9) doesn't work. The only way I have found to get the correct data to display in the charts is to open the Source Data and re-enter the Series range. Obviously, that gets old.
I have an excel file - central database - that holds a lot of raw data organized in tables. There are more than 15 files (dependent files) that access this data using VLOOKUP formulas.
I now need to add a few columns to the central database and these columns can't be after the columns already existing, i.e. they have to be on the left of some of the existing columns. Inserting those columns is going to mess up all the vlookup formulas in the dependent files.
Is there a way change the central database file without affecting the vlookup formulas in the dependent files?
I have a Userform that has 4 Textboxes (named TextBox1, TextBox2, TextBox3 and Textbox4) and 7 Option Buttons (named OptionButton1, OptionButton2, OptionButton3, OptionButton4, OptionButton5, OptionButton6 and OptionButton7). I need to validate that the following criteria is met:
TextBox1.Value Does not = "" TextBox2.Value Does not = "" TextBox3.Value Does not = "" TextBox4.Value Does not = ""
One Option Button is selected. (It can be any one of them 1-7, Just one needs to be selected).
Is there an easy way to check this data before executing a sub procedure to move the data?? Here is my try at it:
Code: Sub CheckData()
'Is this the correct way to check data ? If TextBox1.Value = "" Then TextBox1.SetFocus MsgBox "Please enter a Batch Date", vbCritical
I have a template file for ordering trafolyte and steel plates. I have added macros to this template file. The existing macros do the following (shortly described):
Macro 1: clears order Macro 2: update order date + send a read only file to the supplier of plates + save a read only copy of the file into one of three folders acc to info in one of the cells.
It's the Macro 2 I want to edit.
I want to add a "function" which copy a selection of data.column A to N from row 12 to 548 but only the rows where there is a value in column A.
Row 1 to 11 includes standard order info and Macro buttons. Row 11 includes the heading for order data.
For everytime someone click on the Macro 2 button in the template file, I want the selection to be paste into the first "available" row in a "Total list" file.
The "Total list" file may have to be open (or a function to open, paste selection and then close the "Total list" file may be added)
File and Folder info:
To simplify suggestions, the following file and path info can be used (I can change to the correct later): Template file name: template_order.xlsm Template file location: \servershared emplate
Total list file name: total_list.xlsx Total list file location: \servershared otal
Selection info:
The template file exists of a "general order info area" A1:N10 The column heading for order data is located at A11:N11 The selection to be copied is A12:N550 - But only rows where column A includes data (not empty). (If the spesific order consists of 14 plates than there will be item no 1-14 in column A and I then I want to copy A12:N25 (row 25 will be item 14).
When I try to use record macro it looks like it only records what's happening in the template file - It doesn't record the pasting in the total list.
how to create a copy of my employee attendance template. Is there a way to create a copy of the template by entering an employee name in the "name" cell of the template and it automatically renames the sheet that employee name and also saves or recopies the template for use with the next employee?
I Have a number(30+) of excel files based off of one template. I have since updated the template, thus making the the old ones obsolete. Is there a way to update the older files to use the new template without having to copy and paste the addition's row by row column by column?
None of the additions to the template will change the placement of existing data, nor will it change the data itself. It will however add Values to cells that were previously empty.
I'm trying to automate creating certain keyword combinations I need, based off of the values I input into reference cells in columns A - E; the goal is to compile a list of keywords which I will then use to track my rankings in search engines.
I'm looking to only output 500 keywords, so some of the cells in columns A, B, C & E will not contain data (column D will always have a primary Geo-target listed). This results in some of the concatenate formulas I've created outputting partial data (i.e. if there is no data in cell A10, and cell D2 contains the word "Knoxville", then cell I10 will output the data, "Knoxville "). How can I setup conditioning formatting or a formula so that these auto-generated cells appear blank if one of the reference cells has no data within it?The reason why I need the above to work is because I want to setup a formula that automatically counts the # of keyword combinations created by the data entered into any of the reference cells. With the partial combinations being listed, it skews my data. Which leads me to my next question: what is the best formula for counting the # of cells containing a full keyword combination from any of the cells listed in columns G - O (minus the data in the header cells; i.e. G1, H1, etc...)?Lastly, is there a formula I could use that would then aggregate all of the full keyword combinations within the "Complete Keyword List" column (column P)?
1) I created a one-sheet template, and a new workbook from that sheet. When in that new workbook I go Insert>Sheet>Other and select the aforementioned one-sheet template, Excel crashes, or if not, it adds the new sheet, but then no longer saves the workbook and starts producing error messages (like: "An unexpected error has ocurred. AutoRecover has been disabled for this session of Excel.").
1a) Now, the complication is that this is working when I do a model operation with a generic template sheet. So I checked the template that I actually want to form sheets after, and Excel finds no errors, nor does it's name contain any unusual characters. What could Excel prevent from working with a template like this?
2) How do I edit a template? The only way I can find is to manually find the spot in finder, open, and save with the same name. But: if I do that, the documents basing on that template don't change accordingly. If they're intended not to, the whole template procedure makes no sense. I could then just as well copy a file. — I've been searching for tutorials on that, but google doesn't even return a single result on Excel "edit template". Therefor my very basic question here.
I'll start with the attachment since it's always easier:
Attachment 327508
This file is far from finished so there is some useless stuff there. What I'm interested in is in the sheet RecapTable (and in Etiq1 to Etiq4).
I'd like to write a macro that'll populate my Etiq1 -> 4 according to the RecapTable. Data would be set up as in Etiq1 A1:A3.
I don't have to have 4 template sheets and it could change if it's easier to do something else. The goal is to print labels so I maybe only 1 Etiq is needed, and the macro could populate, print, erase, finish populating, print again
1. Count entries in RecapTable (found something that does that! yeey!)
n = Worksheets("RecapTable").Range("A:A").Cells.SpecialCells(xlCellTypeConstants).count
((2. Divide that by 65 (which is the number of labels per sheet) and round at upper number. For example: if n=100, 100/65 = 1.54 so 2 sheets needed)) [maybe a useless thing to do]
[Assuming I only populate 2 cells]
If v is the row# in RecapTable, If w is the column# in RecapTable, If x is the row# in Etiq, If y is the column# in Etiq, v=1, w=1, x=1
I have a list of invoice #'s on a sheet named "Temp Sheet".
I have a VBA macro that created a new tab for each entry and named it the invoice #. So basically the vba code created a new tab ( based on the number of invoice #'s on my list ), and named each tab an invoice number. So if I had a list of 10 invoice #'s, named S1-S10, the vba code created 10 tabs, named S-1, S-2,. S-3.....
Now to my question. I have a template sheet I want to copy from ( "Template" ), and select any sheet that starts with "S", and copy/paste this template to.
I need to create a "purchasing programme sheet from extracted data in a different workbook.
In short I need to open the Allocation, Add stock qauntities to the the boxes with a quantity in it and if its a zero i need (Once the button has been pressed) the information to be extracted to the corresponding boxes in the Purchasing Programme Document: Description, Part Number and quantity.
picking things up. At the moment I am trying to create a macro using VBA to do the following in this exact order:
1. Delete Column A and B (once only) 2. Automatically pick up credit card number (In column A) 3. Copy all instances of this credit card number (and all data on same row) 4. Open a template I have set up 5. Paste the copied data onto a specific sheet on this template 6. Save as file name "xxxx - branch name - XXXX - DDMMMYY" 7. Repeat (loop?) this for all credit card numbers on the sheet.
There are approximately 90 credit cards, and I need a new workbook for each one to work on separately.
I've set myself a project to try and automate some repetitive filling in of word documents and would like a point in the right direction. I've done some research on the MSDN and some sites on the web. The way I was thinking of doing it would be,
make a template with either Fields or Bookmarks (which would be best?) for each piece of data on the paper work.Put the repeated data into an excel sheet (with a button for the macro to be assigned to).
write some VB script that will, define and "label" the data in the XL sheetopen the word templateenter the data into each Field/BookmarkSave as a new file in a "New" folder (name of file and folder taken from the Data)open the next template and repeat.
would this be the best way of approaching this problem?Whats the best way of defining points in a word template, Fields, Bookmarks?what objects would I need to use to rename the folder?
I have a .dot word template that has the little 'grey' boxes that is awaiting information to be filled in, this information is already stored on a master excel sheet and the doc is simply for 'archiving' and users benefit, from my point of view its pointless.
and I have an excel file which is A1 : Username B1 : Password C1 : Email how easy / hard is it to create a button macro to automatically go to the .dot file location, open it and then put the create data in.
I've been looking around to find a solution for my problem and as a last resort I have decided to make a post, and I will get straight to the point. I have 3 xl Files of relevance:
1 - is my "database" which consists of multiple sheets with different information in each. Each sheet is correlated with each other by one common ID. 2 - is my "template" which is 2 sheets, which functions as a report. The template serves as the Report which will be printed. The data from each row from the database can fill the spaces in the template.
3 - "the tool" xl file is where i have my macros and the mapping for the which columns from the database belong to which cells in the template.
Basically what I'm trying to get to work is: User opens Tool clicks "create Reports" and the tool should then open the database, pick the range of rows from the database put the data into the relevant cell in the template save the "template" with the info on it, close it and do it again with each row of data from the database. So if I pick rows 4 to 34 in my tool, it should create 30 xls files from the template and fill in the data from each row into each newly generated "report".
I am trying to create a template which when filled out will automatically transfer multiple cell information to an excel database, and everytime the template is filled out - transfer the new information to a new row (sequentially) - I do not want the info to remain on the core template - it needs to be blank after every use.
I tried the template wizard - which worked to a degree but I was unable to move the database file to an alternate location and still have it work - I was also unable to alter the code created by the wizard due to password protection.
to sum up I need a template that updates numerous cells on a database in sequential rows that can be transfered to another computer / location.
I have a simple reporting sheet where the data for orders place is in one sheet and on the other sheet is an imput box for 'date' and it filters through and presents a table of data and two graphs for the date chosen.
I give a daily report (contents of this sheet) but I also need to leave this sheet available for anyone to open and change to another date.
I want to copy the repor sheet into a new one and email but I want the graphs to remain, not go blank when anyone changes the original sheet.
I have a bar chart that was made from table 1 which has the value in it. I have another table, table 2 that has the name corresponding to the value in table 1. I want to color data points in a bar chart with a different color for each name I have in table 2. I also want to give a data label in the data points with the value I have in table 2 instead of the original data label from table 1. Is it possible to do it?
I am trying (and failing) to set up a mail merge with a Word document. I would like for the doc to take information entered in specific columns and display it in the right field. I've set up the field and the excel doc and went through the mail merge wizard's steps for setting it up but it doesn't seem to be doing what I want.I am attaching the doc and spreadsheet below.
MichaelFields TEST.Contract Entries.xlsxFields Test.Contract to Provide Legal Services.docx