Okay, Im setting up a spreadsheet that will track employee progress. Im new to vba and macro programming in excel but am not foreign to programing in general. Any assistance would be greatly appreciated. What I want to do is as follows.
Start off with 3 sheets (roster, log, Total) The log sheet will have all the tracking metrics of each employee.Total will Total each employees log sheet together and roster will be a dynamic employee list. As a new entry is created in roster then I want to copy the log sheet and rename it by the name put into roster and add the new (named) sheet into the Totals calculations.
For arguments sake just say that each log sheet only has a numerical value in a1 and total is just tallying all log sheets a1 fields. Roster contains just a first name in column A and no other data. (Given direction I should be able to expand the concept to a more intricate set of sheets.
Additionally it would be interesting to be able to remove a name from roster and have the said log sheet be deleted and removed from the totals formula... :D
Again Thanks for any assistance.
I have seen people try to make excel work like a database and it is ultimately doomed to failure. As this is a green field project I would start it right and use some sort of database. The choice is yours depending on your skillset, hardware available and what it will be used for. A good starting point would be good old MS Access, it is quick to learn and in the right hands very powerful. If it is going to be higher use then maybe look to a server based data store such as SQL server and write the front end in anything you want (Access, vb.net, asp.net etc)
The point here is choosing the right tool for the right job, spreadsheets have their place but databases they are not
Related
To start, unfortunately I cannot use Import-Excel (yet! organization is looking to implement the module "soon") or other outside modules, so am just working with excel objects manually.
I made an automated report that appends to an excel document every day. It looks something like the included picture. The servers and their data are not in the same cell position for each daily sheet, but are always grouped together (so Server1 and its data might be in the middle of today's sheet, but at the beginning yesterdays sheet). Databases can change, so I'll also be looking into error checking that a database actually exists on both sheets to compare them.
I want to check the most recent sheet (sheet labeled 2020-08-10) and compare each database with the same databases on the oldest sheet (sheet labeled 2020-08-08) to get a size % difference between each database, but I can't seem to figure out how to automate finding the multiple "Database" rows of each server, then going down and grabbing each database and size to compare.
Any help or guidance to get me researching in the right direction is appreciated.
I am attempting to find a solution with either excel or visual basics.
I have an expanding column of remarks on multiple sheets that I need to search through for a keyword (I’m using the word “change” or “chang” to capture “changing” when needed)
When this keyword is found, I need it to give back the cell address, along with a defined name I’ve set up (one for each sheet).
I was able to make a table on a “summary sheet” to include the “new comment”, address, and defined name, and it works well enough. My only concern now is if I add a new row and therefore add a new comment in the column on one sheet, I will have to go back and add a row to my table, and make sure the address and defined name are also corresponding to that “new comment”. This will get very messy and errors can occur, especially since I could have 20+ sheets.
So far all I have been using is excel formulas. But I have also been playing around with excel macros to try and accomplish this (with no luck).
Any help would be greatly appreciated! And I of course can explain this better if need be.
Edit: I added a picture of the general basis of what I’m trying to accomplish. I can’t add the code I’ve been trying as it’s on my work laptop- so I made a simple mock-up of my sheet to include here. I took pictures of the highlighted cell in sheet 1 to show the formulas, and then a picture of sheet 2.1
I'm extremely new to excel's VBA and to the idea of macros. My boss has asked me to try to figure out a way to figure out a solution to this problem:
"Each semester we are given an excel sheet with rows upon rows containing a students name, the class name (ACC, FIN, BIO...), course number (101 or 102...) and the section number 5162 (a unique identifier). Each semester teachers request the roster sheets for their classes. We typically have to create a new workbook with that professors name, then by hand copy and paste each row of one section of their class onto one sheet naming it accordingly ex BIO 102-5623, then the next section of that class into the next sheet and so on. We would like for you to figure out a way to automate this process so that we spend less time creating whole new workbooks and sheets and then copying and pasting all of the rows."
I figure that excel's VBA feature would be a good way to do this, but I've never used it before. I've done a lot of research on the tool since I started the project and have been watching a ton of tutorials, but I'm not sure if this will take several different macros to perform or if maybe this would be better to do in something like Access, or if this is possible at all?
I think it would be easier to do in Access.
The roster and classes already acts much like a database, and you have a unique identifier in that section number. Doing so with access or any kind of database would allow you to execute something like
select studentName from rosterDatabase where classId = 12345
and that would result in all the students in said class would populate the list.
I am trying to create a spreadsheet that allows me to keep track of a customer with general details (name, phone number, address...) bu then also keep a very specific list of all the products they have ordered. I want to be able to run reports on frequency of all details including what has been ordered. I have a bit of programming experience but not a whole lot of Excel experience so I know how I would write a program but not exactly how to do it in Excel. My thought is to have one sheet dedicated to the general specifications of the customer and then a second sheet that keeps track of the orders per customer. I want to be able to click on a hyperlink or something of the sort that will take me to the second sheet and automatically fill in the customer name. I want the first sheet to have the guest information running horizontally in rows but then the second sheet would have the names running horizontally on the top row and the orders would go down each column under the names. This way it keeps all of my sheets tidy and allows for me to run the type of reports I'm looking for. The main issue I'm having is figuring out a way to create a link that will do the action I want. I understand how to program but don't know Visual Basic very well but if someone was able to offer a similar code I would be able to decipher it and change it to my needs. Or if someone has a more efficient thought on how to set up the spreadsheet I'm all ears! Thanks a ton!
what you need is to create a pivot table with a data model.
The instructions are longer then what it actually takes!
here are few tutorials about the subject:
youTube video
MSDN instructions
PS don't write code in Excel unless strictly necessary. If it's a data issue, use data model
I have a spreadsheet that is used to track audit scores for 9 different departments in a plant. The 9 departments are broken down to 117 different area locations. Once a month I add a new column and update the scores. What I would like is a seperate sheet for each department with the audit scores updating automatically when I import the original data in. I'm new to VBA programming and this may be over my head a little bit, is there a way to do this?
Why not using a pivot table in each tab ?
You'll only have to use the "actualize" command once ( Data-->Refresh all) whenever you're adding a column.
The thing you have ot be careful with is to set-up you master table as a list (Home tab-->Format as a table command ) or else the pivot table will not take account of an added new column.
Without seeing the actual data and the format the it is currently in...
Assuming that you make a separate sheet for each department each with a row corresponding to its respective area...
I would utilize a class to hook the application's events and update each sheet on the Worksheet_Change event. Chip Pearson provides an excellent example of this concept here and I'm sure that a cursory search of SO will turn up quite a few examples as well.
From that point it is a matter of identifying the imported data and it's corresponding location in the workbook.
If you have an example I would be happy to look at it...