Excel 2007 VBA Convertir les Caractères Accentués à la Régulière
Quelqu'un peut-il m'aider à déterminer pourquoi ce code de Macro VBA n'est pas de travail dans Excel 2007? Je suis en train de remplacer les caractères accentués avec des caractères normaux. Le code compile sans problème mais lorsque j'essaie d'exécuter la macro, il n'apparaît pas dans la liste.
Option Explicit
'-- Add more chars to these 2 string as you want
'-- You may have problem with unicode chars that has code > 255
'-- such as some Vietnamese characters that are outside of ASCII code (0-255)
Const AccChars = "ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðñòóôõöùúûüýÿ"
Const RegChars = "SZszYAAAAAACEEEEIIIIDNOOOOOUUUUYaaaaaaceeeeiiiidnooooouuuuyy"
Sub StripAccent(aRange As Range)
'-- Usage: StripAccent Sheet1.Range("A1:C20")
Dim A As String * 1
Dim B As String * 1
Dim i As Integer
For i = 1 To Len(AccChars)
A = Mid(AccChars, i, 1)
B = Mid(RegChars, i, 1)
aRange.Replace What:=A, _
Replacement:=B, _
LookAt:=xlPart, _
MatchCase:=True
Next
End Sub
Je l'ai testé en 2007 et en 2010, et il fonctionne parfaitement. Qu'est-ce exactement ne fonctionne pas?
Je ne vois pas l'option pour exécuter la macro dans ma liste de macros. Le nom de la macro n'apparaît pas dans la liste pour le sélectionner. J'ai activé les macros et j'ai un tas d'autres j'utilise donc je ne comprends pas pourquoi il ne l'est pas.
Je ne vois pas l'option pour exécuter la macro dans ma liste de macros. Le nom de la macro n'apparaît pas dans la liste pour le sélectionner. J'ai activé les macros et j'ai un tas d'autres j'utilise donc je ne comprends pas pourquoi il ne l'est pas.
OriginalL'auteur BvilleBullet | 2012-04-05
Vous devez vous connecter pour publier un commentaire.
Veuillez voir le commentaire dans le code ci-dessus.
Vous avez de l'appeler comme cela
OriginalL'auteur Siddharth Rout
Pour ceux qui en ont besoin pour enlever les marques d'accent de TOUS les caractères Romains, y compris l'étendue, comme ceux utilisés en Vietnamien, puis suivez les instructions ci-dessous.
Tout d'abord, nous allons préparer la feuille de calcul à faire ses VBA de la magie. Dans le Microsoft éditeur VBA, sélectionnez Outils /Références et de mettre une coche à côté de "Microsoft Scripting Runtime". Nous en aurons besoin pour définir un objet dictionary dans les étapes ultérieures.
Ensuite, nous créons un mondial de dictionnaire dans le but de faire correspondre les caractères accentués à leurs équivalents non accentuées. Cela se fait lorsque le
Workbook_Open
événement est déclenché alors que le dictionnaire n'est lancé une fois que lorsque vous ouvrez la feuille de calcul au lieu de chaque fois que vous appelez la fonction.AsciiDict
est définie comme une variable publique dans l'étape 3. Dans le "Projet - VBAProject" panneau de configuration, double-cliquez sur ThisWorkbook pour ouvrir le classeur portée. Collez le code suivant y (ci-dessousOption Explicit
):StripDiacritics()
à normaliser le texte. Dans le "Projet - VBAProject" panneau de configuration, double-cliquez sur Modules /Module1 pour ouvrir la portée de module (si vous ne le voyez pas, alors vous devez les ajouter en cliquant-droit sur ThisWorkbook, puis sélectionnez Insertion /Module). Collez le code suivant y (ci-dessousOption Explicit
):Utilisation:
=StripDiacritics("Hermès Prêt à Porter")
Sorties", Hermes Pret a Porter"
=StripDiacritics("Việt Nam Textiles")
Sorties "Viet Nam Textiles"
Pour ceux qui sont curieux, l'ensemble de mappings peuvent être trouvés ici: https://goo.gl/Vvn9px. Le dictionnaire des touches correspondent à la colonne Décembre.
OriginalL'auteur thdoan
OriginalL'auteur notGeek
Vous dire la liste des macros dans la Boîte de Dialogue Macro ? Si oui, c'est parce que les paramètres de gamme, la Boîte de Dialogue Macro ne contient que la liste des procédures sans paramètres.
OriginalL'auteur xyzasdfasdf
Vous pouvez utiliser un userForm avec un refEdit et bouton de contrôle.
La routine à l'appel de la forme est quelque chose comme:
...et dans l'événement click du bouton:
En supposant que l'objet userForm est le nom de la dlg, le bouton cmdBtn et le contrôle refEdit refEditControl.
OriginalL'auteur xyzasdfasdf