Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 15 July 2005 14:04

Le-jeune Laurent
Invité

minuscules et majuscules

De: Laurent Le Jeune
Bonjour.
Dans une table contenant le nom de commmunes en majuscules, je voudrais afficher ces mêmes noms avec la première lettre en majuscules et les autres en minuscules. Le problème est qu'il y a des noms composés. Avec le script nompropre.cal, que j'ai trouvé sur support.esrifrance.fr, ça ne marche que sur le premier mot.
Exemple: CAMARET-SUR-MER, avec le script nompropre.cal, que j'ai trouvé sur support.esrifrance.fr, ça donne Camaret-sur-mer; moi je veux Camaret-sur-Mer.
De plus, sur des mots comme "sur","le","la","du", on ne doit pas mettre de majuscule sauf quand ils se trouvent au début d'un nom: ex: Pointe de la Torche; Le Guilvinec, Camaret-sur-Mer.

Merci.

 

#2 Mon 18 July 2005 12:31

Hervé BOHBOT
Invité

Re: minuscules et majuscules

De: Laurent Le Jeune

>Exemple: CAMARET-SUR-MER, avec le script nompropre.cal, que j'ai trouvé sur support.esrifrance.fr, ça donne Camaret-sur-mer; moi je veux Camaret-sur-Mer.


Bonjour,


Le fichier nomlieu.cal attaché fait ce travail. Il suffit de modifier le nom de champ que vous voulez utiliser (dans l'exemple [NOM_CHF]).


Une boucle distingue les éléments séparés par "-", " " ou "'" et met leur initiale en majuscule (si l'élément n'est pas dans la liste "de,du,le,la,les,lès,lez,sur,en,des" ou est le premier mot) et le reste en minuscules. Vous pouvez bien sûr modifier ces deux listes.


Hervé




--
passerelle antivirus du campus CNRS de Montpellier
--


---------------------------------------------------------------------

Desinscription: envoyez un message a: arcsig-



Pour obtenir de l'aide, ecrivez a: arcsig-help@texte-a-enlever.georezo.net



Retrouvez les autres listes du portail geomatique sur http://geomatique.georezo.net

 

#3 Thu 21 July 2005 16:47

Laurent Lejeune
Invité

Re: minuscules et majuscules

De: Laurent Le Jeune
je vous remercie de votre réponse, mais je ne trouve pas ce script nomlieu.cal.

 

#4 Fri 04 May 2007 16:41

Hervé Bohbot
Juste Inscrit !
Date d'inscription: 4 May 2007
Messages: 2

Re: minuscules et majuscules

Voila le code du fichier nomlieu.cal :

  Dim subStr As String, oldStr As String, newStr As String
  Dim Sep As String
  Dim i As Integer
 
  oldStr = LCase(Trim( [NOM_CHF] ))
 
  For i = 1 To Len(oldStr)
    If InStr("- '", Mid(oldStr, i, 1)) <> 0 Then
       If (InStr("de,du,le,la,les,lès,lez,sur,en,des", subStr) = 0) Or (newStr = "") Then
          subStr = UCase(Left(subStr, 1)) + Mid(subStr, 2, Len(subStr) - 1)
       End If
       newStr = newStr + subStr + Mid(oldStr, i, 1)
       subStr = ""
    Else
       subStr = subStr + Mid(oldStr, i, 1)
    End If
  Next i
  newStr = newStr + UCase(Left(subStr, 1)) + Mid(subStr, 2, Len(subStr) - 1)

__esri_field_calculator_splitter__
newStr

Hors ligne

 

#5 Wed 06 June 2007 13:01

JR
Participant occasionnel
Date d'inscription: 4 Apr 2006
Messages: 19

Re: minuscules et majuscules

En faisant une recherche sur le forum, je suis tombé sur ce code qui répondrait parfaitement à mon problème. Malheureusement quand je l'intègre dans la calculatrice de valeurs de champ, je reçois un message d'erreur d'execution du code vba et mes piètres connaissances dans ce language ne me permettent pas de le corriger.....une petite idée???

Merci d'avance


Dim subStr As String, oldStr As String, newStr As String
  Dim Sep As String
  Dim i As Integer
 
  oldStr = LCase(Trim( [NOM_CHF] ))
 
  For i = 1 To Len(oldStr)
    If InStr("- '", Mid(oldStr, i, 1)) <> 0 Then
       If (InStr("de,du,le,la,les,lès,lez,sur,en,des", subStr) = 0) Or (newStr = "") Then
          subStr = UCase(Left(subStr, 1)) + Mid(subStr, 2, Len(subStr) - 1)
       End If
       newStr = newStr + subStr + Mid(oldStr, i, 1)
       subStr = ""
    Else
       subStr = subStr + Mid(oldStr, i, 1)
    End If
  Next i
  newStr = newStr + UCase(Left(subStr, 1)) + Mid(subStr, 2, Len(subStr) - 1)

__esri_field_calculator_splitter__
newStr

Hors ligne

 

Pied de page des forums

Powered by FluxBB