Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
Jo Jo is offline
external usenet poster
 
Posts: 113
Default 2-byte characters: from VBA code to a worksheet; in MsgBox prompts

Hi,
If filling cells from VBA code with a string containing 2-byte characters
(Central European), the result is corrupted characters in worksheet cells.
eg.

sheet1.cells(1,1).value = "č1ť2ď3ň4ľ5" results in è12ï3ò4¾5 in a cell

Related topic is using 2-byte characters in MsgBox prompts. If controls are
drawn in the VBA editor this can be prevented by setting appropriate script,
however I do not know how to do it with "common" msgboxes defined in a
simpliest way eg.
msgbox "č1ť2ď3ň4ľ5" or with dynamic captions of controls which seem to
overwrite the default script of respective control's caption.

Storing strings somewhere in cells and copying the values from cells to
cells does work but I hope there is some smoother way how to solve it.
Moreover this way does not work with msgbox prompts resp. it converts all
characters into 1-byte characters (in given example c1t2d3n4l5)

Thanks in advance for help
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 133
Default 2-byte characters: from VBA code to a worksheet; in MsgBox prompts

Looks like a solution is in the thread "Korean script compatibility with Vba"
- might be worth searching this forum for that.

"jo" wrote:

Hi,
If filling cells from VBA code with a string containing 2-byte characters
(Central European), the result is corrupted characters in worksheet cells.
eg.

sheet1.cells(1,1).value = "č1ť2ď3ň4ľ5" results in è12ï3ò4¾5 in a cell

Related topic is using 2-byte characters in MsgBox prompts. If controls are
drawn in the VBA editor this can be prevented by setting appropriate script,
however I do not know how to do it with "common" msgboxes defined in a
simpliest way eg.
msgbox "č1ť2ď3ň4ľ5" or with dynamic captions of controls which seem to
overwrite the default script of respective control's caption.

Storing strings somewhere in cells and copying the values from cells to
cells does work but I hope there is some smoother way how to solve it.
Moreover this way does not work with msgbox prompts resp. it converts all
characters into 1-byte characters (in given example c1t2d3n4l5)

Thanks in advance for help

  #3   Report Post  
Posted to microsoft.public.excel.programming
Jo Jo is offline
external usenet poster
 
Posts: 113
Default 2-byte characters: from VBA code to a worksheet; in MsgBox pro

Thanks it really is, unfortunately I am not familiar with calling APIs. Tried
to find something about using APIs and downloaded the Win32API but feeling
lost in the topic...;-/
Found two "suspicious" APIs for solving MsgBox issue -
Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As
Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long)
As Long

and

Declare Function MessageBoxEx Lib "user32" Alias "MessageBoxExA" (ByVal hwnd
As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As
Long, ByVal wLanguageId As Long) As Long

but not aware of the way to pick the correct one and use it.
Concerning the passing strings from VBA code into cells I don't even know,
what I should look for in Win32API...;-(

Grateful for any shortcut to the solution.

"Smallweed" wrote:

Looks like a solution is in the thread "Korean script compatibility with Vba"
- might be worth searching this forum for that.

"jo" wrote:

Hi,
If filling cells from VBA code with a string containing 2-byte characters
(Central European), the result is corrupted characters in worksheet cells.
eg.

sheet1.cells(1,1).value = "č1ť2ď3ň4ľ5" results in è12ï3ò4¾5 in a cell

Related topic is using 2-byte characters in MsgBox prompts. If controls are
drawn in the VBA editor this can be prevented by setting appropriate script,
however I do not know how to do it with "common" msgboxes defined in a
simpliest way eg.
msgbox "č1ť2ď3ň4ľ5" or with dynamic captions of controls which seem to
overwrite the default script of respective control's caption.

Storing strings somewhere in cells and copying the values from cells to
cells does work but I hope there is some smoother way how to solve it.
Moreover this way does not work with msgbox prompts resp. it converts all
characters into 1-byte characters (in given example c1t2d3n4l5)

Thanks in advance for help

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Saving double-byte characters as unicode text in a CSV file Michael Bond Excel Discussion (Misc queries) 4 January 29th 09 10:01 PM
Control save prompts in VB code bobcat Excel Programming 2 July 28th 05 01:08 PM
VBA code to enter extended characters onto a worksheet Peter Rooney Excel Programming 5 January 21st 05 10:14 AM
MsgBox Spacing of Characters Chuckles123[_30_] Excel Programming 1 October 9th 04 10:29 PM
MsgBox Spacing of Characters Chuckles123[_28_] Excel Programming 1 October 8th 04 04:14 AM


All times are GMT +1. The time now is 06:38 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright 2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"