Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise en forme dans un textbox d'un userform

3 réponses
Avatar
xavier
bonjour,

voilà mon problème est le suivant,

J'ai un fichier comprennant les adresses de client belges et français. J'ai
fiat une macro qui me permet d'encoder via un userform toutes les coordonnées
de la personne et chaque textbox remplie permet de remplir une colonne (nom,
prénom, adresse, téléphone, portable, pays,....). Comme nous allons avoir un
plus de client belge, j'ai donc du rajouter une colonne pays afin de
différencier les clients (auparavant c'était exclusivement des clients
français). Le problème vient du champ avec le num de tél. Dans le textbox
pour éviter d'avoir différente mise en forme du numéro je demande que le
numéro soit introduit à la suite avec le 0 sans espace (0102030405) dans la
colonne correspondant au num de tél j'avais fait un format de cellule spécial
num de tel français. Le problème c'est qu'avec les numéros belges je ne peux
plus le faire et comme ce n'est qu'une mise en page je n'ai plus les 0.
Je pense que la meilleure solution est de pouvoir lors de l'encodage lui
faire faire la mise en forme dans le textbox (via cange ou afterupdate) et
lui faire copier dans la cellule qui aura une mise en forme texte. comme ça
je garde toutes les coordonnées et la mise en forme est adaptée sous forme
d'une condition au pays. Mais je ne sais pas comment faire pourlui dire de me
transformer 0102030405 en 01 02 03 04 05 si france et 069010203 en 069 01 02
03 pour belgique parexemple
merci de votre réponse

3 réponses

Avatar
Michel Gaboly
Bonjour,

Tu peux faire un test sur le pays ou sur la longueur du numéro de tà ©léphone (avec la fonction VBA Len())
puisqu'apparemment les numéros de téléphone belge ont 1 ca ractère de moins.

Si tu veux éliminer l'incidence d'éventuels espaces, combines L en() avec Trim() ou Replace().


NB - Replace, n'est disponible qu'avec les versions Windows d'Excel, à partir d'Excel 2000. Avec Excel 97 ou une version
Mac, il faut employer Application.WorksheetFunction.Substitute à la place.

bonjour,

voilà mon problème est le suivant,

J'ai un fichier comprennant les adresses de client belges et franç ais. J'ai
fiat une macro qui me permet d'encoder via un userform toutes les coord onnées
de la personne et chaque textbox remplie permet de remplir une colonne (nom,
prénom, adresse, téléphone, portable, pays,....). Comme nous allons avoir un
plus de client belge, j'ai donc du rajouter une colonne pays afin de
différencier les clients (auparavant c'était exclusivement de s clients
français). Le problème vient du champ avec le num de tél . Dans le textbox
pour éviter d'avoir différente mise en forme du numéro j e demande que le
numéro soit introduit à la suite avec le 0 sans espace (01020 30405) dans la
colonne correspondant au num de tél j'avais fait un format de cell ule spécial
num de tel français. Le problème c'est qu'avec les numér os belges je ne peux
plus le faire et comme ce n'est qu'une mise en page je n'ai plus les 0.
Je pense que la meilleure solution est de pouvoir lors de l'encodage lu i
faire faire la mise en forme dans le textbox (via cange ou afterupdate) et
lui faire copier dans la cellule qui aura une mise en forme texte. comm e ça
je garde toutes les coordonnées et la mise en forme est adapté e sous forme
d'une condition au pays. Mais je ne sais pas comment faire pourlui dire de me
transformer 0102030405 en 01 02 03 04 05 si france et 069010203 en 069 01 02
03 pour belgique parexemple
merci de votre réponse



--
Cordialement,

Michel Gaboly
www.gaboly.com

Avatar
Daniel
Bonjour.

Private Sub TextBox1_AfterUpdate()
If Len(TextBox1.Value) = 10 And IsNumeric(TextBox1.Value) Then
TextBox1.Value = Format(TextBox1.Value, "0# ## ## ## ##")
ElseIf Len(TextBox1.Value) = 9 And IsNumeric(TextBox1.Value) Then
TextBox1.Value = Format(TextBox1.Value, "0## ## ## ##")
Else
MsgBox "erreur de saisie"
End If
End Sub

Cordialement.
Daniel
"xavier" a écrit dans le message de news:

bonjour,

voilà mon problème est le suivant,

J'ai un fichier comprennant les adresses de client belges et français.
J'ai
fiat une macro qui me permet d'encoder via un userform toutes les
coordonnées
de la personne et chaque textbox remplie permet de remplir une colonne
(nom,
prénom, adresse, téléphone, portable, pays,....). Comme nous allons avoir
un
plus de client belge, j'ai donc du rajouter une colonne pays afin de
différencier les clients (auparavant c'était exclusivement des clients
français). Le problème vient du champ avec le num de tél. Dans le textbox
pour éviter d'avoir différente mise en forme du numéro je demande que le
numéro soit introduit à la suite avec le 0 sans espace (0102030405) dans
la
colonne correspondant au num de tél j'avais fait un format de cellule
spécial
num de tel français. Le problème c'est qu'avec les numéros belges je ne
peux
plus le faire et comme ce n'est qu'une mise en page je n'ai plus les 0.
Je pense que la meilleure solution est de pouvoir lors de l'encodage lui
faire faire la mise en forme dans le textbox (via cange ou afterupdate) et
lui faire copier dans la cellule qui aura une mise en forme texte. comme
ça
je garde toutes les coordonnées et la mise en forme est adaptée sous forme
d'une condition au pays. Mais je ne sais pas comment faire pourlui dire de
me
transformer 0102030405 en 01 02 03 04 05 si france et 069010203 en 069 01
02
03 pour belgique parexemple
merci de votre réponse


Avatar
xavier
Merci c'est bien ce que je cherchais à faire


Bonjour.

Private Sub TextBox1_AfterUpdate()
If Len(TextBox1.Value) = 10 And IsNumeric(TextBox1.Value) Then
TextBox1.Value = Format(TextBox1.Value, "0# ## ## ## ##")
ElseIf Len(TextBox1.Value) = 9 And IsNumeric(TextBox1.Value) Then
TextBox1.Value = Format(TextBox1.Value, "0## ## ## ##")
Else
MsgBox "erreur de saisie"
End If
End Sub

Cordialement.
Daniel
"xavier" a écrit dans le message de news:

bonjour,

voilà mon problème est le suivant,

J'ai un fichier comprennant les adresses de client belges et français.
J'ai
fiat une macro qui me permet d'encoder via un userform toutes les
coordonnées
de la personne et chaque textbox remplie permet de remplir une colonne
(nom,
prénom, adresse, téléphone, portable, pays,....). Comme nous allons avoir
un
plus de client belge, j'ai donc du rajouter une colonne pays afin de
différencier les clients (auparavant c'était exclusivement des clients
français). Le problème vient du champ avec le num de tél. Dans le textbox
pour éviter d'avoir différente mise en forme du numéro je demande que le
numéro soit introduit à la suite avec le 0 sans espace (0102030405) dans
la
colonne correspondant au num de tél j'avais fait un format de cellule
spécial
num de tel français. Le problème c'est qu'avec les numéros belges je ne
peux
plus le faire et comme ce n'est qu'une mise en page je n'ai plus les 0.
Je pense que la meilleure solution est de pouvoir lors de l'encodage lui
faire faire la mise en forme dans le textbox (via cange ou afterupdate) et
lui faire copier dans la cellule qui aura une mise en forme texte. comme
ça
je garde toutes les coordonnées et la mise en forme est adaptée sous forme
d'une condition au pays. Mais je ne sais pas comment faire pourlui dire de
me
transformer 0102030405 en 01 02 03 04 05 si france et 069010203 en 069 01
02
03 pour belgique parexemple
merci de votre réponse