Bonjour,
Je vous propose l’approche VBA ci-après. Je vous ai ajouté la fonction “=MASQUERMOT” qui a une chance de masquer chaque caractère. Le % de chance de masquage d’une lettre est un 2e argument, optionnel, compris entre 0 et 1 (1= masquage sur, 0 = aucun masquage). Par défaut je l’ai réglé sur 0.7 mais vous pouvez ajuster.
Public Function MASQUERMOT(mot As String, Optional ByVal masquage As Double = 0.7) As String
With WorksheetFunction
masquage = .Min(.Max(masquage, 0#), 1#)
End With
Dim i As Long, lettre As String
MASQUERMOT = mot
For i = 1 To Len(mot)
lettre = Mid(MASQUERMOT, i, 1)
If VBA.Rnd < masquage And lettre <> " " Then
mot = Left(mot, i - 1) & "_" & Right(mot, Len(mot) - i)
End If
Next i
MASQUERMOT = mot
End Function