Aide pour ajouter un test supplémentaire

TGO77

XLDnaute Nouveau
Macro VBA posant probleme

Bonjour,

j'ai une macro qui me permet en chargeant un dictionnaire en mémoire, de définir si un texte est écrit en anglais ou en français.
Le test donne vrai si français et faux si anglais.

j'aurai besoin de votre aide car je souhaiterai rajouter dans cette macro un test supplémentaire : si faux alors vérifier dans le texte "faux" la présence des mots bonjour et/ou merci et/ou cordialement.
Si au moins un des trois mots est présent alors faux devient vrai

merci pour votre aide

ci-dessous la macro :


Public Function CheckFrench(ByVal pTexte As String) As Boolean
Dim lTexte As String
Dim lTempWord As String
Dim i As Long
Dim lCountFrench As Long
Dim TabWord

On Error GoTo err_check

'Remplit le dictionnaire des mots francais
Call Fill_French_Dictionnary

lTexte = LCase(pTexte)
'Remplace par des espaces
lTexte = Replace(lTexte, ",", " ")
lTexte = Replace(lTexte, ".", " ")
lTexte = Replace(lTexte, "-", " ")
lTexte = Replace(lTexte, "_", " ")
lTexte = Replace(lTexte, "?", " ")
lTexte = Replace(lTexte, "!", " ")
lTexte = Replace(lTexte, "(", " ")
lTexte = Replace(lTexte, ")", " ")
lTexte = Replace(lTexte, ":", " ")
lTexte = Replace(lTexte, ";", " ")


'Enleve
lTexte = Replace(lTexte, "=", "")
lTexte = Replace(lTexte, "#", "")
lTexte = Replace(lTexte, "*", "")
lTexte = Replace(lTexte, "@", "")

'On enleve les chiffres
lTexte = Replace(lTexte, "0", "")
lTexte = Replace(lTexte, "1", "")
lTexte = Replace(lTexte, "2", "")
lTexte = Replace(lTexte, "3", "")
lTexte = Replace(lTexte, "4", "")
lTexte = Replace(lTexte, "5", "")
lTexte = Replace(lTexte, "6", "")
lTexte = Replace(lTexte, "7", "")
lTexte = Replace(lTexte, "8", "")
lTexte = Replace(lTexte, "9", "")
lTexte = Replace(lTexte, "/", "")
lTexte = Replace(lTexte, "\", "")

'Remplace les doubles/triples/quadriples espaces par des simples
lTexte = Replace(lTexte, " ", " ")
lTexte = Replace(lTexte, " ", " ")
lTexte = Replace(lTexte, " ", " ")


'On utilise les espaces comme separation entre les mots (creation du tableau des mots)
TabWord = Split(lTexte, " ")
'Boucle sur les mots
For i = 0 To UBound(TabWord)
If m_DictFrench.Exists(Replace(TabWord(i), " ", "")) = True Then
lCountFrench = lCountFrench + 1
End If
Next

If UBound(TabWord) <> 0 Then
'Degre de confiance de 0.4 (40% des mots trouve sont des mots francais)
If lCountFrench / UBound(TabWord) > 0.4 Then
CheckFrench = True
Else
CheckFrench = False
End If
End If

Exit Function
err_check:

End Function

Private Sub Fill_French_Dictionnary()
Dim MyWord As String

On Error GoTo err_dict

If Not m_DictFrench Is Nothing Then
Exit Sub
Else
Set m_DictFrench = New Scripting.Dictionary
'
'Open m_DictFrenchLocation For Input As #1 ' Open file for input.

'Do While Not EOF(1) ' Loop until end of file.
' Input #1, MyWord ' Read data into two variables.
' Debug.Print MyWord ' Print data to the Immediate window.
'Loop
'Close #1 ' Close file.

Dim oFSO As New FileSystemObject
Dim oFS

Set oFS = oFSO.OpenTextFile(m_DictFrenchLocation)

Do Until oFS.AtEndOfStream
MyWord = oFS.ReadLine
'Debug.Print MyWord
m_DictFrench.Add MyWord, ""
Loop
End If

Exit Sub
err_dict:
MsgBox "Erreur lors de la lecture/remplissage du dictionnaire francais"
End Sub
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
333
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom