OVH Cloud OVH Cloud

Majuscules accentuées

4 réponses
Avatar
Gadget
Salut à tous.
Y a-t-il dans Excel ou VBA une fonction permettant de remplacer les
majuscules accentuées par leur version non-accentuée, par souci de
compatibilité ?
Merci de vos réponses.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!

4 réponses

Avatar
michdenis
Bonjour Gadget,

Cette procédure fait ce que tu demandes dans toutes les feuilles du classeur. à adapter au besoin

(il me manque l'auteur qui a adapté cette procédure de M. Daures !)

Version adaptée de la procédure de Laurent Daures
-----------------------------
Sub RemplacerLesMajusculesAccent()

Dim MaPlage As Range, A As Integer, Sh As Worksheet

Arr1 = Array("Å", "Ä", "Ã", "Â", "Á", "À", _
"Ë", "Ê", "É", "È", "Ï", "Î", "Í", "Ì", _
"Ö", "Õ", "Ô", "Ó", "Ò", _
"Ü", "Û", "Ú", "Ù", "Ñ", "Ý")

Arr2 = Array("A", "A", "A", "A", "A", "A", _
"E", "E", "E", "E", "I", "I", "I", "I", _
"O", "O", "O", "O", "O", _
"U", "U", "U", "U", "N", "Y")

For Each Sh In ThisWorkbook.Worksheets
Set MaPlage = Sh.UsedRange
For A = 0 To UBound(Arr1)
MaPlage.Replace Arr1(A), Arr2(A)
Next
Next

Set MaPlage = Nothing: Set Sh = Nothing

End Sub
'----------------------------------------------


Salutations!



"Gadget" a écrit dans le message de
news:40bda877$0$11458$
Salut à tous.
Y a-t-il dans Excel ou VBA une fonction permettant de remplacer les
majuscules accentuées par leur version non-accentuée, par souci de
compatibilité ?
Merci de vos réponses.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
Avatar
Gadget
Merci.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!
"michdenis" a écrit dans le message de
news:
Bonjour Gadget,

Cette procédure fait ce que tu demandes dans toutes les feuilles du
classeur. à adapter au besoin


(il me manque l'auteur qui a adapté cette procédure de M. Daures !)

Version adaptée de la procédure de Laurent Daures
-----------------------------
Sub RemplacerLesMajusculesAccent()

Dim MaPlage As Range, A As Integer, Sh As Worksheet

Arr1 = Array("Å", "Ä", "Ã", "Â", "Á", "À", _
"Ë", "Ê", "É", "È", "Ï", "Î", "Í", "Ì", _
"Ö", "Õ", "Ô", "Ó", "Ò", _
"Ü", "Û", "Ú", "Ù", "Ñ", "Ý")

Arr2 = Array("A", "A", "A", "A", "A", "A", _
"E", "E", "E", "E", "I", "I", "I", "I", _
"O", "O", "O", "O", "O", _
"U", "U", "U", "U", "N", "Y")

For Each Sh In ThisWorkbook.Worksheets
Set MaPlage = Sh.UsedRange
For A = 0 To UBound(Arr1)
MaPlage.Replace Arr1(A), Arr2(A)
Next
Next

Set MaPlage = Nothing: Set Sh = Nothing

End Sub
'----------------------------------------------


Salutations!



"Gadget" a écrit dans le message de
news:40bda877$0$11458$
Salut à tous.
Y a-t-il dans Excel ou VBA une fonction permettant de remplacer les
majuscules accentuées par leur version non-accentuée, par souci de
compatibilité ?
Merci de vos réponses.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!





Avatar
Michel Pierron
Bonjour Gadget;
Pour les ceusses qui veulent optimiser la mémoire (parceque Array = gourmand) ou
les ceusses qui n'ont pas la fonction Replace:

Sub ReplaceAccentuatedCharacters()
Application.ScreenUpdating = False
Dim Cel As Range, i As Byte, x As Byte, l As String * 1
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = False
For i = 1 To 9
.Pattern = Choose(i, "[àáâãäå]", "[èéêë]", "[ìíîï]" _
, "[òóôõö]", "[ùúûü]", "[ýÿ]", "[æ]", "[ç]", "[?]")
l = Choose(i, "a", "e", "i", "o", "u", "y", "a e", "c", "o e")
For x = 1 To 2
If x = 2 Then .Pattern = UCase(.Pattern): lr = UCase(lr)
For Each Cel In ActiveSheet.UsedRange
Cel = .Replace(Cel, l)
Next Cel
Next x
Next i
End With
End Sub

MP

"Gadget" a écrit dans le message de
news:40bda877$0$11458$
Salut à tous.
Y a-t-il dans Excel ou VBA une fonction permettant de remplacer les
majuscules accentuées par leur version non-accentuée, par souci de
compatibilité ?
Merci de vos réponses.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!




Avatar
Michel Pierron
Bien sur, dans la procédure, il faut lire e dans l'o pour "[?]" et If x = 2 Then
.Pattern = UCase(.Pattern): l = UCase(l); mais le lecteur aura rectifié de lui
même.
MP

"Michel Pierron" a écrit dans le message de
news:%
Bonjour Gadget;
Pour les ceusses qui veulent optimiser la mémoire (parceque Array = gourmand)
ou

les ceusses qui n'ont pas la fonction Replace:

Sub ReplaceAccentuatedCharacters()
Application.ScreenUpdating = False
Dim Cel As Range, i As Byte, x As Byte, l As String * 1
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = False
For i = 1 To 9
.Pattern = Choose(i, "[àáâãäå]", "[èéêë]", "[ìíîï]" _
, "[òóôõö]", "[ùúûü]", "[ýÿ]", "[æ]", "[ç]", "[?]")
l = Choose(i, "a", "e", "i", "o", "u", "y", "a e", "c", "o e")
For x = 1 To 2
If x = 2 Then .Pattern = UCase(.Pattern): lr = UCase(lr)
For Each Cel In ActiveSheet.UsedRange
Cel = .Replace(Cel, l)
Next Cel
Next x
Next i
End With
End Sub

MP

"Gadget" a écrit dans le message de
news:40bda877$0$11458$
Salut à tous.
Y a-t-il dans Excel ou VBA une fonction permettant de remplacer les
majuscules accentuées par leur version non-accentuée, par souci de
compatibilité ?
Merci de vos réponses.

--
--
Carpe Diem Quam Minimum Credula Postera
Bicose
Sic Transit Gloria Mundi, et
Arx Tarpeia Capitoli Proxima !!