[Résolu] Trouver toutes les cellules avec 3 mots

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

[Résolu] Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Bonjour à tous,

Je cherche une technique rapide pour chercher toutes les cellules avec 3 mots (soit 2 espaces) dans une colonnes.
J'ai essayé avec les expressions régulières (que je ne maitrise pas du tout) mais je ne trouve pas la bonne :?

Je vous explique dans quel cadre je veux faire cette recherche, vous auriez peut-être d'autres solutions plus simple à m'apporter.
Dans une colonne j'ai des noms et prénoms, je veux séparer les noms des prénoms en deux colones distinctes pour pouvoir ensuite les manipuler.
Le problème, c'est que mes colonnes n'ont aucun formalisme
En fonction de mes tableurs, les colonnes peuvent avoir des données de ce style
- Jean-Pierre DUPONT
- Jean marie LE Clerc
- Benoit legendre
- Octave LE-GUELLEC
- paul De Souza

La seule solution que j'ai trouvé, c'est de remplacer manuellement les espaces des prénoms et des noms composés par un - (tiret) et ensuite faire "texte en colonne" pour me servir de l'espace entre le nom et le prénom pour les séparer en deux colonnes.
Ca fonctionne bien mais quand j'ai une liste de 1000 Bretons (adeptes des noms composés en LE...) c'est très fastidieux.

Si déjà j'arrive à trouver toutes les cellules ayant 2 espaces ou plus cela me permettrait de faire ressortir tous les noms et prénoms composés. Ce n'est pas top mais mieux que de vérifier les cellules les unes derrières les autres.

Je me casse la tête sur ce problème mais je ne vois pas mieux comme solution.

Je vous remercie pour votre aide.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Trouver toutes les cellules avec 3 mots

Message par zeguedon »

Bonjour,

J'aborderais le problème autrement :
1) Copie de la colonne principale sur une feuille vierge
2) texte en colonne avec espace comme séparateur
3) dans une colonne à droite du résultat obtenu

Code : Tout sélectionner

=SI(NBVAL(A1:D1)=4;T(STYLE("Rouge"));"")
nécessite de créer un style nommé Rouge

De cette façon tu obtiens une cellule rouge à chaque fois qu'il y avait trois espaces. Ensuite (visuellement) tu repères si c'est le nom ou le prénom qui est composé.
En fonction tu mets 1 ou 2 dans une autre colonne à droite et tu utilises la fonction CONCATENER() pour reconstruire deux nouvelles colonnes nom et prénom. Genre :
En G1

Code : Tout sélectionner

=SI(F1=1;CONCATENER(A1;B1);A1)
En H1

Code : Tout sélectionner

=SI(F1=2;CONCATENER(C1;D1);B1)
Ça c'est pour trois espaces. Il faudra appliquer le même principe pour deux espaces.

A+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

OK merci pour ta réponse.

Ca n'a pas l'air simple et je ne suis pas sur d'avoir tout compris...
J'essaye de trouver un document pour faire des tests et je reviens faire un retour.

Merci encore
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Trouver toutes les cellules avec 3 mots

Message par zeguedon »

Bonjour,

Un petit exemple vite fait avec les informations de ton premier message. Il est possible qu'en fonction de tes données réelles il faille faire quelques adaptations.

Pour tester, il faut :
1) vider les colonnes A B C D
2) coller colonne A ta liste farfelue
3) texte en colonne sur la colonne A

Lorsqu'il y aura 3 mots, la colonne F se coloriera en rouge sur la même ligne. C'est là qu'il faut que tu interviennes.
Trois mots sous-entendent qu'il y a un nom composé parmi les trois. A toi de mettre 1 ou 2 dans la colonne jaune (1 si A et B constituent le nom composé -- 2 si c'est B et C qui le constituent)

Les colonnes I et J t'affichent automatiquement deux listes Noms et Prénoms ou l'inverse qu'il ne te reste plus qu'à copier/collage spécial=>>texte seulement.

Les formules sont présentes sur un trentaine de lignes à toi de les étirer vers le bas selon la quantité que tu as besoin.
 Ajout : Fichier remplacé pour y loger les explications 
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par zeguedon le 21 juin 2017 22:56, modifié 1 fois.
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: Trouver toutes les cellules avec 3 mots

Message par martinbrait »

Bonjour Rocky Rider,

Je te proposes une variante simpliste, faisant appel à deux fonctions personnalisées,
à utiliser dans le classeur proposé, en pièce jointe.
Il reste des coquilles lors de l'analyse des espaces. à perfectionner si tu veux.
séparer_noms.JPG
=recupprenoms(AddrCellule,1) -> retourne le prénom si celui-ci est initialement situé à gauche.
=recupprenoms(AddrCellule,2) -> retourne le prénom si celui-ci est initialement situé à droite.

Code : Tout sélectionner

'====================================================================================
'paramètres : 
'en deuxième argument optionel, le prénom est déclaré par l'utilisateur en position 1 ou en position 2
'position 1 est la position par défaut
'auteur : martinbrait
'====================================================================================

Function RecupPrenoms(arg As Variant,Optional PosPrenom As Integer) As String
'Dim varg As Variant
Dim NewPos As Integer
Dim i As Integer
Dim vPrenoms As Variant
Dim iMiniBound As Integer
Dim iMaxiBound As Integer
Dim sTemp As String
Dim sPrenoms As String


'Msgbox "test1" & TypeName(arg)

If IsMissing (PosPrenom) Then
PosPrenom = 1
End If


If Len(arg)>0 Then


	'amélioration du prénom arrivant :
	arg = Trim(arg)
	If Left(arg,1)="-" Then
	arg = Right(arg,Len(arg)-1)
	End If
	arg = Trim(arg)



	
	If PosPrenom = 1 Then
	NewPos = Instr(1,arg," ")
	arg = Left(arg,NewPos)
	
	ElseIF PosPrenom = 2 Then
	NewPos = Instr(1,arg," ")
	arg = Right(arg,Len(arg)-NewPos)
	RecupPrenoms = arg
	End If
	
	
	If Instr(1,arg,"-")>0 Then
	arg = split(arg,"-")
	ElseIf Instr(1,arg," ")>0 Then
	arg = split(arg," ")
	End If	
	

	
Else
	sPrenoms = ""
End If
	


' on retraite tout le monde à condition qu'ils soient des variant

If TypeName(arg)="Variant()" Then
'Msgbox "test3" & TypeName(arg)
	
	If  UBound(arg)>0  Then

		iMiniBound = LBound(arg)
		iMaxiBound = UBound(arg)
		
		
		'MsgBox iMiniBound
		'MsgBox iMaxiBound
		
		'vidage
		sPrenoms = ""			
		
		For i = iMiniBound To iMaxiBound
			sTemp = UCase(arg(i))
			
			If iMaxiBound > iMiniBound Then
				If Len(sTemp)>0 Then
					If Len(sPrenoms)= 0 Then
					sPrenoms= Left(sTemp,1) & LCase(Right(sTemp,Len(sTemp)-1))
					Else
					sPrenoms= sPrenoms & "-" & Left(sTemp,1) & LCase(Right(sTemp,Len(sTemp)-1))
					End If
				End If
			EndIf
			
			'on récupère le prénom, en l'état, en fin de boucle
			If i = iMaxiBound Then
					RecupPrenoms = sPrenoms
			End If
		Next
		
	Else
	RecupPrenoms = ""
	End If
	
End If	


End Function
=recupnoms(AddrCellule1,AddrCellule2) -> retourne le nom,
AddrCellule1 fait référence au nom_prenom concaténé d'origine
AddrCellule2 fait référence au contenu de la cellule du prénom, que tu as préalablement extirpé grace à la fonction =recupprenoms(AddrCellule,1)

Code : Tout sélectionner

Function RecupNoms(arg1 as String,arg2 As String)
'amélioration du prénom arrivant :
Dim strNoms As String
strNoms = Replace(arg2,arg1," ")
strNoms = Replace(strNoms," ","")
If Left(strNoms,1)="-" Then
strNoms = Right(strNoms,Len(strNoms)-1)
End If
strNoms = UCase(strNoms)
RecupNoms = strNoms
End Function

Bon amusement !
@+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Trouver toutes les cellules avec 3 mots

Message par zeguedon »

Désolé mon cher martinbrait mais ta solution c'est presque du n'importe quoi.

1) rien ne met en évidence les cas ou il y a trois mots
Rocky Rider a écrit :Je cherche une technique rapide pour chercher toutes les cellules avec 3 mots (soit 2 espaces) dans une colonnes.[...]je veux séparer les noms des prénoms en deux colones distinctes pour pouvoir ensuite les manipuler.
2)avec ta solution il faut définir manuellement pour chaque cellule si le prénom est à gauche ce qui revient à passer en revue une à une toutes les cellules
Rocky Rider a écrit :mais quand j'ai une liste de 1000 Bretons (adeptes des noms composés en LE...) c'est très fastidieux.
3) et le résultat n'est pas vraiment probant
Jean MARIELECLERC au lieu de Jean Marie LECLERC
De-Souza PAULDESOUZA au lieu de Paul De-Souza
Erreur.png
Avant de proposer une réponse qui ne tient pas la route regarde ce qui a été proposé avant. Non ?
RR.png
:twisted:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Bonjour,

Pour les noms d'origine française, et pour une bonne part des autres, les noms de familles sont composés lorsqu'ils commencent par une particule : "Le Gendre", "Du Bellay", etc.
Ces particules sont peu nombreuses. En faisant une recherche sur celles-ci, il est probable que 90 % du travail puisse être aisément automatisé. Pour les autres cas, il resterait le repérage visuel sur base d'un formatage conditionnel :
RockyRider.png
Je joins un exemple pour illustrer le tout.
Cordialement.

PS. Pour que cela fonctionne, il faut s'assurer que l'option "Autoriser les caractères génériques dans les fonctions" soit coché dans Outils -> Options -> OpenOffice Calc -> Calculer.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

C'est bon j'ai une liste de 300 noms sur laquelle travailler.
zeguedon a écrit : 3) dans une colonne à droite du résultat obtenu

Code : Tout sélectionner

=SI(NBVAL(A1:D1)=4;T(STYLE("Rouge"));"")
nécessite de créer un style nommé Rouge
Le problème c'est que je suis bloqué à cette étape.
SI je créais un style dans "Format style et formatage" il ne se passe rien. Je ne comprends pas du tout ce que je suis sensé faire et où insérer ce code.
Désolé mais je suis un peu un débutant sur OpenOffice et je n'ai rien trouvé sur le net qui m'explique la marche à suivre.

Merci encore pour votre aide.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
zeguedon
ManitOOu
ManitOOu
Messages : 3031
Inscription : 02 juil. 2014 17:25

Re: Trouver toutes les cellules avec 3 mots

Message par zeguedon »

Bonjour,

Si le fichier proposé par Hubert Lambert ne te convient pas, pourtant mieux aboutit que le mien, télécharge le fichier joint à ma réponse du 13 Juin 2017 23:52 je t'ai créé un exemple à partir des données que tu fournis dans ton premier message.

A+
Comment baliser [Résolu] ?
AOO
LibreOffice
Sous Linux
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

zeguedon a écrit :Bonjour,

Si le fichier proposé par Hubert Lambert ne te convient pas, pourtant mieux aboutit que le mien, télécharge le fichier joint à ma réponse du 13 Juin 2017 23:52 je t'ai créé un exemple à partir des données que tu fournis dans ton premier message.

A+
Désolé, j'ai voulu être discipliné et suivre les conseils message après message...
J'ai donc essayé le fichier mais pas de chance ma liste est au format NOM Prénom donc la séparation avec la particule ne fonctionne pas puisqu'elle est alors associé au prénom ou au nom.
Je ne sais pas quoi changer dans le fichier que vous m'avez envoyé pour le rendre compatible avec une liste Nom-Prénom.

Je vous remercie pour votre aide.

Si vous voulez faire des tests je vous mets ma liste en pièce jointe.
liste Nom - Prenom.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Voici le fichier adapté.
Les résultats en rouge sont ceux qui nécessiteront un traitement manuel. En l'occurrence, ce sont chaque fois des entrées dont le prénom est répété... et malheureusement pas toujours avec une orthographe cohérente pour les identifier.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

OK merci c'est top. Ca à l'air de très bien fonctionner.
J'attends d'avoir une nouvelle liste pour faire de nouveaux tests.

Petite question : Les résultats en rouge sont ceux qui nécessitent un traitement manuel ont été surligné manuellement par toi ?
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Rocky Rider a écrit :Petite question : Les résultats en rouge sont ceux qui nécessitent un traitement manuel ont été surligné manuellement par toi ?
Oui.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

J'ai donc refait des tests avec une liste de 1014 noms.
Ton fichier semble bien fonctionner. Merci beaucoup.

Par contre j'ai des erreurs :
- ligne 66
- ligne 147
- ligne 228
- ligne 586
- ligne 704
- ligne 916
- ligne 990

J'ai essayé de regardé d'où ça pouvait venir mais je n'ai rien vu...je ne vois pas pourquoi ces lignes boguent et pas les autres...
Si jamais tu trouves l'origine du problème, tu arriverais à le corriger sur le fichier NOM-PRENOM et la liste PRENOM-NOM ?

Ce n'est pas grand chose mais moins j'aurais de ligne à corriger manuellement, plus je pourrais travailler sur des longues listes.

Merci encore pour tout.

Mon nouveau fichier test :
Noms prénoms deauville.ods
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Il y a deux petites corrections à faire :
- en cellule A2, remplace les particules comme ceci, pour s'assurer que la formule les cherche uniquement en début de phrase :

Code : Tout sélectionner

^le |^la |^de |^du |^les |^des |^dalla
- remplace la formule en colonne B comme ceci :

Code : Tout sélectionner

=SI(ESTERR(CHERCHE($A$2;A5));CHERCHE(" ";A5);CHERCHE(" ";A5;CHERCHE(" ";A5)+1))
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Ok je teste ça. Merci beaucoup.
Il y aurait une technique pour que toutes les lignes avec des noms ou prénoms composés soient surlignées en rouge pour que je puisse faire un control manuel ?
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Dans mon fichier du 22 juin, il y a une mise en forme conditionnelle pour les noms contenant au moins deux espaces (fond jaune) et un test pour vérifier la répétition du prénom (colonnes E et F).
Au-delà il faudra faire à la main je pense...
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Hubert Lambert a écrit :Dans mon fichier du 22 juin, il y a une mise en forme conditionnelle pour les noms contenant au moins deux espaces (fond jaune) et un test pour vérifier la répétition du prénom (colonnes E et F).
Au-delà il faudra faire à la main je pense...
En effet, cela fonctionne bien dans la liste du 22 juin.
Mais si je supprime le contenue de la colonne A pour y coller une nouvelle liste de nom/prénom alors le reste du tableau fonctionne mais les lignes avec les noms composés restent incolore. Quelle opération j'ai raté ?
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Jeff
GourOOu
GourOOu
Messages : 9944
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Trouver toutes les cellules avec 3 mots

Message par Jeff »

Bonjour,
Rocky Rider a écrit :si je supprime le contenue de la colonne A pour y coller une nouvelle liste de nom/prénom [...] les lignes avec les noms composés restent incolore
Je ne reproduis pas...

Sélectionner la colonne de nom, appui sur la touche Retour Arrière (au-dessus de la touche Entrée), la liste s’efface et le formatage conditionnel est conservé.

En revanche, si tu utilises la touche Suppr (ou bien clic-droit > Supprimer du contenu), et que la case à cocher Format du dialogue qui s’affiche est cochée, tu perds le formatage conditionnel.

Donc, il faudrait détailler ta méthode de suppression :wink:
 Ajout : 
Rocky Rider a écrit :pour y coller une nouvelle liste de nom/prénom
Le collage écrase également le formatage conditionnel, préférer le collage spécial (Ctrl+Maj+V) en ayant décoché Format dans le dialogue du collage spécial

  
A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.15 / Debian 12.10 "bookworm" / Xfce
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: Trouver toutes les cellules avec 3 mots

Message par martinbrait »

Bonjour Rocky Rider, bonjour à tous,

Ne m'avouant pas vaincu, je vous propose une version 2
construite sur une base de 2322 prénoms.

Alors, n'hésitez pas à y jeter un œil et améliorer tout ça !

Code : Tout sélectionner


REM  *****  BASIC  *****
'========================================
'Auteur : Martinbrait
'EXTRAIRE LE NOM EN FONCTION D'UN PRENOM,
'DANS UNE CHAINE DE CARACTERES

'On commence par identifier le prénom d'une chaine de caractères,
'via la fonction RECUPPRENOM()

'On en déduit le nom, comme la partie restante de la chaine de caractères,
'ayant fait l'objet d'une extraction.

'Pour les cas des atomes de doubles prénoms sans autre précision,
'l'application positionne le prénom à gauche, sauf cas contraire,
'précisé par l'utilisateur, par l'ajout du paramètre 2
' RecupPrenom("Jacques Martin") -> Jacques
' RecupPrenom("Jacques Martin";2) -> Martin

'=======================================


'auteur : martinbrait

Function RecupPrenoms(arg As Variant,Optional PosPrenom As Integer) As String
'Dim varg As Variant
Dim NewPos As Integer
Dim i As Integer
Dim vPrenoms As Variant
Dim iMiniBound As Integer
Dim iMaxiBound As Integer
Dim sTemp As String
Dim sPrenoms As String


'Msgbox "test1" & TypeName(arg)

If IsMissing (PosPrenom) Then
PosPrenom = 1
End If


If Len(arg)>0 Then


	'amélioration du prénom arrivant :
	arg = Trim(arg)
	If Left(arg,1)="-" Then
	arg = Right(arg,Len(arg)-1)
	End If
	arg = Trim(arg)



	
	If PosPrenom = 1 Then
	NewPos = Instr(1,arg," ")
	arg = Left(arg,NewPos)
	
	ElseIF PosPrenom = 2 Then
	NewPos = Instr(1,arg," ")
	arg = Right(arg,Len(arg)-NewPos)
	RecupPrenoms = arg
	End If
	
	
	If Instr(1,arg,"-")>0 Then
	arg = split(arg,"-")
	ElseIf Instr(1,arg," ")>0 Then
	arg = split(arg," ")
	End If	
	
	
Else
	sPrenoms = ""
End If
	


' on retraite tout le monde à condition qu'ils soient des variant

If TypeName(arg)="Variant()" Then
'Msgbox "test3" & TypeName(arg)
	
	If  UBound(arg)>0  Then

		iMiniBound = LBound(arg)
		iMaxiBound = UBound(arg)
		
		'MsgBox iMiniBound
		'MsgBox iMaxiBound
		
		'vidage
		sPrenoms = ""			
		
		For i = iMiniBound To iMaxiBound
			sTemp = UCase(arg(i))
			
			If iMaxiBound > iMiniBound Then
				If Len(sTemp)>0 Then
					If Len(sPrenoms)= 0 Then
					sPrenoms= Left(sTemp,1) & LCase(Right(sTemp,Len(sTemp)-1))
					Else
					sPrenoms= sPrenoms & "-" & Left(sTemp,1) & LCase(Right(sTemp,Len(sTemp)-1))
					End If
				End If
			EndIf
			
			'on récupère le prénom, en l'état, en fin de boucle
			If i = iMaxiBound Then
					RecupPrenoms = sPrenoms
			End If
		Next
		
	Else
	RecupPrenoms = ""
	End If
	
End If	


End Function


Sub TestPrenom()
atometest = "Alexandre Honoré Ernest COQUELIN"
Msgbox  TrameDuPatronyme(atometest)
MsgBox RecupPrenom(atometest)
atometest = "André Antoine"
Msgbox  TrameDuPatronyme(atometest)
MsgBox RecupPrenom(atometest)

End Sub



Function RecupPrenom(atome As String,Optional PositPrenom As Integer)
Dim PosSpace As Integer
Dim strTemp As String

'nettoyage de l'atome entrant
atome = Trim(atome)
If Left(atome,1)="-" Then
atome = Right(atome,Len(atome)-1)
End IF
atome = Trim(atome)


'Pour les prénoms-noms indifférenciés, on présuppose une position du prénom par défaut = 1 (sauf cas contraire)
If IsMissing(PositPrenom) Then
PositPrenom = 1
End If

If PositPrenom > 2 Then
'pas de position de prénom supérieure à 2,
'on rentourne à une position par défaut 1 du prénom
PositPrenom = 1
End If


If Instr(1,atome,"-")>0 Then
atome = Replace(atome,"-"," ")
End If

If Instr(1,atome," ")>0 Then

Select Case TrameDuPatronyme(atome)
	Case "10"
		strTemp = Left(atome,Instr(1,atome," "))
	Case "11"
		'ne sachant différencier le prénom du nom de famille,
		'on va se fier au positionnement prénom suivi du nom de famille, par défaut.
		'sauf cas contraire spécifié dans l'option de positionnement.
		If PositPrenom = 1 Then
		strTemp = Left(atome,Instr(1,atome," "))
		ElseIf PositPrenom = 2 Then
		PosSpace = Instr(1,atome," ")
		strTemp = Right(atome,Len(atome)-PosSpace)		
		End IF
			
	Case "100"
		strTemp = Left(atome,Instr(1,atome," "))
	Case "110"
		PosSpace = Instr(1,atome," ")
		strTemp = Left(atome,Instr(PosSpace+1,atome," ")
	Case "111"
		strTemp = ""
	Case "0"
		strTemp = ""			
	Case "00"
		strTemp = ""		
	Case "01"
		PosSpace = Instr(1,atome," ")
		strTemp = Right(atome,Len(atome)-PosSpace)		
	Case "000"
		strTemp = ""
	Case "010"
		strTemp = ""
	Case "011"
		PosSpace = Instr(1,atome," ")
		strTemp = Right(atome,Len(atome)-PosSpace)
		strTemp = Replace(strTemp," ","-")
	Case "1100"		
		PosSpace = Instr(1,atome," ")
		strTemp = Left(atome,Instr(PosSpace+1,atome," ")	
	Case "1110"		
		PosSpace = Instr(1,atome," ")
		PosSpace = Instr(PosSpace+1,atome," ")
		strTemp = Left(atome,Instr(PosSpace+1,atome," ")				
	Case Else
		strTemp = ""
End Select

If Len(strTemp)>0 Then
RecupPrenom = Trim(MiseEnMajuscule5(strTemp))
Else
RecupPrenom = "" 'comble les atomes aux doubles prénoms SAP
End If

Else
'pas d'espacement, position du prénom impossible à identifier
RecupPrenom =""
End If

End Function





Function TrameDuPatronyme(atome As String)
Dim vAtome As Variant
Dim i As Integer
Dim strTemp As String

If Instr(1,atome,"-")>0 Then
atome = Replace(atome,"-"," ")
End If

strTemp ="" 'initialisation

If Instr(Atome," ")>0 Then
vAtome = split(atome," ")
For i = LBound(vAtome) To UBound(vAtome)
	If EstUnPrenom(vAtome(i))>0 Then
		If  Len(vAtome(i))>2 Then
			strTemp = strTemp & 1
		End If
	Else
	strTemp = strTemp & 0
	End If 
Next
End If
TrameDuPatronyme = strTemp
End Function




Function EstUnPrenom(ByRef lePatronyme As String)
Dim strTemp As String
strTemp=Left(UCase(lePatronyme),1)

Select Case strTemp

    Case "A"
    EstUnPrenom=EstUnPrenomA(lePatronyme )
    Case "B"
    EstUnPrenom=EstUnPrenomB(lePatronyme )
    Case "C"
    EstUnPrenom=EstUnPrenomC(lePatronyme )
    Case "D"
    EstUnPrenom=EstUnPrenomD(lePatronyme )
    Case "E"
    EstUnPrenom=EstUnPrenomE(lePatronyme )
    Case "F"
    EstUnPrenom=EstUnPrenomF(lePatronyme )
    Case "G"
    EstUnPrenom=EstUnPrenomG(lePatronyme )
    Case "H"
    EstUnPrenom=EstUnPrenomH(lePatronyme )
    Case "I"
    EstUnPrenom=EstUnPrenomI(lePatronyme )
    Case "J"
    EstUnPrenom=EstUnPrenomJ(lePatronyme )
    Case "K"
    EstUnPrenom=EstUnPrenomK(lePatronyme )
    Case "L"
    EstUnPrenom=EstUnPrenomL(lePatronyme )
    Case "M"
    EstUnPrenom=EstUnPrenomM(lePatronyme )
    Case "N"
    EstUnPrenom=EstUnPrenomN(lePatronyme )
    Case "O"
    EstUnPrenom=EstUnPrenomO(lePatronyme )
    Case "P"
    EstUnPrenom=EstUnPrenomP(lePatronyme )
    Case "Q"
    EstUnPrenom=EstUnPrenomQ(lePatronyme )
    Case "R"
    EstUnPrenom=EstUnPrenomR(lePatronyme )
    Case "S"
    EstUnPrenom=EstUnPrenomS(lePatronyme )
    Case "T"
    EstUnPrenom=EstUnPrenomT(lePatronyme )
    Case "U"
    EstUnPrenom=EstUnPrenomU(lePatronyme )
    Case "V"
    EstUnPrenom=EstUnPrenomV(lePatronyme )
    Case "W"
    EstUnPrenom=EstUnPrenomW(lePatronyme )
    Case "X"
    EstUnPrenom=EstUnPrenomX(lePatronyme )
    Case "Y"
    EstUnPrenom=EstUnPrenomY(lePatronyme )
    Case "Z"
    EstUnPrenom=EstUnPrenomZ(lePatronyme )

End Select

End Function 



Function EstUnPrenomA(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Aaron;Abdallah;Abdel;Abdelkader;Abel;Abigaelle;Abigail;Abishan;Aboubacar;Aboubakar;Abraham;Absolon;Aby;Achille;Achraf;Ada;Adam;Adama;Adame;Adel;Adelaide;Adele;Adelie;Adeline;Adem;Aden;Adib;Adil;Adja;Adnane;Adolphe;Adrian;Adriana;Adriano;Adriel;Adrien;Adrienne;Aedan;Agathe;Aglae;Agnes;Aharon;Ahmad;Ahmed;Aicha;Aidan;Aiden;Aime;Aimee;Aissatou;Akram;Aksel;Aksil;Alaa;Alain;Alais;Alan;Alana;Alassane;Alba;Alban;Albane;Albert;Albertine;Albin;Aldo;Alec;Aleksandar;Aleksandra;Alessandro;Alessia;Alessio;Alex;Alexander;Alexandra;Alexandre;Alexandrie;Alexane;Alexi;Alexia;Alexis;Alexy;Alfred;Alhassane;Ali;Alia;Alice;Alicia;Alienor;Alima;Alina;Aline;Aliou;Alisha;Alison;Alissa;Alistair;Alix;Alixe;Aliya;Aliyah;Alizee;Allan;Allegra;Allya;Alma;Alois;Alon;Alone;Aloys;Alpha;Alphonse;Alphonsine;Alwena;Aly;Alya;Alyah;Alycia;Alyssa;Alyssia;Alysson;Amadou;Amael;Amaia;Amalia;Amanda;Amandine;Amani;Amar;Amara;Amarante;Amaury;Amaya;Ambre;Ambrine;Ambroise;Amedee;Amel;Amelia;Amelie;Amicie;Amin;Amina;Aminata;Amine;Amir;Amira;Amjad;Amos;Amy;Ana;Anabelle;Anae;Anael;Anaelle;Anais;Anas;Anass;Anastasia;Anastasie;Anatole;Anaya;Andre;Andrea;Andreas;Andree;Andrei;Andrew;Andy;Anes;Ange;Angel;Angela;Angele;Angelina;Anouk;Angeline;Angelique;Angelo;Angie;Ania;Anis;Anissa;Anita;Anna;Annabelle;Annaelle;Anne;Anne-Laure;Anne-Sophie;Annette;Annie;Anny;Anouck;Anouk;Anselme;Anthony;Antoine;Antoinette;Anton;Antoni;Antonia;Antonin;Antonio;Antony;Anya;Apollinaire;Apolline;Appoline;Archibald;Arda;Ari;Aria;Ariana;Ariane;Arianne;Arie;Ariel;Arielle;Arienne;Arij;Aris;Aristide;Arlette;Arman;Armance;Armand;Armel;Armelle;Arnaud;Arnaude;Arno;Aron;Arsene;Arslane;Artemis;Arthur;Arthus;Arto;Artus;Arwa;Arwen;Arya;Ashley;Asia;Asma;Asmaa;Assa;Assetou;Assia;Assil;Assiya;Assya;Astou;Astrid;Athena;Aubane;Aubin;Aude;Audrey;Auguste;Augustin;Augustine;Aure;Aurel;Aurele;Aurelia;Aurelie;Aurelien;Auriane;Aurore;Auxence;Ava;Avi;Aviel;Avital;Avril;Awa;Axel;Axelle;Aya;Ayaan;Ayah;Ayana;Aydan;Ayden;Ayem;Ayla;Aylan;Aylin;Ayline;Ayman;Aymane;Aymen;Aymeric;Ayoub;Aysha;Azad;Aziliz;Aziz"

lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomA=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomB(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Babacar;Badis;Bafode;Bahia;Bakary;Balkis;Balthazar;Baptiste;Barbara;Barnabe;Barthelemy;Basil;Basile;Basma;Bastian;Bastien;Batiste;Baudouin;Baya;Beatrice;Bella;Ben;Benedicte;Benjamin;Benjamine;Benoit;Benoite;Berenice;Bernadette;Bernard;Berthe;Bertille;Bertrand;Beryl;Bettina;Betty;Beya;Bianca;Bilal;Bilel;Billie;Binta;Bintou;Blaise;Blanche;Blandine;Blessing;Bleuenn;Bogdan;Bonnie;Boris;Bosco;Boubacar;Boubou;Bouchra;Bradley;Brahim;Brandon;Brayan;Briac;Brian;Brice;Brieuc;Brigitte;Brune;Bruno;Bryan"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomB=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomC(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Calie;Calista;Calixte;Calvin;Camelia;Cameron;Camil;Camila;Camilia;Camille;Camilo;Candice;Capucine;Carine;Carl;Carla;Carlotta;Carmen;Carole;Carolina;Caroline;Cassandra;Cassandre;Cassie;Cassiopee;Castille;Catherine;Cecile;Cecilia;Cedric;Celeste;Celestin;Celestine;Celia;Celian;Celina;Celine;Cerise;Cesaire;Cesar;Chaden;Chahine;Chahinez;Chaima;Chanel;Chantal;Chante;Charles;Charlie;Charline;Charlize;Charlot;Charlotte;Charly;Chayma;Cheick;Cheick-Oumar;Cheikh;Chelsea;Chiara;Chirine;Chloe;Chmouel;Chris;Christ;Christelle;Christian;Christina;Christine;Christophe;Christopher;Ciara;Cindy;Claire;Clara;Clarence;Clarisse;Claude;Claudette;Claudia;Claudine;Clea;Clelia;Clelie;Clemence;Clement;Clementine;Cleo;Cleophee;Cloe;Clothilde;Clotilde;Clovis;Colette;Colin;Coline;Colombain;Colomban;Colombe;Come;Constance;Constant;Constantin;Coralie;Coraline;Corentin;Corin;Corinne;Corto;Cosette;Cosima;Coumba;Cristiano;Cunegonde;Curtis;Cynthia;Cyprien;Cyrian;Cyriaque;Cyrielle;Cyril;Cyrille;Cyrine;Cyrus"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomC=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomD(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Dahlia;Dali;Dalia;Dalla;Dalya;Damian;Damien;Dan;Dana;Danae;Dani;Dania;Daniel;Daniela;Daniele;Daniella;Danielle;Danny;Dany;Danyl;Daoud;Daouda;Daphne;Daphnee;Daria;Darine;Dario;Darius;Darren;Darry;David;Dayan;Dayane;Deborah;Delia;Delphine;Demba;Denis;Denise;Desire;Desiree;Deva;Diana;Diane;Dianne;Didier;Diego;Dieudonne;Dieudonnee;Dieynaba;Dilan;Dimitri;Dina;Diodore;Dion;Divine;Djena;Djeneba;Djenna;Djibril;Dominique;Domitille;Donat;Donatien;Donatienne;Dora;Dorian;Doriane;Dorothee;Dounia;Dov;Driss;Dune;Dylan;Dyna"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomD=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomE(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Eddy;Eden;Edgar;Edgard;Edith;Edmond;Edouard;Eduard;Eduardo;Edward;Edwige;Edwin;Eglantine;Eileen;El;Ela;Elaia;Elea;Eleanor;Eleanore;Elena;Eleonore;Elhadj;Eli;Elia;Eliahou;Elian;Eliana;Eliane;Elias;Elie;Eliel;Eliette;Elif;Elijah;Elina;Eline;Elinor;Elio;Elior;Eliora;Eliot;Eliott;Elisa;Elisabeth;Elise;Elissa;Eliza;Elizabeth;Ella;Ellie;Elliot;Elliott;Elly;Eloan;Eloane;Elodie;Eloi;Eloise;Elon;Elona;Elone;Elora;Elouan;Elouann;Elsa;Elvire;Ely;Elya;Elyan;Elyana;Elyas;Elyes;Elyne;Elyssa;Ema;Emeline;Emi;Emie;Emil;Emile;Emilia;Emilie;Emilien;Emilio;Emily;Emir;Emma;Emmanuel;Emmanuella;Emmanuelle;Emmie;Emmy;Emna;Emy;Eneko;Enguerrand;Ennio;Enola;Enora;Enzo;Eric;Erik;Erika;Erin;Erine;Ermenegilde;Ernest;Ernestine;Erwan;Erwann;Esmee;Esteban;Estelle;Esther;Ethan;Ethann;Ethel;Etienne;Eugene;Eugenie;Eulalie;Eunice;Eurydice;Eustache;Eva;Evan;Evann;Evans;Evariste;Eve;Evette;Evrard;Evy;Ewan;Ewen;Ewenn;Eya;Eyal;Eytan;Eythan;Ezio;Ezra"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomE=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomF(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Fabien;Fabienne;Fabio;Fabrice;Fadi;Fady;Fahd;Faith;Fallou;Fanny;Fanta;Fantine;Farah;Fares;Farouk;Fatim;Fatima;Fatimata;Fatima-Zahra;Fatma;Fatou;Fatouma;Fatoumata;Faustine;Faycal;Federico;Felicie;Felicien;Felicienne;Felicite;Felix;Ferdinand;Feriel;Fernand;Fernande;Feryel;Fiacre;Fifi;Filip;Filipe;Fiona;Firas;Firdaws;Firmin;Flavia;Flavie;Flavien;Flavio;Fleur;Flora;Flore;Florence;Florent;Florentin;Florette;Florian;Floriane;Florianne;Fode;Foucauld;Frana§Ois;Francesca;Francesco;Francine;Francis;Franck;Francois;Francoise;Franklin;Frederic;Frederique;Frida"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomF=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomG(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Gabin;Gabriel;Gabriela;Gabriele;Gabriella;Gabrielle;Gaby;Gad;Gael;Gaelle;Gaetan;Gaetane;Gaia;Garance;Gary;Gaspar;Gaspard;Gaston;Gauthier;Gautier;Genevieve;Geoffrey;Geoffroi;Geoffroy;George;Georges;Georgette;Georgia;Georgine;Gerald;Gerard;Geraud;Germain;Germaine;Gervais;Gervaise;Ghislain;Ghislaine;Giacomo;Gianni;Gigi;Gilberte;Gilles;Gina;Ginette;Giovanni;Gisele;Giselle;Gisselle;Giulia;Giulian;Giulio;Gloria;Godelieve;Gonzague;Goundo;Gra¢Ce;Grace;Gratien;Graƒa¢Ce;Gregoire;Gregory;Greta;Guilhem;Guillaume;Guillemette;Gustave;Guy;Gwenaelle;Gwendal;Gwendoline"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomG=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomH(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Habib;Habiba;Haby;Hadja;Hadriel;Hadrien;Hafsa;Hajar;Hakim;Halima;Hamed;Hamidou;Hamza;Hana;Hanae;Hania;Hanna;Hannah;Haris;Harold;Haron;Haroun;Harouna;Haroune;Harry;Hasna;Hassan;Hassane;Hatem;Hatouma;Hawa;Haya;Hayden;Hector;Hedi;Helena;Helene;Helia;Helie;Helios;Hella;Heloise;Henri;Henriette;Henry;Hercule;Hermance;Hermine;Herve;Hiba;Hicham;Hichem;Hidaya;Hilaire;Hillel;Hind;Hippolyte;Hocine;Honore;Honorine;Hortense;Houda;Hubert;Hugo;Hugues;Hyacinthe"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomH=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomI(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Ian;Iban;Ibrahim;Ibrahima;Ida;Idan;Idir;Idris;Idriss;Idrissa;Ignace;Igor;Ikram;Ilan;Ilana;Ilann;Ilham;Ilhan;Ilian;Iliana;Iliane;Ilias;Ilies;Ilina;Ilona;Ilyan;Ilyana;Ilyane;Ilyas;Ilyass;Ilyes;Ilyess;Imad;Iman;Imane;Imanol;Imany;Imen;Imene;Imran;Imrane;Inaya;Inayah;India;Ines;Inna;Inza;Irene;Irenee;Irina;Iris;Isaac;Isabella;Isabelle;Isadora;Isaiah;Isaure;Isee;Iseult;Ishak;Ishaq;Isidore;Isis;Islam;Islem;Ismael;Ismail;Isra;Israa;Issa;Issam;Issiaka;Ivan;Ivy;Iwan;Iyad;Iyed;Izia"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomI=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomJ(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Jacinthe;Jack;Jacob;Jacqueline;Jacques;Jad;Jade;Jaden;Jalil;Jamal;Jamel;James;Jan;Jana;Jane;Janelle;Janie;Janna;Jannah;Jarod;Jasmine;Jason;Jassem;Jassim;Jawad;Jawed;Jayan;Jayden;Jayson;Jean;Jean-Baptiste;Jeanine;Jean-Marc;Jean-Marie;Jeanne;Jeannette;Jeannine;Jeannot;Jean-Pierre;Jed;Jehanne;Jenna;Jennah;Jennifer;Jenny;Jeremie;Jeremy;Jerome;Jessica;Jessie;Jessim;Jessy;Jibril;Jihane;Jill;Jim;Jimmy;Jinane;Joachim;Joakim;Joan;Joana;Joanna;Joanne;Joaquim;Joceline;Jodie;Joe;Joel;Joelle;Joey;Johan;Johana;Johann;Johanna;Johanne;John;Johnny;Jolie;Jonah;Jonas;Jonathan;Jordan;Joris;Josee;Joseph;Josephe;Josephine;Josette;Josh;Joshua;Josiane;Josue;Joud;Jourdain;Joy;Joyce;Juan;Juba;Jude;Judith;Jules;Julia;Julian;Juliana;Juliane;Juliann;Julianne;Julie;Julien;Julienne;Juliette;Jun;June;Junior;Junon;Juste;Justin;Justine"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomJ=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomK(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Kacper;Kader;Kadiatou;Kadidia;Kadidiatou;Kadidja;Kady;Kahil;Kahina;Kais;Kamel;Kamelia;Kamil;Kamila;Karamba;Karamoko;Karen;Karim;Karine;Karl;Karla;Karolina;Kassim;Kate;Katell;Kathleen;Katia;Kawtar;Kawthar;Kayla;Kayliah;Kayna;Kays;Keira;Kelia;Kelian;Kelly;Kelvin;Kelya;Kelyan;Kenan;Kendra;Kendrick;Kenny;Kentin;Kenza;Kenzi;Kenzo;Kenzy;Keren;Ketsia;Kevin;Keyla;Keziah;Khadidiatou;Khadidja;Khadija;Khady;Khaled;Khalifa;Khalil;Kheira;Kiara;Kilian;Killian;Kilyan;Kim;Kimberly;Kimi;Kimia;Kiyan;Klara;Klervi;Koumba;Kristina;Kurtis;Kyan;Kyle;Kylian;Kyliann;Kyllian"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomK=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomL(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Ladji;Laetitia;Lahna;Lalie;Laly;Lalya;Lamia;Lamine;Lana;Lancelot;Lara;Lassana;Laszlo;Latifa;Laura;Laure;Lauren;Laurence;Laurent;Laurentine;Laurette;Lauriane;Laurie;Laurine;Lauryn;Lauryne;Laya;Layana;Layanah;Layane;Layla;Layna;Lazar;Lazare;Lea;Leana;Leandre;Leandro;Leane;Leanne;Leelou;Lehna;Leia;Leila;Lena;Leni;Lenny;Leny;Leo;Leon;Leonard;Leonardo;Leonce;Leonie;Leonne;Leonor;Leonore;Leontine;Leo-Paul;Leopold;Leopoldine;Leslie;Leticia;Levana;Levi;Lewis;Leya;Leyla;Leyna;Lia;Liam;Liana;Liane;Liel;Liham;Lila;Lilas;Lili;Lilia;Lilian;Liliana;Liliane;Lilie;Lili-Rose;Lilly;Lilou;Lilwenn;Lily;Lilya;Lily-Rose;Lina;Linda;Lindsay;Line;Lino;Linoy;Lionel;Lior;Liora;Lirone;Lisa;Lisandro;Lise;Lisette;Lison;Lital;Liv;Livia;Livio;Liya;Liyah;Liz;Liza;Lizea;Loan;Loane;Loann;Logan;Lohan;Loic;Loick;Lois;Lola;Lorena;Lorenzo;Loris;Lorraine;Lothaire;Lou;Louan;Louane;Louann;Lou-Ann;Louanne;Lou-Anne;Louay;Loubna;Louca;Louis;Louisa;Louise;Louis-Marie;Louison;Louka;Loula;Louna;Lounis;Loup;Luan;Lubin;Luc;Luca;Lucas;Luce;Lucia;Lucie;Lucien;Lucienne;Lucile;Lucille;Lucinde;Lucrece;Lucy;Ludivine;Ludmila;Ludovic;Luigi;Luis;Luisa;Luka;Lukas;Luke;Lula;Luna;Lunete;Luz;Lya;Lyah;Lyam;Lyana;Lydia;Lydie;Lyes;Lyham;Lyla;Lylia;Lylou;Lyna;Lyne;Lynn;Lysandre;Lyse"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomL=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomM(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Maayane;Maceo;Madeleine;Madeline;Madina;Mado;Mady;Mae;Mael;Maelia;Maelie;Maelis;Maelle;Maelya;Maelys;Maeva;Magdalena;Mahamadou;Mahault;Mahaut;Mahdi;Mahe;Maher;Mahmoud;Mai;Maia;Mailys;Maimouna;Maina;Maissa;Maissane;Maiwenn;Maja;Makan;Maksim;Malak;Malcolm;Malek;Malia;Malick;Malik;Malika;Malo;Malone;Malorie;Mamadou;Mame;Mamou;Mamoudou;Manal;Manar;Manel;Manelle;Manil;Manon;Manuel;Manuela;Mara;Maram;Marc;Marc-Antoine;Marceau;Marcel;Marceline;Marcelle;Marcellette;Marcellin;Marcelline;Marcello;Marco;Marcus;Margaux;Margo;Margot;Marguerite;Maria;Mariam;Mariama;Mariame;Marianne;Marie;Marie-Ange;Marie-Georges;Marielle;Marie-Lou;Mariem;Mariette;Marilou;Marin;Marina;Marine;Mario;Marion;Marise;Marius;Marjane;Marjorie;Mark;Marko;Marlene;Marley;Marlon;Marnie;Marouane;Marta;Martha;Marthe;Martin;Martine;Marvin;Marwa;Marwan;Marwane;Marwen;Maryam;Marylou;Massil;Massinissa;Massyl;Mateja;Mateo;Mateusz;Matheo;Mathias;Mathieu;Mathilda;Mathilde;Mathis;Mathurin;Mathys;Matias;Matilda;Matilde;Matis;Matisse;Matt;Matteo;Mattheo;Matthew;Matthias;Matthieu;Matthis;Mattia;Mattis;Matys;Maud;Maude;Maureen;Maurice;Max;Maxance;Maxence;Maxens;Maxim;Maxime;Maximilian;Maximilien;Maximilienne;Maxine;May;Maya;Mayane;Mayar;Mayas;Mayeul;Mayline;Maylis;Mayssa;Mayssane;Mehdi;Mehmet;Meir;Melanie;Melchior;Melia;Melina;Melinda;Meline;Melissa;Mellina;Melodie;Melody;Melusine;Melvil;Melvin;Melvyn;Menahem;Mendel;Meriam;Meriem;Merlin;Merwan;Meryam;Meryem;Meryl;Meyron;Mia;Michael;Michel;Michele;Micheline;Michelle;Mickael;Mignon;Miguel;Mika;Mikail;Mike;Mila;Milan;Milena;Milhan;Milica;Milla;Milo;Mina;Minh;Mira;Mirabelle;Mireille;Miya;Moche;Modeste;Modestine;Modibo;Mody;Mohamed;Mohamed-Ali;Mohamed-Amine;Mohamed-Lamine;Mohammad;Mohammed;Mona;Monica;Monique;Morgaine;Morgan;Morgane;Mory;Mouad;Mouctar;Mouhamadou;Mouhamed;Mouhammad;Moulay;Mounir;Moussa;Moustafa;Moustapha;Muhammad;Muhammed;Mustafa;Mustapha;Mya;Myla;Mylan;Myriam;Myrtille"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomM=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomN(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Nabil;Nada;Nadia;Nadine;Nadir;Nael;Naelle;Nahel;Nahia;Nahil;Nahla;Nahyl;Naila;Naim;Nais;Nala;Namizata;Namory;Nana;Naomi;Naomie;Naor;Narcisse;Nassim;Natacha;Natalia;Natalie;Natan;Natasha;Nathael;Nathalie;Nathan;Nathanael;Nathaniel;Nawal;Nawel;Nawfel;Naya;Nayel;Nayla;Nazaire;Nazim;Neela;Neil;Neila;Nelia;Nell;Nelly;Nelson;Nelya;Nene;Neo;Nermine;Nesrine;Neyla;Niame;Nicodeme;Nicolas;Nicole;Nicolette;Niels;Nikita;Nikola;Nil;Nils;Nina;Nine;Ninette;Nino;Ninon;Niouma;Nisa;Nizar;Noa;Noah;Noam;Noan;Noe;Noel;Noelie;Noella;Noelle;Noemi;Noemie;Noha;Noham;Nohan;Nola;Nolan;Nolann;Nolhan;Nolwenn;Noor;Nora;Norah;Norhane;Nouha;Nour;Noura;Nourane"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomN=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomO(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Oceane;Octave;Odelia;Odette;Odile;Olga;Olive;Oliver;Olivia;Olivie;Olivier;Oliwia;Olympe;Olympia;Omar;Ombeline;Ondine;Onesime;Oona;Ophelie;Ora;Orane;Oren;Oriane;Orianne;Orlane;Ornella;Orso;Ortal;Oscar;Oskar;Othmane;Otto;Ouida;Oumar;Oumou;Ousmane;Oussama;Ovadia;Owen"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomO=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomP(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Pablo;Paco;Paloma;Paola;Paolo;Pape;Papillion;Paris;Pascal;Pascale;Pascaline;Paschal;Patrice;Patricia;Patrick;Paul;Paula;Paul-Antoine;Paul-Arthur;Paule;Paulette;Paulin;Pauline;Pedro;Penda;Penelope;Perceval;Perrette;Perla;Perle;Perrine;Peter;Petronille;Pharell;Phileas;Philemon;Philibert;Philippa;Philippe;Philippine;Pia;Pierre;Pierre-Alexandre;Pierre-Antoine;Pierre-Louis;Pierrette;Pietro;Placide;Pol;Pons;Prenoms;Preston;Prince;Prisca;Priscille;Prn;Prosper;Prudence;Prune"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomP=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomQ(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Qassim;Quentin;Quitterie"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomQ=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomR(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Racha;Rachel;Rafael;Rafaela;Rahim;Rahma;Rainier;Ramata;Rami;Ramy;Ramzy;Rana;Rania;Ranim;Ranya;Raoul;Raphael;Raphaelle;Rawane;Rayan;Rayane;Rayen;Rayhana;Raymonde;Razane;Rebecca;Reda;Regine;Regis;Reine;Remi;Remy;Renard;Renaud;Rene;Renee;Reynaud;Riad;Ricardo;Richard;Rim;Rita;Ritaj;Ritej;Rivka;Riyad;Robert;Robin;Robinson;Roch;Rochelle;Rodolphe;Rodrigo;Rodrigue;Rohan;Rokia;Rokya;Rolande;Romain;Romaine;Roman;Romane;Romeo;Romie;Romy;Ron;Ronan;Rosa;Rosalie;Rose;Roselle;Rosemonde;Rosette;Rosine;Roxane;Roxanne;Roy;Ruben;Ruby;Rudy;Ruth;Ryad;Ryan;Rym"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomR=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomS(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Saad;Sabine;Sabri;Sabrina;Sabrine;Sacha;Sadio;Safa;Safia;Safiatou;Safiya;Safya;Sahel;Said;Saif;Saja;Sakina;Salem;Salif;Salim;Salima;Salimata;Sally;Salma;Salman;Salome;Salomon;Sam;Samantha;Samba;Sami;Samia;Samir;Samira;Samson;Samuel;Samy;Sana;Sanaa;Sandra;Sandrine;Sandro;Santiago;Sara;Sarah;Sarra;Sasha;Saskia;Satine;Saturnin;Saul;Savannah;Scarlett;Scott;Sean;Sebastian;Sebastien;Sebastienne;Sekou;Selena;Selene;Selim;Selma;Selyan;Sephora;Seraphine;Serena;Serge;Serine;Severin;Severine;Seydina;Seydou;Seynabou;Shaina;Shana;Shani;Shanice;Shanna;Shannon;Shanon;Shany;Sharon;Shawn;Shay;Shayan;Shayma;Shayna;Shelly;Sherine;Shirel;Shirine;Shyrel;Sia;Sibylle;Sidi;Sidney;Sidonie;Sidy;Sienna;Siham;Sihem;Silas;Siloe;Simeon;Simon;Simone;Sinan;Sira;Sirine;Sixte;Sixtine;Skander;Soan;Sofia;Sofian;Sofiane;Sofya;Sohan;Sohane;Sokhna;Solal;Solange;Solene;Solenn;Soline;Solveig;Sonia;Sophia;Sophie;Soraya;Soren;Soukaina;Soulayman;Souleyman;Souleymane;Soumaya;Stacy;Stan;Stanislas;Stanley;Steeve;Stefan;Stella;Stephane;Stephanie;Steve;Steven;Suzanne;Suzette;Suzie;Suzy;Sven;Swan;Swann;Sybille;Sydney;Sylia;Sylvain;Sylvaine;Sylvestre;Sylvia;Sylviane;Sylvianne;Sylvie;Syrine"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomS=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomT(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Taha;Tahar;Tahel;Tal;Tali;Talia;Talya;Tamara;Tanguy;Tania;Tanya;Tao;Tara;Tasnim;Tasnime;Tatiana;Tatienne;Taym;Tayron;Tea;Teddy;Telesphore;Telma;Teo;Terence;Tesnim;Tesnime;Tess;Tessa;Thais;Thalia;Thanina;Thea;Theirn;Thelma;Theo;Theodore;Theophane;Theophile;Theotime;Therese;Thiago;Thibaud;Thibault;Thibaut;Thierno;Thierry;Thimeo;Thomas;Tia;Tiago;Tiana;Tidiane;Tiffany;Tiguida;Tilio;Tim;Timeo;Timothe;Timothee;Timothy;Tina;Tino;Tiphaine;Titouan;Tobias;Toinette;Tom;Toma;Tomas;Tommy;Tony;Toscane;Toussaint;Tracy;Tristan;Tsipora;Tybalt;Tyler;Tymeo;Tyron"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomT=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomU(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Ugo;Ulysse;Urbain;Ursule"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomU=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomV(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Vadim;Valentin;Valentina;Valentine;Valentino;Valere;Valeria;Valerie;Valery;Vanessa;Vasco;Vera;Vernon;Veronique;Vespasien;Vianney;Victoire;Victor;Victoria;Victorien;Victorine;Vienne;Viktor;Viktoria;Vincent;Violette;Virgil;Virgile;Virginie;Viviane;Vivien;Vivienne;Vladimir"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomV=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomW(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Waast;Wafaa;Walburge;Waldemar;Walder;Waldy;Walfrid;Walfroy;Wallerand;Walter;Walther;Wanda;Wandrille;Wandy;Warren;Waudru;Weltaz;Wenceslas;Wendel;Wendeline;Wendy;Werburge;Werner;Wilbert;Wilbrord;Wilfrid;Wilfried;Wilhelm;Wilhelmine;Willard;Willehad;Willem;William;Willibald;Willibrord;Willy;Wilmart;Wilson;Winebald;Winifred;Winnie;Winnoc;Winoc;Winston;Wisigarde;Wivine;Wladimir;Wolfgang;Wolfram;Wulfran;Wulfstan;Wunibald;Wynnebald"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomW=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomX(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Xant;Xantha;Xanthe;Xanthie;Xanthin;Xavier;Xaviera;Xaviere;Xenia;Xenophon;Xyste;Xytilis;Xytilise"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomX=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomY(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Yacine;Yacoub;Yacouba;Yael;Yahya;Yakine;Yamina;Yan;Yani;Yanis;Yaniss;Yann;Yanni;Yannick;Yannis;Yara;Yaron;Yasin;Yasmina;Yasmine;Yasser;Yassin;Yassine;Yaya;Yazid;Ylan;Yoan;Yoann;Yoav;Yoel;Yohan;Yohann;Yolande;Yona;Yoni;Yosra;Yossef;Youcef;Youenn;Youmna;Youna;Younes;Youness;Younouss;Youri;Yousra;Youssef;Youssouf;Yse;Ysee;Yseult;Yumi;Yuna;Yuri;Yusuf;Yvan;Yves;Yvette;Yvonne"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomY=Instr(1,strTemp,lePatronyme)
End Function

Function EstUnPrenomZ(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Zacharia;Zacharie;Zachary;Zack;Zackary;Zadig;Zahra;Zakaria;Zakariya;Zakary;Zakarya;Zara;Zayd;Zayn;Zaynab;Zayneb;Zeinab;Zelda;Zelie;Zephyr;Zephyrine;Zeynab;Zia;Ziad;Zina;Zineb;Zinedine;Ziyad;Zoe;Zoey;Zohra;Zuzanna;Zyad"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomZ=Instr(1,strTemp,lePatronyme)
End Function





Function RecupNoms(arg1 as String,arg2 As String)
'amélioration du prénom arrivant :
Dim strNoms As String
Dim vArg1 As Variant
Dim i As Integer

If Len(arg1)>1 Then 'Un prénom a été trouvé...


If Instr(1,arg1," ")>0 Then
'cas du prénom composé
vArg1 = Split(arg1," ")
strNoms = arg2
For i = LBound(vArg1) To UBound(vArg1)
strNoms = Replace(strNoms,vArg1(i),"")
Next
Else

'cas simple, prénom unique
	If Instr(1,arg2,arg1)>0 Then
	strNoms = Replace(arg2,arg1,"")
	End If
	
	strNoms = UCase(strNoms)
	
	If Left(strNoms,1)="-" And Len(strNoms)>0 Then'éviter les exceptions en cas de nom pas trouvé
	StrNoms = Right(strNoms,Len(strNoms)-1)
	End If

End If

If Left(StrNoms,1)="-" And Len(StrNoms) > 0 Then
StrNoms = Replace(StrNoms,"-","")
End If
StrNoms = UCase(StrNoms)
RecupNoms = Trim(strNoms)

Else
RecupNoms = ""'le prénom n'ayant pas été trouvé, on ne donne aucune réponse ici.
End If

End Function





Function SupprimerAccents(ByVal sChaine As String) As String
Dim sTmp As String, i As Long, p As Long
Const sCarAccent As String = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ"
Const sCarSansAccent As String = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy"
    sTmp = sChaine
    For i = 1 To Len(sTmp)
        p = InStr(sCarAccent, Mid(sTmp, i, 1))
        If p > 0 Then Mid$(sTmp, i, 1) = Mid$(sCarSansAccent, p, 1)
    Next i
    SupprimerAccents = sTmp
End Function



'Auteur : Dude
Function MiseEnMajuscule5(oTexte As String) As String
   oCalc = CreateUnoService("com.sun.star.sheet.FunctionAccess")
   MiseEnMajuscule5 = oCalc.callFunction("PROPER", array(oTexte))
End Function






Merci et à bientôt !
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Merci à tous pour votre aide, vous êtes au TOP !!!!

@Jeff : ton fichier marche parfaitement merci beaucoup.
Petit détail : Les lignes avec les nom composés sont bien surligné mais que jusqu'à la ligne 350. C'est possible de le faire jusqu'à la ligne 3000 (pour voir large) ?

@martinbrait : je suis désolé, je ne comprends pas comment ton fichier fonctionne. Si je colle (collage spécial cette fois ;) ) une liste de nom, rien ne se produit.


Merci encore de m'accorder autant de temps
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Jeff
GourOOu
GourOOu
Messages : 9944
Inscription : 18 sept. 2006 09:40
Localisation : France

Re: Trouver toutes les cellules avec 3 mots

Message par Jeff »

Rocky Rider a écrit :@Jeff : ton fichier marche parfaitement
Étonnant... car je n’ai joins aucun fichier :P
Rocky Rider a écrit :mais que jusqu'à la ligne 350
Chez moi, c’est 338...puisque c’est la limite initiale des formules et formats du fichier du 22 Juin 2017 08:50 de Hubert Lambert, y compris modificatif du même Hubert du 25 Juin 2017 17:34 .

Au delà, il te faut recopier les lignes des colonnes B, C D.
Le plus simple est de sélectionner la dernière ligne de ces colonnes dans lesquelles apparaissent les résultats, puis tirer la poignée de recopie (le petit carré noir en bas à droite) :
Poignee_recopie_tiree.png
Concernant le formatage conditionnel, il s’arrête également en ligne 338, le plus simple est de sélectionner une cellule précédente sur laquelle fonctionne le formatage, cliquer sur l’icône "Pinceau" (reproduire la mise en forme), et repeindre les cellules ajoutées en colonne A.
Rocky Rider a écrit :C'est possible de le faire jusqu'à la ligne 3000
Oui, mais il te faudra aussi masquer les erreurs des colonnes B, C et D qui trouveront une colonne A avec des cellules vides.
Rocky Rider a écrit :@martinbrait : je suis désolé, je ne comprends pas comment ton fichier fonctionne
Cette section du forum ne traite pas de macro, si finalement tu souhaite traiter cela par macro, il te faut cloturer ce fil, et en ouvrir un nouveau en section Macros.

A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.15 / Debian 12.10 "bookworm" / Xfce
Avatar de l’utilisateur
martinbrait
InconditiOOnnel
InconditiOOnnel
Messages : 753
Inscription : 09 avr. 2013 07:15
Localisation : T'as pas dit bonjour, merci et à bientot !

Re: Trouver toutes les cellules avec 3 mots

Message par martinbrait »

Rocky Rider a écrit : @martinbrait : je suis désolé, je ne comprends pas comment ton fichier fonctionne. Si je colle (collage spécial cette fois ;) ) une liste de nom, rien ne se produit.
Bonjour Rocky !
En fait il fallait simplement faire un collage normal, dans la colonne A, nommée : "atomes initiaux".
noms_prenoms_v3.JPG
Autrement, c'est un fichier qui marche sur le principe d'un dictionnaire de prénoms que tu complètes au fil du temps.
Tu percevras dans les fonctions du programme des fonctions
EstUnPrenom() contenant un inventaire de 2330 prénoms, par ordre alphabétique.
Tu peux compléter entre points virgules par les prénoms manquants qui te retourne un vide dans ton fichier.
separer_noms_prenomsV3.ods
Quand tu vois des colonnes vides dans ton fichier, voici le genre de fonctions dont tu peux compléter les prénoms manquants,
il y en a une pour chaque lettre de l'alphabet !

Code : Tout sélectionner

Function EstUnPrenomS(lePatronyme As String)
Dim strTemp As String
strTemp = "" & _
"Saad;Sabine;Sabri;Sabrina;Sabrine;Sacha;Sadio;Safa;Safia;Safiatou;Safiya;Safya;Sahel;Said;Saif;Saja;Sakina;Salem;Salif;Salim;Salima;Salimata;Sally;Salma;Salman;Salome;Salomon;Sam;Samantha;Samba;Sami;Samia;Samir;Samira;Samson;Samuel;Samy;Sana;Sanaa;Sandra;Sandrine;Sandro;Santiago;Sara;Sarah;Sarra;Sasha;Saskia;Satine;Saturnin;Saul;Savannah;Scarlett;Scott;Sean;Sebastian;Sebastien;Sebastienne;Sekou;Selena;Selene;Selim;Selma;Selyan;Sephora;Seraphine;Serena;Serge;Serine;Severin;Severine;Seydina;Seydou;Seynabou;Shaina;Shana;Shani;Shanice;Shanna;Shannon;Shanon;Shany;Sharon;Shawn;Shay;Shayan;Shayma;Shayna;Shelly;Sherine;Shirel;Shirine;Shyrel;Sia;Sibylle;Sidi;Sidney;Sidonie;Sidy;Sienna;Siham;Sihem;Silas;Siloe;Simeon;Simon;Simone;Sinan;Sira;Sirine;Sixte;Sixtine;Skander;Soan;Sofia;Sofian;Sofiane;Sofya;Sohan;Sohane;Sokhna;Solal;Solange;Solene;Solenn;Soline;Solveig;Sonia;Sophia;Sophie;Soraya;Soren;Soukaina;Soulayman;Souleyman;Souleymane;Soumaya;Stacy;Stan;Stanislas;Stanley;Steeve;Stefan;Stella;Stephan;Stephane;Stephanie;Stephen;Steve;Steven;Suzanne;Suzette;Suzie;Suzy;Sven;Swan;Swann;Sybille;Sydney;Sylia;Sylvain;Sylvaine;Sylvestre;Sylvia;Sylviane;Sylvianne;Sylvie;Syrine"
lePatronyme = SupprimerAccents(lePatronyme)
EstUnPrenomS=Instr(1,strTemp,lePatronyme)
End Function
maquereaux.jpg
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinbrait le 15 juil. 2017 02:11, modifié 3 fois.
LibreOffice version 5.4.7.2.M6 (x64)
Windows 10
+
LibreOffice version 5.4.7.2.M6 (x64)
Windows 7

#HSQL Database Engine 1.8.0
version=1.8.0

Locale : fr-FR (fr_FR)

Obligation de version


Bonjour, merci et à bientôt !
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 4275
Inscription : 06 oct. 2008 08:03

Re: Trouver toutes les cellules avec 3 mots

Message par Oukcha »

Vous faites exprès de balancer des macros à tout bout de champ dans une section qui n’y est pas consacrée ?

Avec 4 ans de présence et plus de 500 messages au compteur, merci de changer de comportement.

Je rappelle que cette section n'est pas consacrée aux macros (voir le bandeau rouge en haut de la page), si vous postez une solution, faites le en section "Macros et API" et ajoutez dans ce fil un lien vers celle-ci.
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Jeff a écrit :
Rocky Rider a écrit :@Jeff : ton fichier marche parfaitement
Étonnant... car je n’ai joins aucun fichier :P
Au temps pour moi, je me suis trompé dans les pseudo. Le fichier vient de @Hubert Lambert
D'ailleurs maintenant tout fonctionne parfaitement. Même avec une liste de 1100 noms il n'y a qu'une dizaines d'erreur.
Merci beaucoup cela me fait gagner un max de temps...

J'ai fait un test avec un fichier ou la colonne est sous la forme prenom/nom, cela fonctionne tout aussi bien.
Je me trompe ou cela fonctionne indifféremment avec des colonnes prénom/nom et nom/prénom ?
Si c'est le cas c'est vraiment génial.

Je vais continuer mes tests, mais merci beaucoup vous m'avez rendu un énorme service.

@martinbrait
Merci aussi pour ton fichier.
Je vais également étudier ta solution...mais pour l'instant je débute en OpenOfiice alors je suis bien loin de me servir des macros (dont je ne connais que la définition trouvé sur le net ;) ).

J'ai donc ouvert cette nouvelle discussion pour ne pas continuer de traiter ici des macros :oops:
https://forum.openoffice.org/fr/forum/v ... =8&t=54999
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Rocky Rider a écrit :Je me trompe ou cela fonctionne indifféremment avec des colonnes prénom/nom et nom/prénom ?
Tu te trompes :wink: .
Ou plutôt ça marche tant qu'il n'y a pas d'espace dans le prénom, ce qui est sans doute moins courant (en français) que dans le nom.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

Hubert Lambert a écrit :
Rocky Rider a écrit :Je me trompe ou cela fonctionne indifféremment avec des colonnes prénom/nom et nom/prénom ?
Tu te trompes :wink: .
Ou plutôt ça marche tant qu'il n'y a pas d'espace dans le prénom, ce qui est sans doute moins courant (en français) que dans le nom.
OK merci.
C'est abusé si je te demande de me faire le même fichier dans le cas d'une liste prénom/nom ?
Je suis désolé, si je comprenais la démarche que tu as suivi je le ferai moi même.

Encore merci pour tout le temps que tu m'as accordé.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Trouver toutes les cellules avec 3 mots

Message par Hubert Lambert »

Mon premier essai utilisait l'ordre prénom/nom.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Rocky Rider
Membre OOrganisé
Membre OOrganisé
Messages : 50
Inscription : 05 mai 2017 11:32

Re: Trouver toutes les cellules avec 3 mots

Message par Rocky Rider »

mais tu as apporté cette modification je ne savais plus si ton premier fichier était bon, même sur les longues listes.
Hubert Lambert a écrit : [/code]
- remplace la formule en colonne B comme ceci :

Code : Tout sélectionner

=SI(ESTERR(CHERCHE($A$2;A5));CHERCHE(" ";A5);CHERCHE(" ";A5;CHERCHE(" ";A5)+1))
Cordialement.
Je vais attendre d'avoir un fichier prénom/nom pour faire un test.

Encore merci pour tout.
Apache OpenOffice 4.1.13
mac OS Ventura 13.1
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12675
Inscription : 08 nov. 2005 16:23
Localisation : Brest, France

Re: Trouver toutes les cellules avec 3 mots

Message par Bidouille »

A priori, nous n'aurons plus de nouvelle de l'auteur.

Je classe le fil comme résolu.