I am about to embark on the task of integrating spreadsheets that will have data shared by several people. We have salespeople, project managers, engineers, the company owner, and others, who wish to view and/or edit info related to a couple hundred or so active projects. For example, the user needs to be able to change or add a due date to a milestone, and upon saving or syncing that change needs to be made to the other users' workbooks.
I have been tinkering with VBA for a little over ten years now, and thanks to John Walkenbach and this forum I have some pretty slick spreadsheets, but other than using VLOOKUP for pulling in data from a product part number and price list, I have not manipulated external data at all. I could probably write a very clunky code that would take a half an hour to run, but before I get started I need someone to point me in the right direction for making this happen, please.
Obviously, there's a risk that two people will be working on the same project, and one or both of them may be working offline at the time. When the two users save or sync, and the data is updated in the master spreadsheet, if a change has been made to a cell by both of them there's an error message and options for resolving the conflict are available. (But perhaps I need to just prevent that by users having ownership of a project record, locking out others from editing rights.)
Each project will be contained in rows, and the data categorized in columns. The columns have a range name and the row could too, or I'll work off a project number to allow for identifying a record that is present in multiple workbooks. I have considered using the Intersect function (using the column name and project number) to then compare what's in a given cell for a particular record on both the master spreadsheet and the other spreadsheets that have this record.
One problem I foresee is the ability to determine when data is newer and needs to be updated. I was thinking about using the Comments property to store a date and time of when data was changed, but I would like to use this for other purposes. I haven't experimented with this, but I was curious if I could use the ID property to store this 'modified' date for individual cells.
But, like I said, just in case this is a terrible approach and/or my spreadsheet will be super slow, I could use some advice on the fundamentals of a better way to do this.
Thanks!
Bookmarks