Recently I had to create macro for some calculation in a spreadsheet. Macro worked fine on some computers, but it failed on other computer, which I don't hace full time access to. All of them had the same version of Windows and Excel.
After some analysis I recognised, that problem occured in following cases:
My computer accepted cell values as numeric, when their decimal
points where coma separeted, other didn't. All of them had dot as
decimal separator set in windows region settings.
My computer accepted cell values with spaces inside (f.e.: '2 134 432,32') as numeric, other didn't.
I ended up writing workarounds that handled those cases, BUT! I need to know where this problem come from and how to avoid them in future. DO you have any experience and can share it with me?
Related
I have a lot of simple formulas in named ranges that I reference in VBA.
For example one cell contains
=TEXT(TODAY(),"tt.MM.jjjj")
and outputs 17.11.2022
I stumbled upon the correct version through trial and error, and after failing with formulas like
=TEXT(TODAY(),"dd.mm.yyyy")
that for some reason produced 00.mm.yyyy as output.
What is even weirder I have a desktop (1) and a laptop (2) and a computer (3) where the sheet is supposed to run. The desktop and laptop have both English versions of Excel and the working computer has a German version. The first formula produces the correct output on machines 1 and 3, but not on 2. Total randomness.
Additionally I stumbled upon a weird bug in my VBA (English version).
Namely if you use
ConditionalFormatting AND =MOD(ROW()/2)
and port this file to a computer with german Excel you get an error.
For some reason, and only in ConditionalFormatting in VBA you have to use
=REST(ZEILE()/2)
if you want your code to work?
Who came up with such an unworkable, error-inducing, time sucking, nerve wrecking scheme?
Why can't one have universals like dd spit out 2-digit day of a month regardless of the language?
What is more important is there a way to make such sensible formulas free form EXCELS LOCAL QUIRKINESS?
I'm running into an issue.
I have created a excel sheet to aid in logging hours.
But excel uses a comma as a decimal separator, But the oracle system where it is pasted in uses a comma as thousands separator and a period as decimal separator.
The sheet needs to be idiot proof and has a set lay-out so oracle recognizes it properly.
So working with formula's isn't a real option.
Also changing de decimal separator in excel from comma to period will lead to problems in other applications.
This leaves me with conditional formatting (as far as I know)
I'm not familiar with macro's unfortunately, but it's never to late to learn.
For the sake of getting your help the protection in the first sheet is turned off:
Link to File
Hope you guys can help me out.
How it is
what it needs to become
I am using some VBA add-in to generate text from numbers, that text contains national Lithuanian, German or any other national symbols. This used to work fine with the previous versions of Excel so far, but the system has now been upgraded from scratch and it does not seem to work well with Excel 2019.
In VBA, the code looks fine and you can see the national symbols like "š" (well after setting the locale to Lithuanian, before they were appearing as multiple strange symbols):
, however when in excel the functional is called, the output has just � instead of any national symbol. All of the national symbols are marked with the same � sign in Excel 2019. But you can write manually national symbols just fine in Excel, just what comes out of VBA is garbage missing those symbols.
It looks like this in a cell:
Trys �imtai �, 00 ct
Does anybody know how to fix this and make them appear normal with how they are visible within the code?
A few other observations are that when copying and pasting the code from the VBA Editor to Notepad++ the national symbols get lost as well and they appear as different strange symbols. Also when trying to use the find function in the VBA Editor window to find anything with the national symbols - no results are ever found as long as you don't remove the national symbols...
In my understanding, support for "international" ("non-Latin") characters is determined by your Windows Regional Settings, not by Excel or by the VBA IDE.
Since I'm in Canada I can't easily test on my end to verify this, but interestingly, your example character of š displays the opposite of how it shows for you: it renders properly on the worksheet but as gibberish in VBA.
Incidentally I determined the Unicode id number for š (Unicode 353) by pasting the symbol into cell A1 and then in another cell using formula =UNICODE(A1). The opposite function (to return a character from it's code) is UNICHAR. The VBA equivalents are AscW and ChrW.
I was aware that the VBA IDE can be made to display "international" characters by adjusting Windows Regional Settings (like discussed here), but I didn't realize any setup would make them not render on the spreadsheet since for me, most Unicode characters display properly on a worksheet.
I assume the characters don't work for you in other applications besides Excel. If that's not the case, and this problem is specific to Excel (or if you can't otherwise get it figured out by adjusting Windows Regional Settings), then I'd suggest contacting Microsoft Tech Support.
More information is here or here or in this search might also be helpful.
hi i had same problem in latvian
just uncheck utf - 8 beta in regional language settings for non unicode
enter image description here
I have a problem with some code I have written in an English version of Excel 2011 for mac. When I open the workbook in Excel 2013 in Swedish certain Swedish letters in the code get converted to other characters, rendering the code useless. In other words, I have used special characters to define variables (I know, not good practice) and as conditionals (If x = 'Ombeställning' for example).
Is there an easy way to force the compiler to read my code as UTF-8? I'm on a tight deadline and I really don't feel like retracting all my variable declarations and subsequently changing my defined range names. If there is no other way, please tell me so I can get on changing the code.
Lastly, opening the workbook in Excel 2013 changed some of the row widths/heights, is this avoidable? I've spent a lot of time on formatting and it simply doesn't look professional when parts of the text are cut off etc.
EDIT: I forgot to mention I am opening 'Excel 2013 ' on a PC, which is probably the culprit regarding character encoding rather than the Excel version language.
I'm working on a report for my employer where the end product is a SSRS report, but one that will almost ALWAYS be exported to Excel for further manipulation. In this report, there is a row that is really just a row of calculations based on other cell values.
I've read that Reporting Services can "figure out" Excel formulas, and will generate and insert them where it can so long as your expressions for the cell's value do not contain database field references, only report item references.
Well, I've done this and I'm still not able to get the formulas to come through. I've tried rendering the report every way I could think of, and I've tried modifying the DeviceInfo parameters to include the OmitFormulas option set to False, and still I've come up empty. I've even tried creating a VERY simply table based report with hard-coded values, and even then I don't get formulas.
Here's a sample expression from my report:
=(ReportItems!Balance2.Value + ReportItems!Supply3.Value) - ReportItems!Demand3.Value
My environment is VS 2008 (fully patched/updated) running on SSRS 2008 (not fully patched). I've talked to the server admin, and he says it's running CU1 (I think, can't remember for sure). Our company's Excel is version 2007.
I'm really at my wits end here, so I'm hoping someone out there has dealt with this before and can give me an answer. Thanks!
I have also tried this, the problem here is that SSRS 2008 simply does not support this functionality. It is true that in earlier versions of SSRS it was somewhat supported (2005), however they took that out in the later versions... too bad..
see link:
http://social.msdn.microsoft.com/Forums/en/sqlreportingservices/thread/ddf2f19d-3f70-4bb0-a035-00709ffee2f9
I found a way to do it IF you know the cell addresses, though it's a bit of a hack. In your report, enter the cell formula as a string preceded by an apostrophe, the "this is text" escape character in Excel:
="'=A2+A3"
When you export into Excel the apostrophe will be invisible, but the formula appears as text:
=A2+A3
Now if you do a find/replace and remove the apostrophes (replace with nothing), the formulas will calculate correctly.
SSRS has quite a few limitations when it comes to Excel content. As you mentioned Excel Formulas or even charts for example are rendered as images instead of Excel Charts.
Seeing as you mentioned that you want a report that works in SSRS, but will always be exported to Excel you should really checkout OfficeWriter at http://www.officewriter.com/.
OfficeWriter can integrate with SSRS and will allow you to export a full fidelity Excel document. By that I mean you can have Excel Formulas, not the rendered SSRS formulas, or real Excel charts not the rendered image. These types of things won’t change if your data changes after the file have been rendered and opened by SSRS.
If the “further manipulation” happens by end users then this is great, they can change numbers and the formulas will recalculate and the charts will update.
If the “further manipulation” is programmatic, then you can use OfficeWriters API to continue to manipulate the document.
You may want to give it a look, I hate for you to be on your wits end.
DISCLAIMER: I am one of the developers on OfficeWriter.