Table ranges do not work in multilingual configurations

G

Guest

Excel 2007 table ranges do not work in multilingual configurations. The
solution I am developing involves external data, however, I managed to
isolate the problem so that it can be reproduced in a few easy steps:

1- Create an empty workbook.
2- Compose a simple table, for example monthly sales.
[A1]: Month, [B1]: Sales
[A2]: Jan, [B2]: 10
[A3]: Feb, [B3]: 10
3- Select the whole table, click "format as a table".
4- Insert a pivot table to the same sheet, select the table you just created
as the data source, the reference should be Table1[#All].
5- Save the workbook, close Excel.
6- Change the UI to another language, reopen the workbook, try to refresh
the pivot table, you will get an error message.

The reason is that Table1[#All] works only on English systems. The keyword
#All is different for each language.

If you write a formula like SUM(A1:A9) on an English system, it
automatically becomes SOMME(A1:A9) on a French system, neither the developer
nor the user has anything special to do. One would expect the same behavior
for the keyword #All, however, that's not the case, it fails.

Am I missing something, or is it a bug?

Sincerely.
Elyo Ravuna
 
J

Jialiang Ge [MSFT]

Hello Elyo,

From your post, my understanding on this issue is: you wonder how to make a
pivot table compatible with all language versions of Office 2007. If I'm
off base, please feel free to let me know.

I reproduced the issue by following your steps. In Office 2007 with French
Language Pack, it would expect " [#Tout]" rather than " [#All]". As you
said, the difference of the keyword [#All] makes the error. I am now
consulting Excel Product team, to see if there is a method to make a pivot
table compatible with different Office Language Packs. I will get back to
you as soon as possible.

Actually, almost all the other Office application have similar strings that
change between languages. The overall recommendation would be to stay away
from these strings and use ID to access the objects. For example, in the
English version of Excel, you have Sheet1, Sheet2, etc. in German they are
named Tabelle1, Tabelle2, etc. If you use something like Sheets("Sheet1")
in combination with the German version, it will fail. But we could use
Sheets(1) to avoid the problem. I need to consult Excel product team to see
if there is a similar workaround for it in Pivot Table.

Sincerely,
Jialiang Ge ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
For MSDN subscribers whose posts are left unanswered, please check this
document: http://blogs.msdn.com/msdnts/pages/postingAlias.aspx

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express/Windows Mail, please make sure
you clear the check box "Tools/Options/Read: Get 300 headers at a time" to
see your reply promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
G

Guest

Dear Jialiang,

Thank you for your prompt response. You have understood the problem
correctly, however the analogy with Sheet1/Tabelle1 does not apply to my
case. The problem with the keyword #All is very special and unique.

When you create a workbook in the German version of Microsoft Office, the
default ID of the first sheet is "Tabelle1". You could as well choose an ID
manually, Tabelle1 is just a default value. Let's suppose you don't change
the default value: If you open the workbook in another UI language, you can
still refer to it as Sheets("Tabelle1"). Thus, there isn't any problem with
the keywords Tabelle1/Sheet1. To reproduce this behavior:

1- Create an Excel workbook in the German version of Microsoft Office.
2- Write the following code:

Private Sub Workbook_Open()
ThisWorkbook.Sheets("Tabelle1").Cells(1, 1) = "test"
End Sub

3- Close Excel, switch the UI to English, reopen the same workbook, the VBA
code will work flawlessly.

That's not the case with the keyword #All. You can think of "Table1[#All]"
as the ID of the table. Thus, it is as if the ID of the table changes when
the user switches the UI language.

I would be very glad if you could find a workaround for it in Pivot Tables.

Sincerely.
Elyo Ravuna

Jialiang Ge said:
Hello Elyo,

From your post, my understanding on this issue is: you wonder how to make a
pivot table compatible with all language versions of Office 2007. If I'm
off base, please feel free to let me know.

I reproduced the issue by following your steps. In Office 2007 with French
Language Pack, it would expect " [#Tout]" rather than " [#All]". As you
said, the difference of the keyword [#All] makes the error. I am now
consulting Excel Product team, to see if there is a method to make a pivot
table compatible with different Office Language Packs. I will get back to
you as soon as possible.

Actually, almost all the other Office application have similar strings that
change between languages. The overall recommendation would be to stay away
from these strings and use ID to access the objects. For example, in the
English version of Excel, you have Sheet1, Sheet2, etc. in German they are
named Tabelle1, Tabelle2, etc. If you use something like Sheets("Sheet1")
in combination with the German version, it will fail. But we could use
Sheets(1) to avoid the problem. I need to consult Excel product team to see
if there is a similar workaround for it in Pivot Table.

Sincerely,
Jialiang Ge ([email protected], remove 'online.')
Microsoft Online Community Support

==================================================
For MSDN subscribers whose posts are left unanswered, please check this
document: http://blogs.msdn.com/msdnts/pages/postingAlias.aspx

Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express/Windows Mail, please make sure
you clear the check box "Tools/Options/Read: Get 300 headers at a time" to
see your reply promptly.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 
J

Jialiang Ge [MSFT]

Hello Elyo,

Thank you for your patience. According to the response of Excel product
team, "=Table1" should be the same as "=Table1[#All]". Likewise to use an
entire column just =Table1[Column1] should be sufficient. This avoids using
keyword [#All] which should solve the problem. Here is my test steps:

1. Create an empty workbook.
2. Compose a simple table:
[A1]: Month, [B1]: Sales
[A2]: Jan, [B2]: 10
[A3]: Feb, [B3]: 10
3. Select the whole table, and format the table.
4. Insert a pivot table to the same sheet, select the table we just
created, the reference should be Table1[#All].
5. *change the reference as Table1*
6. Save the workbook, close Excel
7. Change the UI to French, reopen the workbook and refresh the pivot table.

Please try it on your side and let me know if it works. If you need further
assistance, feel free to let me know. I will be more than happy to be of
assistance.

Have a great day!

Sincerely,
Jialiang Ge ([email protected], remove 'online.')
Microsoft Online Community Support

=================================================
When responding to posts, please "Reply to Group" via your newsreader
so that others may learn and benefit from your issue.
=================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top