JugglerJAF
Active Member
- Joined
- Feb 17, 2002
- Messages
- 297
- Office Version
- 365
- Platform
- Windows
Does the PROPER function (or the VBA equivalent) work differently in different countries or does it always apply the same fixed logic of capitalising the first character of each word?
The reason I ask is that I'm based in the UK, but I work on data from UK, France and The Netherlands.
When processing data each month, one step in the process is to convert a number of columns to Proper Case. This is done either using the PROPER function (if there's not much data), or the following VBA:
This works fine on my English data, but the French and Dutch language have different rules for what is and isn't capitalised (for example, in Dutch, letters "Ij" are considered a single character and if they're the first two characters in a word, both should be capitalised). Similarly, in French, certain words beginning l' need to have the l (L) in lower case.
Using wither of these methods of converting to proper case results in what are technically gramattical errors in these other languages, just as having text like "tHis tExt cApitalised" would be wrong in English (NB: My code doesn't actually do that to text! That's just an example of how incorrect capitalisation in English would be incorrect IF applied in that manner. Just as reading that text in English appears incorrect to an English speaker, the conversions that I do perform on the French and Dutch data will appear incorrect to French or Dutch speakers).
If PROPER or VBA Code does work differently in different countries, is there any way of forcing a UK English setup to apply the Dutch or French capitalisation rules?
The reason I ask is that I'm based in the UK, but I work on data from UK, France and The Netherlands.
When processing data each month, one step in the process is to convert a number of columns to Proper Case. This is done either using the PROPER function (if there's not much data), or the following VBA:
Code:
For Each c In Selection
c.Value = StrConv(c.Value, vbProperCase)
Next c
This works fine on my English data, but the French and Dutch language have different rules for what is and isn't capitalised (for example, in Dutch, letters "Ij" are considered a single character and if they're the first two characters in a word, both should be capitalised). Similarly, in French, certain words beginning l' need to have the l (L) in lower case.
Using wither of these methods of converting to proper case results in what are technically gramattical errors in these other languages, just as having text like "tHis tExt cApitalised" would be wrong in English (NB: My code doesn't actually do that to text! That's just an example of how incorrect capitalisation in English would be incorrect IF applied in that manner. Just as reading that text in English appears incorrect to an English speaker, the conversions that I do perform on the French and Dutch data will appear incorrect to French or Dutch speakers).
If PROPER or VBA Code does work differently in different countries, is there any way of forcing a UK English setup to apply the Dutch or French capitalisation rules?