Export au format txt du dictionnaire de correction automatique (fichier .acl)
Le
bobj

Bonjour,
Connaissez vous une (ou plusieurs) méthode pour manipuler le
dictionnaire de correction automatique d'Excel.
Je souhaiterais obtenir un fichier texte/csv/excel avec toutes les
entrées de ce dictionnaire.
Exemple :
ACorriger;Correction
lse;les
Falange;Phalange
Merci pour vos lumières,
Cordialement,
Connaissez vous une (ou plusieurs) méthode pour manipuler le
dictionnaire de correction automatique d'Excel.
Je souhaiterais obtenir un fichier texte/csv/excel avec toutes les
entrées de ce dictionnaire.
Exemple :
ACorriger;Correction
lse;les
Falange;Phalange
Merci pour vos lumières,
Cordialement,
Je n'ai jamais fait cela!
Le fichier de correction automatique se retrouve habituellement dans ce répertoire :
C:UsersTon profilAppDataRoamingMicrosoftOffice
l'extension du fichier est ".acl"
Exemple : MSO1036.acl
Pour ouvrir ce type de fichier, tu devrais avoir besoin d'un éditeur de texte
Tu en as une liste ici :
https://www.clubic.com/telecharger/windows/editeur/tous-les-logiciels/
Je ne peux t'en dire plus puisque je n'ai jamais fait cela. J'espère que tu nous feras bénéficier de
ton expérience lorsque tu auras trouvé une solution.
MichD
"bobj" a écrit dans le message de groupe de discussion : 5b36a89f$0$15172$
Bonjour,
Connaissez vous une (ou plusieurs) méthode pour manipuler le
dictionnaire de correction automatique d'Excel.
Je souhaiterais obtenir un fichier texte/csv/excel avec toutes les
entrées de ce dictionnaire.
Exemple :
ACorriger;Correction
lse;les
Falange;Phalange
...
Merci pour vos lumières,
Cordialement,
https://multifarious.filkin.com/2013/05/31/autocorrect-for-everything/
MichD
https://multifarious.filkin.com/2013/05/31/autocorrect-for-everything/
MichD
au final, la procédure suivante permet d'extraire les différentes
valeurs du dictionnaire.
Cela pourra peut-être vous servir.
Sub extractAutoCorrectDico()
Dim Ligne As Long
Ligne = 1
liste = Application.AutoCorrect.ReplacementList
For x = 1 To UBound(Application.AutoCorrect.ReplacementList)
Cells(Ligne, 1) = liste(x, 1)
Cells(Ligne, 2) = liste(x, 2)
Ligne = Ligne + 1
Next x
End Sub
Le 30/06/2018 à 13:14, Michd a écrit :
MichD
pour gagner en vitesse d'exécution,
Sub Test()
Dim a(1 To 2, 1 To 65536)
liste = Application.AutoCorrect.ReplacementList
For i = 1 To UBound(liste)
a(1, i) = liste(i, 1)
a(2, i) = liste(i, 2)
Next i
Range("A1").Resize(UBound(a, 2), 2) = Application.Transpose(a)
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(x & ":65536").Delete Shift:=xlUp
'enregistrer le fichier pour réinitialiser la derniere cellule
End Sub
isabelle
Le 2018-07-02 à 14:26, bobj a écrit :
Peux-tu essayer de me faire comprendre cette ligne, svp?
< Dim a(1 To 2, 1 To 65536)
Déjà merci pour ta patience. -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
"isabelle" a écrit dans le message de groupe de discussion :
phf0br$15fd$
bonjour,
pour gagner en vitesse d'exécution,
Sub Test()
Dim a(1 To 2, 1 To 65536)
liste = Application.AutoCorrect.ReplacementList
For i = 1 To UBound(liste)
a(1, i) = liste(i, 1)
a(2, i) = liste(i, 2)
Next i
Range("A1").Resize(UBound(a, 2), 2) = Application.Transpose(a)
x = Cells(Rows.Count, 1).End(xlUp).Row + 1
Rows(x & ":65536").Delete Shift:=xlUp
'enregistrer le fichier pour réinitialiser la derniere cellule
End Sub
isabelle
Le 2018-07-02 à 14:26, bobj a écrit :
A est une variable de type "Tableau (array)". Ce tableau possède 2 dimensions. L'adresse d'une
cellule contient toujours une référence à une colonne et une ligne.
Dim A(1 to 2, 1 to 65536)
Dim (A colonnes, Lignes)
Comme Excel n'a pas une cellule portant une adresse du type : Cells(0,0), on définit habituellement
un tableau de base 1 au lieu d'un tableau de base 0.
Et pour faire plaisir à Isabelle qui recherche la vitesse, on peut écrire la procédure comme ceci :
'--------------------------------------------
Sub test1()
Dim Liste As Variant
Liste = Application.AutoCorrect.ReplacementList
With Worksheets("Feuil1")
.Range("A1").Resize(UBound(Liste), 2).Value = Liste
End With
End Sub
'--------------------------------------------
On peut même réduire la procédure à ceci :
'--------------------------------------------
Sub test21()
With Worksheets("Feuil1")
.Range("A1").Resize(UBound(Application.AutoCorrect.ReplacementList), 2).Value =
Application.AutoCorrect.ReplacementList
End With
End Sub
'--------------------------------------------
MichD
j'avais essayé
Liste = Application.AutoCorrect.ReplacementList
mais j'obtenais un message d'erreur,
j'ai réessayé aujourd'hui et tous fonctionne,
va savoir pourquoi :(
isabelle