Séparer code postal et ville

ascal44

XLDnaute Occasionnel
Bonjour , je voudrais séparer le code postal et la ville (la mettre majuscules) dans deux Textbox à partir d'une ligne sélectionnée dans une Listbox.
Je joint une photo de l'userform et mes début de code :

uoqwDFE3J


Code:
Private Sub Resultat_Click()
Dim i As Integer
''''''''''''
Dim ctrl As Control
For i = 1 To 2
    Me.Controls("TextBox" & i).Value = Me.Resultat.List(, i - 1)
Next i


'''''''


End Sub
 

Hulk

XLDnaute Barbatruc
Re : Séparer code postal et ville

Hello,

Pour ce qui est de séparer le CP et la ville dans les deux TextBox, ton code est apparemment bon.

Pour forcer les majuscules, tu peux rajouter
Code:
TextBox2.Value = UCase(TextBox2.Value)'Majuscule
après le Next i

Et au cas ou, pour forcer les minuscules c'est..
Code:
TextBox2.Value = LCase(TextBox2.Value) 'Minuscule
Cdt, Hulk.
 
G

Guest

Guest
Re : Séparer code postal et ville

Bonjour le fil,

il me semble que notre ami ait oublié Listindex dans

Code:
 Me.Controls("TextBox" & i).Value = Me.Resultat.List([SIZE=3][COLOR=red]Resultat.Listindex[/COLOR][/SIZE], i - 1)

A+
 

ascal44

XLDnaute Occasionnel
Re : Séparer code postal et ville

Merci à vous tous ,
mais de mon coté les éléments code postal et ville ne se répartissent pas dans les textbox.

Voici comment il apparait dans le textbox1 :

45120 - Châlette-sur-Loing (14591 hab.) [45068] - Lat=48,02 / Lon=2,73
 

bqtr

XLDnaute Accro
Re : Séparer code postal et ville

Bonsoir à tous,

Une façon de faire pour récupérer le CP et la ville en majuscule :
Code:
Private Sub Resultat_Click()

TextBox1 = Split(Resultat.Value)(0)
TextBox2 = UCase(Mid(Resultat.Value, 9, (InStr(1, Resultat.Value, "(") - 10)))

End Sub

A+
 

bqtr

XLDnaute Accro
Re : Séparer code postal et ville

Re,

- La fonction Split(chaine, séparateur) permet de découper une chaine en fonction d'un séparateur, par défaut l'espace. (c'est pour ça que le séparateur n'est pas précisé ici). Le séparateur peut être un point, une virgule, ....... et est mis entre guillemets.
Le résultat est mis dans un tableau. Le premier élément de ce tableau à pour index 0 et c'est celui que l'on souhaite récupérer. Le deuxième élément du tableau sera le tiret - (index 1) .

- La fonction Ucase(chaine) permet de mettre une chaine en majuscule.

- La fonction Mid(chaine, position de départ, nombre de caractère à extraire)
Cette fonction permet d'extraire un nombre de caractère consécutif d'une chaine et de déterminer à partir de quel caractère il faut commencer.
Dans ton exemple on commence toujours l'extraction à partir du 9ème, 1ère lettre de chaque ville. Le nombre de caractère à extraire est déterminé par la fonction Instr()

- La fonction Instr(position de départ, chaine, caractère recherché) donne la position du caractère recherché dans la chaine.
Ici on recherche la position du caractère ( (parenthèse) qui suit toujours le nom de la ville en partant du premier caractère de la chaine. Une fois obtenu ce nombre on lui enlève 10. 10 correspond au 5 chiffres du CP, de l'espace, du tiret, de l'espace avant le nom de la ville, puis de l'espace après le nom de la ville et enfin du caractère recherché. (5+1+1+1+1+1)

Pour plus de précision n'hésite pas à te servir de la touche F1, sélectionne le mot dans ton code et appuie sur F1.

Bonne journée

A+
 

Discussions similaires

Réponses
6
Affichages
202

Statistiques des forums

Discussions
311 711
Messages
2 081 794
Membres
101 817
dernier inscrit
carvajal