Fonction singulier pluriel

david84

XLDnaute Barbatruc
Bonjour,
suite à ce fil, il m'est venu à l'idée de mettre au point un code susceptible :
- de déterminer si un mot est au singulier ou au pluriel
- si le mot est au singulier, d'afficher son pluriel (mouton=>moutons, oiseau=>oiseaux, cheval=>chevaux)
- si le mot est au pluriel, d'afficher son singulier (moutons=>mouton, oiseaux=>oiseau, chevaux=>cheval).
Avant de me lancer, et peut-être de m'apercevoir que cela est trop difficile (cas notamment des mots composés et j'en passe), je voulais simplement savoir si vous aviez dans vos archives un code de ce type, histoire de ne pas réinventer la roue.
Mes recherches sur le Net n'ont rien donné de probant, mais peut-être n'ai-je pas cherché correctement.
A+
 

david84

XLDnaute Barbatruc
Re : Fonction singulier pluriel

Bonjour klin89,
merci de t'intéresser à ce fil.
J'avais repéré cette discussion lors de mes recherches et cela peut effectivement être une idée à suivre dans le cadre de la gestion des exceptions.
J'ai également regardé le lien indiqué dans cette discussion ici et ai tenté de le tester mais comme ce n'est pas du VBA, j'ai quelques difficultés à adapter certaines parties du code.
J'ai cependant remarqué que la procédure utilisait des API Windows et je me dis qu'il y a peut-être des pistes à explorer de ce côté.
Ne connaissant pas ce type de fonctions, je vais regarder ce que je peux trouver à ce sujet.

@tous : si vous connaissez des API Windows (ou autre type de fonction) qui permettraient d'avoir une action sur le dictionnaire ou le correcteur d'orthographe par exemple, merci de m'en faire part.
Peut-être qu'au final cela ne me servira pas mais sait-on jamais : autant faire le tour des outils existants avant d'étudier la manière dont on peut aborder cette problématique.

Merci et A+
 

david84

XLDnaute Barbatruc
Re : Fonction singulier pluriel

Bonjour Hasco,
content de te lire:).
Oui, j'ai vu cela et je compte bien m'en servir pour traiter la partie "sémantique" de la procédure :
- en début de code avant traitement d'un mot pour savoir si ce mot existe (si je passe par du RegExp par exemple, ce dernier ne te renvoie une réponse que sur la forme et pas le sens du mot) :ex "aazea" devra renvoyer "mot inconnu"
- suite au traitement par la procédure pour savoir si la proposition envisagée existe.
Je compte notamment m'en servir pour le traitement des noms composés : quand le mot singulier comporte un tiret, 4 possibilités concernant son pluriel :
- les 2 "sous chaînes" sont au pluriel
- seule la 1ère "sous chaînes" est au pluriel
- seule la 2ème "sous chaînes" est au pluriel
- les 2 "sous chaînes" ne se mettent pas au pluriel (mot invariable)
Donc envisager les 4 possibilités et confronter celles-ci à une fonction jusqu'à ce que celle-ci me ramène VRAI.
ex de code, pour l'instant sans traitement par RegExp (ou autre possibilité), rien que pour voir si ce mot existe vraiment tel qu'il est écrit :
Code:
Sub test()
Dim strMot As String
strMot = "portes-manteaux"'si testé avec porte-manteaux, cela ramène "ok"
If MotExiste(strMot) = True Then MsgBox "ok" Else MsgBox "mot inconnu"
End Sub
Private Function MotExiste(ByVal strMot As String) As Boolean 'http://vb.developpez.com/faqvba/?page=3.1.2#CheckSpell
    MotExiste = Application.CheckSpelling(strMot, "PERSO.DIC", False)
End Function
Mais bon, ce n'est qu'une idée et pour l'instant je fais le tour des outils existants et qui pourraient me servir (ou pas) par la suite avant de voir la manière dont je pourrais aborder le problème.
Qu'en penses-tu ?
As-tu d'autres idées ?
Merci de me faire connaître ton avis (toujours précieux:eek:).
A+
 
G

Guest

Guest
Re : Fonction singulier pluriel

Re David,

ben comme je suis un peu bête, je ne sais trop quoi te dire.
Quelques soient les méthodes choisies, elles ne seront pas parfaites. Tu sais bien que pour le petit Robert certains mots existent qui ne sont pas dans le Larousse et lycée de Versailles. Quant à l'ortographe?! aïe...

Je viens de sortir mon BLED. Rien que pour le pluriel des noms propres, je ne saurais pas comment traduire cela en langage vb ou vba ou autre. Quel langage saura dire si un tel ou un tel est illustre ou pas, même en faisant une liste soit disant exhaustive.

A+++
 
Dernière modification par un modérateur:

david84

XLDnaute Barbatruc
Re : Fonction singulier pluriel

Re Hasco,
Quelques soient les méthodes choisies, elles ne seront pas parfaites. Tu sais bien que pour le petit Robert certains mots existent qui ne sont pas dans le Larousse et lycée de Versailles. Quant à l'ortographe?! aïe...
Bien sûr, ce ne sera pas parfait mais, en la matière, aucun outil ne l'est (même un dictionnaire comme tu l'as souligné).
Rien que pour le pluriel des noms propres, je ne saurais pas comment traduire cela en langage vb ou vba ou autre.
Ah pas question de traiter les noms propres ! Déjà si l'on peut traiter une bonne partie des noms communs, ce ne sera pas si mal.
Sinon, au niveau des API Windows, tu ne vois aucune fonction qui pourrait être utile ?
A+
 

zoumi

XLDnaute Nouveau
bonjour

VB:
dim en string

[CODE=vba]
c_v_c_s = "Cellule vide dans la colonne Société !" 'singulier
c_v_c_s_s = "Cellules vides dans la colonne Société !" 'pluriel

If cel_vit_cpt <= 1 Then USF_doub_vide.Label2_txt.Caption = cel_vit_cpt & " " & c_v_c_s
If cel_vit_cpt > 1 Then USF_doub_vide.Label2_txt.Caption = cel_vit_cpt & " " & c_v_c_s_s
ules vides dans la colonne Société !"

dans un usf

aussi on peut mettre

mavariable ( en string) = s

pluriel mavariable = s
singulier mavariable = ""

puis

Code:
'msgbox " Cellule"& s &" vide"& s &" dans la colonne Société !" ' au pluriel


'msgbox " Cellule vide dans la colonne Société !" ' au sing

mavariable ( en string) = s


pluriel mavariable = s

singulier mavariable = ""


puis


msgbox " Cellule"& s &" vide"& s &" dans la colonne Société !" ' au pluriel



msgbox " Cellule vide dans la colonne Société !" ' au sing


cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 103
Messages
2 085 312
Membres
102 860
dernier inscrit
fredo67