#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