Macro supprimer accents excel
Fermé
TOT127
thev
- Messages postés
- 898
- Date d'inscription
- mercredi 8 avril 2009
- Statut
- Membre
- Dernière intervention
- 7 août 2018
thev
- Messages postés
- 1770
- Date d'inscription
- lundi 7 avril 2008
- Statut
- Membre
- Dernière intervention
- 11 novembre 2021
A voir également:
- Excel supprimer les accents
- Excel enlever les accents - Meilleures réponses
- Excel supprimer accents - Meilleures réponses
- Supprimer accent excel - Forum - Excel
- Macro supprimer sous excel ✓ - Forum - Excel
- Supprimer les accents dans une colonne d'exel ✓ - Forum - Excel
- Supprimer accent excel formule - Forum - Excel
- Accents / Excel - Forum - Excel
2 réponses
thev
Modifié par thev le 13/06/2016 à 14:26
- Messages postés
- 1770
- Date d'inscription
- lundi 7 avril 2008
- Statut
- Membre
- Dernière intervention
- 11 novembre 2021
Modifié par thev le 13/06/2016 à 14:26
Bonjour,
En vous relisant, je pense que vous devez comprendre la différence entre une fonction et une macro.
Une macro est une procédure "Sub" qui s'exécute sur demande via un bouton ou via un événement intervenant sur le classeur.
La fonction est une procédure "Function" qui est
- soit entrée comme formule dans une cellule de la feuille d'un classeur et qui est exécutée à chaque recalcul de la feuille,
- soit utilisée dans une macro.
Si vous voulez une macro, il faut alors rajouter une procédure "Sub", qui vous permettra de supprimer tous les accents de la feuille active.
En vous relisant, je pense que vous devez comprendre la différence entre une fonction et une macro.
Une macro est une procédure "Sub" qui s'exécute sur demande via un bouton ou via un événement intervenant sur le classeur.
La fonction est une procédure "Function" qui est
- soit entrée comme formule dans une cellule de la feuille d'un classeur et qui est exécutée à chaque recalcul de la feuille,
- soit utilisée dans une macro.
Si vous voulez une macro, il faut alors rajouter une procédure "Sub", qui vous permettra de supprimer tous les accents de la feuille active.
Sub supp_accents_feuille()
Dim cellule As Range
For Each cellule In ActiveSheet.UsedRange.Cells
cellule.Value = SupprimerAccents(cellule.Value)
Next
End Sub
Function SupprimerAccents(ByVal sChaine As String) As String
Dim sTmp As String, i As Long
Dim traduction_accents()
Dim accents() As String
traduction_accents = Array("Á/A", "Â/A", "Ã/A", "Ä/A", "Å/A", "Ç/C", "È/E", "É/E", "Ê/E", "Ë/E", "Ì/I", "Í/I", "Î/I", "Ï/I", _
"Ñ/N", "Ò/O", "Ó/O", "Ô/O", "Õ/O", "Ö/O", "Ù/U", "Ú/U", "Û/U", "Ü/U", "Ý/Y", "à/a", "á/a", "â/a", _
"ã/a", "ä/a", "å/a", "ç/c", "è/e", "é/e", "ê/e", "ë/e", "ì/i", "í/i", "î/i", "ï/i", "ñ/n", "ò/o", _
"ó/o", "ô/o", "õ/o", "ö/o", "ù/u", "ú/u", "û/u", "ü/u", "ý/y", "ÿ/y")
sTmp = sChaine
For i = 0 To UBound(traduction_accents)
accents = Split(traduction_accents(i), "/")
sTmp = Replace(sTmp, accents(0), accents(1))
Next i
SupprimerAccents = sTmp
End Function
thev
13 juin 2016 à 00:30
- Messages postés
- 1770
- Date d'inscription
- lundi 7 avril 2008
- Statut
- Membre
- Dernière intervention
- 11 novembre 2021
13 juin 2016 à 00:30
Ceci sera mieux
Function SupprimerAccents(ByVal sChaine As String) As String
Dim sTmp As String, i As Long
Dim traduction_accents()
Dim accents() As String
traduction_accents = Array("Á/A", "Â/A", "Ã/A", "Ä/A", "Å/A", "Ç/C", "È/E", "É/E", "Ê/E", "Ë/E", "Ì/I", "Í/I", "Î/I", "Ï/I", _
"Ñ/N", "Ò/O", "Ó/O", "Ô/O", "Õ/O", "Ö/O", "Ù/U", "Ú/U", "Û/U", "Ü/U", "Ý/Y", "à/a", "á/a", "â/a", _
"ã/a", "ä/a", "å/a", "ç/c", "è/e", "é/e", "ê/e", "ë/e", "ì/i", "í/i", "î/i", "ï/i", "ñ/n", "ò/o", _
"ó/o", "ô/o", "õ/o", "ö/o", "ù/u", "ú/u", "û/u", "ü/u", "ý/y", "ÿ/y")
sTmp = sChaine
For i = 0 To UBound(traduction_accents)
accents = Split(traduction_accents(i), "/")
sTmp = Replace(sTmp, accents(0), accents(1))
Next i
SupprimerAccents = sTmp
End Function
TOT127
13 juin 2016 à 10:52
- Messages postés
- 898
- Date d'inscription
- mercredi 8 avril 2009
- Statut
- Membre
- Dernière intervention
- 7 août 2018
13 juin 2016 à 10:52
merci, je vais essayer. Il me dit juste: end sub attendu. Pourquoi ça? (mon livre sur VBA arrive demain, j'aurai moins de questions dès lors...)