Is it possible to share only one tab of a spreadsheet?
Is it possible to share only one tab of a spreadsheet and not all tabs?
Is it possible to share only one tab of a spreadsheet and not all tabs?
And which of those "superior" spreadsheet apps provide a convenient solution the particular problem posed in this thread? Specifics would help. Which ones allow efficient sharing and collaboration on just one sheet at a time while preventing the recipient from accessing the other sheets?
SG
How many tabs are you trying to share? How did you imagine you would do this in a perfect world?
In response to your question t quinn.... I imagined setting up many tabs (dozens, one for each clients) that all link to a data source tab. The client tabs would have formulas that only extract data relevant to them. I would insert the fresh data daily into the data source tab which would then update the client tabs with new information automatically. When each client tab is created a share link would be sent to the client that they can then check every day for fresh info. I would not want them to be able to view other tabs and other clients info though. I do not want to have to repeat this every day for every client. I wanted all to be updated with one import daily. That is what I envision as a perfect world.
Csound1,
Are you trolling? volsgc is looking for a solution and maybe there is one (even if Numbers does not provide the solution).
From SG: surely there are workarounds that can be useful in many situations.
I hope that we can help volsgc.
Regards,
Ian.
What on earth is your problem, I suggested 3 alternatives all of which make the task of seperating a sheet from a workbook much easier than Numbers does.
If you have some issue with my post man up and say so!
SGIII wrote:
And which of those "superior" spreadsheet apps provide a convenient solution the particular problem posed in this thread? Specifics would help. Which ones allow efficient sharing and collaboration on just one sheet at a time while preventing the recipient from accessing the other sheets?
SG
None of them and I never suggested that they did.
Can you do this in Numbers?
Share the entire workbook. assign editing rights to the sharers. Use the sheet protection functions to block access to any sheets you dont want the sharers to access.
This (a) gives them access only to the sheet(s) you choose but (b) does it with dynamic data links (if present) functional.
This is based on Excel/LibreOffice functions, I don't know if either version of Numbers can do this but I would check.
In Numbers (either version) the sharing seems to be very basic (as far as I can see) so I would say no (but I am no Numbers expert). In Excel yes, very simply, once users are setup (one-time) you just pick them and share the book (permissions and protections are saved in the file). It seems to me that Numbers simply doesn't do what the OP wants, that leaves choice of changing what is wanted to something Numbers can do, or changing Numbers to something that can do what is wanted?
Unless you have a third option ..
My suggestion by the way was to check if it was possible in Numbers, because I make no claim to be a Numbers expert, merely a spreadsheet user.
In Excel I see I can easily protect a worksheet within a workbook to prevent editing. But I'm not sure how to hide a worksheet selectively so the recipient couldn't see it at all. I'd be a little nervous sharing a workbook with a particular client that also contained "hidden" sheets with data for other clients.
As you pointed out in one of your earlier posts, in Excel you can easily copy (or move) a particular sheet out to a new workbook. But that would (I think) be tough to do for dozens of worksheets (one for each client), even for Excel. In practice you would want a macro.
I'll respond separately to volsg's "dozens of tabs" post on a possible AppleScript approach that might accomplish what he wants using Numbers. Dozens of sheets, though, is a lot, tough to manage, I suspect. Unless each sheet is pretty small, Numbers may choke on that large a task.
SG
Yes, I was thinking along those lines too. I'll see if I can come up with an ApplesScript proof of concept that transfers data from a multi-sheet source document to multiple one-sheet documents that have already been set up and shared with respective clients. In theory not hard, but in practice dozens of sheets might be stretching the limits of Numbers.
SG
Here is an automated way to send data from individual client sheets ("tabs") in your source document to separate documents that you have set up and shared with specific clients.
It assumes you have created individual documents whose names match the sheet names in your source documents, e.g. in this example I have sheets named "Client1" and "Client2" and corresponding documents named "Client1.numbers" and "Client2.Numbers". It also assumes the data is in (and is destined for) the first table on each sheet, though this could be changed by changing the 1,1 parameters in the call to sendData(). As written the source and individual destination documents have to be open (though, at the cost of added complexity, it would be possible to tell Numbers to open them).
To use, just set up the source and target documents with the matching names , copy the script into AppleScript Editor, and press the green triangle run button.
Add sheet names as needed in the sourceSheets property, making sure to enclose them in quotes.
SG
-- sends data from specified sheets to separate documents already set up and shared
property sourceDoc : "MySourceDocument.numbers"
property sourceSheets : {"Client1", "Client2"}
repeat with aSheet in sourceSheets
sendData(sourceDoc, aSheet, 1, aSheet & ".numbers", 1, 1)
end repeat
to sendData(srcDoc, srcSht, srcTbl, tgtDoc, tgtSht, tgtTbl)
try
tell application "Numbers"
set t to documentsrcDoc'ssheetsrcSht'stablesrcTbl
set vv to t'srow'scells'svalue-- load values into list of lists
tell documenttgtDoc'ssheettgtSht'stabletgtTbl
-- to append instead of overwrite: remove first repeat loop and adjust the second loop to count from 1 instead of 2
repeat while row count > 2
remove last row
end repeat
repeat with r from 2 to count vv -- 2 skips header row
if r > 2 then add row below last row
tell last row to repeat with i from 1 to count vv's item r's items
set cell i's value to vv's item r's item i
end repeat
end repeat
end tell
end tell
on error
display dialog "Couldn't transfer data to '" & tgtDoc & "'. Check source and target names."
end try
end sendData
Hi SG,
Nice solution! I always admire the way that AppleScript can add to the power of Numbers.
Maybe another solution could be to use Numbers to create a "reusable" print sheet. Because we don't have details from the Original Poster on the design of the document, I have had to imagine what the document might contain. Here is an example.
List of clients in a table (astutely called 'Clients')
Client | Greet | Client # | Address |
Smith, J | John | 1 | 99 High St, Mytown |
Smith, F | Fred | 2 | 1 Low St, Anytown |
Jomes A | Albert | 3 | 33 Middle St, Thistown |
Jones, J | Jim | 4 | 49 Upper St, Thattown |
Input of transactions in another table called (you've guessed it) 'Input'.
Date | Client | Transaction | $ |
16 Sep 14 | Smith, J | Deposit paid | $500.00 |
1 Oct 14 | Smith, J | House plan fee | -$800.00 |
2 Oct 14 | Smith, J | 1st Payment | $100.00 |
5 Oct 14 | Jones, A | Site inspection fee | -$100.00 |
5 Oct 14 | Smith, J | 2nd payment | $200.00 |
6 Oct 14 | Smith, F | Hire of Bobcat | -$400.00 |
7 Oct 14 | Smith, F | Paid in Full | $400.00 |
Company Balance | -$100.00 |
For the purpose of this example, both of those tables are on the same sheet (tab).
New Sheet called 'Print Me' with a table called 'Report'. Here is a report to Smith, J using INDEX and MATCH as a versatile lookup function.
My cheat sheet for INDEX and MATCH:
=INDEX(Column I want a return value from,MATCH(My Lookup Value,Column I want to Lookup against,Enter “0″ ))
Client | Client # | Address |
Smith, J | 1 | 99 High St, Mytown |
Dear John, Here is your invoice. | ||
Balance= $-100 |
Enter a Client name into A2.
As a-check on anonymity, B2 will confirm the Client # with
=INDEX(Clients::C,MATCH($A2,Clients::$A,0))
As a double check on anonymity, C2 will confirm the address with
=INDEX(Clients::D,MATCH($A2,Clients::$A,0))
A3 contains the message starting with
= "Dear "&Clients::B2&",
Here is your invoice."
'Option enter' places a soft return (newline) after 'Dear John,'
A4 contains the balance
="Balance= $"&SUMIF(Input::B,A2,Input::D)
Save the document!
The quickest way I can think of to preserve the values ("fix" them so that they are independent of other sheets) is to follow quinn's suggestion of Menu > File > Print... > Print... > PDF > Save As PDF.
The 'Print Me' sheet is now available for another client. Enter another Client name into A2.
Regards,
Ian.
In case anyone thinks that I merged cells in the Report table, I didn't. Merging cells (IMHO) is a no-no.
All cells A1 to C4 remain. All I did was remove Cell Borders for a neater appearance.
Cells shown here:
Client | Client # | Address |
Smith, J | 1 | 99 High St, Mytown |
Dear John, Here is your invoice. | ||
Balance= $-100 |
Regards,
Ian.
Thank you SGIII and Yellowbox. I will attempt this apple script, although I must admit I have never attempted anything like that before. Again, thank you for the time and the effort in helping me find a solution.
How about duplicating your document, deleting the sheets you don't want to share, and then sharing the document?
SG
Is it possible to share only one tab of a spreadsheet?