Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bdd Adresses

5 réponses
Avatar
Infogroup
Re-Bonjour à tous,

Je travaille actuellement dans une base de données d'adresses.

Dans la colonne A, j'ai les civilités, prénoms et noms
Mais voilà, il y a le problème de la diversité des écritures.

Exemples :

En A1 => M & Mme B. & H. DE PENASTOUR
En A2 => M & Mme Roger FAUCHEURO
En A3 => M & Mme BIDON
En A4 => Dr FRONTINO

Avec ces 4 exemples ci-dessus, je voudrais obtenir :
En B1 => DE PENASTOUR
En B2 => FAUCHEURO
En B3 => BIDON
En B4 => FRONTINO

Je pense qu'il faut passer par vba

J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

Merci par avance pour vos solutions éventuelles

Cordialement

Infogroup

5 réponses

Avatar
JB
Bonjour,

avec fonction perso.

Function Nom(chaine)
Application.Volatile
p = InStr(chaine, "DE ")
If p > 0 Then
temp = Replace(chaine, "DE ", "De ")
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = "DE " & Mid(temp, i + 2)
Else
i = Len(chaine)
Do While Asc(Mid(chaine, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = Mid(chaine, i + 2)
End If
End Function

http://cjoint.com/?itfMDLy8Aa

JB
http://boisgontierjacques.free.fr/




On 18 août, 18:41, "Infogroup" wrote:
Re-Bonjour à tous,

Je travaille actuellement dans une base de données d'adresses.

Dans la colonne A, j'ai les civilités, prénoms et noms
Mais voilà, il y a le problème de la diversité des écritures.

Exemples :

En A1 => M & Mme B. & H. DE PENASTOUR
En A2 => M & Mme Roger FAUCHEURO
En A3 => M & Mme BIDON
En A4 => Dr FRONTINO

Avec ces 4 exemples ci-dessus, je voudrais obtenir :
En B1 => DE PENASTOUR
En B2 => FAUCHEURO
En B3 => BIDON
En B4 => FRONTINO

Je pense qu'il faut passer par vba

J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

Merci par avance pour vos solutions éventuelles

Cordialement

Infogroup


Avatar
Infogroup
Merci JB, tout fonctionne OK, tu es absolument génial !

Très bonne journée

Cdl

Infogroup


"JB" a écrit dans le message de
news:
Bonjour,

avec fonction perso.

Function Nom(chaine)
Application.Volatile
p = InStr(chaine, "DE ")
If p > 0 Then
temp = Replace(chaine, "DE ", "De ")
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = "DE " & Mid(temp, i + 2)
Else
i = Len(chaine)
Do While Asc(Mid(chaine, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = Mid(chaine, i + 2)
End If
End Function

http://cjoint.com/?itfMDLy8Aa

JB
http://boisgontierjacques.free.fr/




On 18 août, 18:41, "Infogroup" wrote:
Re-Bonjour à tous,

Je travaille actuellement dans une base de données d'adresses.

Dans la colonne A, j'ai les civilités, prénoms et noms
Mais voilà, il y a le problème de la diversité des écritures.

Exemples :

En A1 => M & Mme B. & H. DE PENASTOUR
En A2 => M & Mme Roger FAUCHEURO
En A3 => M & Mme BIDON
En A4 => Dr FRONTINO

Avec ces 4 exemples ci-dessus, je voudrais obtenir :
En B1 => DE PENASTOUR
En B2 => FAUCHEURO
En B3 => BIDON
En B4 => FRONTINO

Je pense qu'il faut passer par vba

J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

Merci par avance pour vos solutions éventuelles

Cordialement

Infogroup


Avatar
Infogroup
Bonjour JB,

Effectivement, la fonction est OK, mais je viens de découvrir un petit " bug
? "
Si j'ai la valeur => M & Mme C. LOUVET, j'obtiens avec cette fonction C.
LOUVET alors que je voudrais obtenir LOUVET

sans doute une petite adaptation ?

en tous cas merci par avance de bien vouloir te repencher sur ce pb.

Cdl

Infogroup



"Infogroup" a écrit dans le message de
news:%
Merci JB, tout fonctionne OK, tu es absolument génial !

Très bonne journée

Cdl

Infogroup


"JB" a écrit dans le message de
news:
Bonjour,

avec fonction perso.

Function Nom(chaine)
Application.Volatile
p = InStr(chaine, "DE ")
If p > 0 Then
temp = Replace(chaine, "DE ", "De ")
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = "DE " & Mid(temp, i + 2)
Else
i = Len(chaine)
Do While Asc(Mid(chaine, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = Mid(chaine, i + 2)
End If
End Function

http://cjoint.com/?itfMDLy8Aa

JB
http://boisgontierjacques.free.fr/




On 18 août, 18:41, "Infogroup" wrote:
Re-Bonjour à tous,

Je travaille actuellement dans une base de données d'adresses.

Dans la colonne A, j'ai les civilités, prénoms et noms
Mais voilà, il y a le problème de la diversité des écritures.

Exemples :

En A1 => M & Mme B. & H. DE PENASTOUR
En A2 => M & Mme Roger FAUCHEURO
En A3 => M & Mme BIDON
En A4 => Dr FRONTINO

Avec ces 4 exemples ci-dessus, je voudrais obtenir :
En B1 => DE PENASTOUR
En B2 => FAUCHEURO
En B3 => BIDON
En B4 => FRONTINO

Je pense qu'il faut passer par vba

J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

Merci par avance pour vos solutions éventuelles

Cordialement

Infogroup





Avatar
JB
Function Nom(chaine)
Application.Volatile
temp = chaine ' Replace(chaine, ".", " ")
p = InStr(temp, "DE ")
If p > 0 Then
temp = Replace(temp, "DE ", "De ")
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = "DE " & Mid(temp, i + 2)
Else
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And Mid(temp, i, 1) <> "." And
i > 1
i = i - 1
Loop
Nom = Mid(temp, i + 2)
End If
End Function

http://cjoint.com/?itj4MqK78m

JB
http://boisgontierjacques.free.fr/

On 19 août, 09:25, "Infogroup" wrote:
Bonjour JB,

Effectivement, la fonction est OK, mais je viens de découvrir un petit " bug
? "
Si j'ai la valeur => M & Mme C. LOUVET, j'obtiens avec cette fonction C .
LOUVET alors que je voudrais obtenir LOUVET

sans doute une petite adaptation ?

en tous cas merci par avance de bien vouloir te repencher sur ce pb.

Cdl

Infogroup

"Infogroup" a écrit dans le message denews:%23W



> Merci JB, tout fonctionne OK, tu es absolument génial !

> Très bonne journée

> Cdl

> Infogroup

> "JB" a écrit dans le message de
>news: .
> Bonjour,

> avec fonction perso.

> Function Nom(chaine)
>   Application.Volatile
>   p = InStr(chaine, "DE ")
>   If p > 0 Then
>     temp = Replace(chaine, "DE ", "De ")
>     i = Len(temp)
>     Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
>       i = i - 1
>     Loop
>     Nom = "DE " & Mid(temp, i + 2)
>   Else
>     i = Len(chaine)
>     Do While Asc(Mid(chaine, i, 1)) < 96 And i > 1
>       i = i - 1
>     Loop
>     Nom = Mid(chaine, i + 2)
>   End If
> End Function

>http://cjoint.com/?itfMDLy8Aa

> JB
>http://boisgontierjacques.free.fr/

> On 18 août, 18:41, "Infogroup" wrote:
>> Re-Bonjour à tous,

>> Je travaille actuellement dans une base de données d'adresses.

>> Dans la colonne A, j'ai les civilités, prénoms et noms
>> Mais voilà, il y a le problème de la diversité des écritures.

>> Exemples :

>> En A1 => M & Mme B. & H. DE PENASTOUR
>> En A2 => M & Mme Roger FAUCHEURO
>> En A3 => M & Mme BIDON
>> En A4 => Dr FRONTINO

>> Avec ces 4 exemples ci-dessus, je voudrais obtenir :
>> En B1 => DE PENASTOUR
>> En B2 => FAUCHEURO
>> En B3 => BIDON
>> En B4 => FRONTINO

>> Je pense qu'il faut passer par vba

>> J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

>> Merci par avance pour vos solutions éventuelles

>> Cordialement

>> Infogroup- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Infogroup
Encore merci JB, cette fois tout est OK

Cdl

Infogroup


"JB" a écrit dans le message de
news:

Function Nom(chaine)
Application.Volatile
temp = chaine ' Replace(chaine, ".", " ")
p = InStr(temp, "DE ")
If p > 0 Then
temp = Replace(temp, "DE ", "De ")
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
i = i - 1
Loop
Nom = "DE " & Mid(temp, i + 2)
Else
i = Len(temp)
Do While Asc(Mid(temp, i, 1)) < 96 And Mid(temp, i, 1) <> "." And
i > 1
i = i - 1
Loop
Nom = Mid(temp, i + 2)
End If
End Function

http://cjoint.com/?itj4MqK78m

JB
http://boisgontierjacques.free.fr/

On 19 août, 09:25, "Infogroup" wrote:
Bonjour JB,

Effectivement, la fonction est OK, mais je viens de découvrir un petit "
bug
? "
Si j'ai la valeur => M & Mme C. LOUVET, j'obtiens avec cette fonction C.
LOUVET alors que je voudrais obtenir LOUVET

sans doute une petite adaptation ?

en tous cas merci par avance de bien vouloir te repencher sur ce pb.

Cdl

Infogroup

"Infogroup" a écrit dans le message
denews:%



> Merci JB, tout fonctionne OK, tu es absolument génial !

> Très bonne journée

> Cdl

> Infogroup

> "JB" a écrit dans le message de
>news:
> Bonjour,

> avec fonction perso.

> Function Nom(chaine)
> Application.Volatile
> p = InStr(chaine, "DE ")
> If p > 0 Then
> temp = Replace(chaine, "DE ", "De ")
> i = Len(temp)
> Do While Asc(Mid(temp, i, 1)) < 96 And i > 1
> i = i - 1
> Loop
> Nom = "DE " & Mid(temp, i + 2)
> Else
> i = Len(chaine)
> Do While Asc(Mid(chaine, i, 1)) < 96 And i > 1
> i = i - 1
> Loop
> Nom = Mid(chaine, i + 2)
> End If
> End Function

>http://cjoint.com/?itfMDLy8Aa

> JB
>http://boisgontierjacques.free.fr/

> On 18 août, 18:41, "Infogroup" wrote:
>> Re-Bonjour à tous,

>> Je travaille actuellement dans une base de données d'adresses.

>> Dans la colonne A, j'ai les civilités, prénoms et noms
>> Mais voilà, il y a le problème de la diversité des écritures.

>> Exemples :

>> En A1 => M & Mme B. & H. DE PENASTOUR
>> En A2 => M & Mme Roger FAUCHEURO
>> En A3 => M & Mme BIDON
>> En A4 => Dr FRONTINO

>> Avec ces 4 exemples ci-dessus, je voudrais obtenir :
>> En B1 => DE PENASTOUR
>> En B2 => FAUCHEURO
>> En B3 => BIDON
>> En B4 => FRONTINO

>> Je pense qu'il faut passer par vba

>> J'ai essayé les fonctions STXT-CHERCHE etc. mais sans résultats

>> Merci par avance pour vos solutions éventuelles

>> Cordialement

>> Infogroup- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -