Rapport de message :*
 

Correction d'adresse postale dans une cellule

Titre du sujet : Correction d'adresse postale dans une cellule
par Althéa le 05/03/2014 13:29:33

Bonjour,

Je dois créer un tableau, qui reprend les coordonnées de nombreuses personnes. Mon fichier doit être envoyé à différentes entités et aucune ne respecte les règles de remplissage que je lui demande (nom en majuscule, prénom avec la première lettre en majuscule et le reste en minuscule....).

 

En cherchant sur le site, j'ai trouvé comment forcer la saisie en majuscule avec la fonction éponyme et j'utilise également la fonction NOMPROPRE.

 

Toutefois, j'aimerais que dans le champ "Adresse" de mon tableau, il n’y ait pas de majuscules aux mots « rue », « avenue », etc., ni aux articles « du », « de », etc.

 

Une adresse doit donc ressembler à : 12 rue de la Paix et non pas 12 Rue De La Paix (que j’obtiens avec la fonction NOMPROPRE).

 

J’ai donc trouvé sur internet la fonction suivante :

 

Function NomPropre2(nom As String)

  temp = Application.Proper(nom)

  tbl = Array("De ", "Du ", "Des ", "Le ", "La ", "À ", "En ", "Au ", "Bis ", "Ter ", "D'", "L'", "Aux ", Rue ", "Avenue ", "Boulevard ", "Place ", "Allée ")

  For i = 0 To UBound(tbl)

    temp = Replace(temp, tbl(i), LCase(tbl(i)))

  Next i

  '---

  p = InStr(temp, "'")            ' position de '

  If p > 0 Then

    If Mid(temp, p - 2, 1) <> " " Then

      Mid(temp, p + 1, 1) = LCase(Mid(temp, p + 1, 1))

    End If

  End If

  NomPropre2 = temp

End Function

 

Cette fonction marche bien, mais pour cela je dois passer par une autre feuille, alors que les fonctions « MAJUSCULE » ou « NOMPROPRE » font la correction automatiquement dans la cellule que je complète.

 

Est-il possible de faire que la saisie soit corrigée automatiquement ? Je voudrais que le fichier que j’envoie ne comporte qu’un seul onglet.

 

J’espère que ma demande est claire et que vous connaissez un moyen de m’aider.

 

Je vous en remercie par avance.

 

Althéa