Ami Hasco... Quelque chose me dit que je vais encore devoir te dire Merci... Pff!
Sub Recherche()
'télécharger la macro complémentaire Morefunc de Laurent Longre
Dim txt$, plage1 As Range, col As Byte
Dim plage2 As Range, trouve As Range
Application.ScreenUpdating = False
txt = "eleve" 'texte recherché
Set plage1 = ActiveSheet.UsedRange
col = plage1.Columns.Count
plage1.Copy
plage1.Insert xlToRight
Set plage2 = plage1.Offset(, -col)
plage2.FormulaR1C1 = "=ANSI128(RC[" & col & "])"
Set trouve = plage2.Find(txt, LookIn:=xlValues, LookAt:=xlWhole)
If Not trouve Is Nothing Then Set trouve = trouve.Offset(, col)
plage2.Delete xlToLeft
Application.ScreenUpdating = True
If Not trouve Is Nothing Then _
MsgBox "'" & trouve & "' trouvé en " & trouve.Address(0, 0)
End Sub
Private Declare Function FoldString Lib "kernel32" Alias "FoldStringA" _
(ByVal dwMapFlags As Byte, ByVal lpSrcStr As Long, ByVal cchSrc As Long, _
ByVal lpDestStr As Long, ByVal cchdest As Long) As Long
Function SansAccent(Texte As String) As String
Dim I As Integer
SansAccent= Space(Len(Texte))
For I = 0 To Len(Texte) * 2 - 2 Step 2
FoldString &H40, StrPtr(Texte) + I, 1, StrPtr(SansAccent) + I, 1
Next I
End Function
' Définition de la conversion
Const accent As String = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÌÍÎÏìíîïÙÚÛÜùúûüÿÑñÇç"
Const noAccent As String = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeIIIIiiiiUUUUuuuuyNnCc"
' La fonction :
Private Function sansAccents(ByRef s As String) As String
Dim i As Integer
Dim lettre As String * 1
sansAccents = s
For i = 1 To Len(accent)
lettre = Mid$(accent, i, 1)
If InStr(sansAccents, lettre) > 0 Then
sansAccents = Replace(sansAccents, lettre, Mid$(noAccent, i, 1))
End If
Next i
End Function
"ANSI128" n'est-il pas la clé de la traduction des lettres sans accents?
Est-il ainsi simplement possible de traduire en colonne 2 les mots mis en colonne 1,
comme: "Landévant" en "Landevant" ou "Malmö en Malmo. Tout simplement.
Sub EntreANSI128()
'télécharger la macro complémentaire Morefunc de Laurent Longre
Dim plage As Range
Set plage = Range("B1:B" & Range("A65536").End(xlUp).Row)
plage.FormulaR1C1 = "=ANSI128(RC[-1])"
plage = plage.Value 'supprime les formules
End Sub