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 Wed 04 April 2012 10:07

Gaelo21
Participant occasionnel
Date d'inscription: 28 Jun 2006
Messages: 12

Etiquettes

Bonjour à tous,

Je réalise une carte ou je fais apparaître le nom des communes. Toutefois, pour une large majorité d'entre elles, elles disposent de noms composés de 2 à 4 éléments. Je souhaiterais pouvoir renvoyer à la ligne à chaque " - " pour que le nom s'écrive non pas sur une ligne, mais sur 2, 3 ou 4 lignes selon la longueur du nom de la commune. C'est une requête sql ? Si oui, merci de donner la formule.

@ bientôt

Hors ligne

 

#2 Wed 04 April 2012 11:30

Meums
Participant actif
Lieu: Bordeaux
Date d'inscription: 26 Mar 2009
Messages: 98

Re: Etiquettes

Bonjour Gaelo21,

VbNewline !!!!

Crée un champ d'étiquetage sur lequel tu vas recopier les noms des communes (calculer les valeurs)
Ensuite il y a deux solutions :

1 - Essaye cette formule qui permet de remplacer un caractère ou une suite de caractères par un autre où l'expression de remplacement sera VbNewline (qui permet d'aller à la ligne) :
                    replace([Monchamp], " - ", VbNewline)
Pour cela tu passes également par calculer les valeurs ds ta données attributaire et tu remplace Monchamp par le nom de ton champ...

2 - Autre solution qui fonctionne car souvent utilisée, un code très simple adapté à partir d'un post du GeoRezo afin de remplacer des caractères spéciaux par d'autres. Toujours en données attrib / Calculer les valeurs :

Code:

Dim var1, var2, var3

var1 = [MonChamp] 
var2 = Len(var1) + 1
var3 = 1

While var3 <> var2
    Dim var4, var5, var6
    var4 = Mid(var1, var3, 1)
    
    If var4 = " - " Then
        var5 = Mid(var1, 1, var3 - 1)
        var6 = Mid(var1, var3 + 1, var2 - var3 )
        var1 = var5 + VbNewline + var6
        var3 = var3 + 1
    
    Else
        var3 = var3 + 1    
    End If
Wend

Voila, just try and enjoy
Emeric

Hors ligne

 

Pied de page des forums

Powered by FluxBB