Bonjour,

Dans une fonction Basic, je voudrais trouver et remplacer les caractères non alphabétiques par "".

J'ai donc utilisé la fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Function Replace(Source As String, Search As String, NewPart As String)
  Dim Result As String
  Dim StartPos As Long
  Dim CurrentPos As Long
 
  Result = ""
  StartPos = 1
  CurrentPos = 1
 
 
  If Search = "" Then
    Result = Source
  Else 
    Do While CurrentPos <> 0
      CurrentPos = InStr(StartPos, Source, Search)
      If CurrentPos <> 0 Then
        Result = Result + Mid(Source, StartPos, _
        CurrentPos - StartPos)
        Result = Result + NewPart
        StartPos = CurrentPos + Len(Search)
      Else
        Result = Result + Mid(Source, StartPos, Len(Source))
      End If                ' Position <> 0
    Loop 
  End If 
 
  Replace = Result
End Function
Je l'utilise dans la routine :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sub Test
ch=Replace("Lach-e/e-)","[^a-z]","")
end sub
D'après https://help.libreoffice.org/Common/...Expressions/fr et https://wiki.openoffice.org/wiki/FR/...es_dans_Writer, les caractères autres que [a-z] devraient être supprimés. Or, rien ne se produit. Ils ne sont pas détectés, et la chaîne est retournée sans modification.
Sous Excel, la négation ! est possible, mais, ici, elle ne donne rien non plus.

Merci de votre avis.