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

Déconconténer cellule pour renseigner des Textbox

12 réponses
Avatar
Alex
Bonjour =E0 tous,

Voici mon probl=E8me, dans un userform en mode "Cr=E9ation", j'ai 3
textboxs (Nom, Civilit=E9 et T=E9l=E9phone) qui apr=E8s validation s'inscri=
ve
sur ma feuille dans une seule et m=EAme cellule, par concat=E9nation des
textboxs de la fa=E7on suivante : Entre le Nom et la civilit=E9, j'ai
ajout=E9 un espace, et unChr(10) entre la civilit=E9 et le t=E9l=E9phone.
Jusque l=E0 pas de souci.
Maintenant je voudrais faire l'inverse, toujours sur le m=EAme useform,
mais cette fois en mode "Consultation", je sais rappatrier les donn=E9es
d'une cellule dans un textbox, mais je voudrais remettre le nom dans
le textbox Nom, la civilit=E9 dans le textbox civilit=E9 et le t=E9l=E9phon=
e
dans le textbox t=E9l=E9phone, en sachant que j'ai l'espace entre le nom
et la civilit=E9 et le chr(10) entre la civilit=E9 et le nom.
Quelqu'un aurait-il une solution ?
Merci par avance de vos r=E9ponses.
Cordialement.
Alex

10 réponses

1 2
Avatar
michdenis
Bonjour,

La fonction split requiert Excel 2000 ou plus récent
Voici un exemple :
Le code dans le formulaire :
'-----------------------------
Dim X as variant
with worksheets("NomDeLaFeuille")
X = Split(.Range("A1")," ")
End with

with Me
.textbox1 = x(0)
.textbox2 = x(1)
.textbox3 = x(2)
End with
'-----------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Voici mon problème, dans un userform en mode "Création", j'ai 3
textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
sur ma feuille dans une seule et même cellule, par concaténation des
textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
ajouté un espace, et unChr(10) entre la civilité et le téléphone.
Jusque là pas de souci.
Maintenant je voudrais faire l'inverse, toujours sur le même useform,
mais cette fois en mode "Consultation", je sais rappatrier les données
d'une cellule dans un textbox, mais je voudrais remettre le nom dans
le textbox Nom, la civilité dans le textbox civilité et le téléphone
dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
et la civilité et le chr(10) entre la civilité et le nom.
Quelqu'un aurait-il une solution ?
Merci par avance de vos réponses.
Cordialement.
Alex
Avatar
JC Duce
Bonjour,

Sauf qu'en cas de nom ou de prénom composé, séparés par un espace, ca ne
fonctionnera plus !!!

En effet, Excel ne saura pas a quoi rattacher la chaine du milieu :
DURAND JEAN PIERRE = DURAND JEAN + PIERRE ou DURAND + JEAN PIERRE ?

Je te conseillerai donc plutôt de séparer les données de la forme de
restitution. C'est à dire, conserver chaque contenu de textbox dans une seule
cellule. Ca sera bien plus simple pour aller relire les données.

Après rien ne t'empêche, via une autre feuille par exemple, de modifier la
mise en page en faisant référence à tes données "de base". C'est à mon avis
bien plus fiable ...

Bonne journée.

"michdenis" wrote:

Bonjour,

La fonction split requiert Excel 2000 ou plus récent
Voici un exemple :
Le code dans le formulaire :
'-----------------------------
Dim X as variant
with worksheets("NomDeLaFeuille")
X = Split(.Range("A1")," ")
End with

with Me
.textbox1 = x(0)
.textbox2 = x(1)
.textbox3 = x(2)
End with
'-----------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Voici mon problème, dans un userform en mode "Création", j'ai 3
textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
sur ma feuille dans une seule et même cellule, par concaténation des
textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
ajouté un espace, et unChr(10) entre la civilité et le téléphone.
Jusque là pas de souci.
Maintenant je voudrais faire l'inverse, toujours sur le même useform,
mais cette fois en mode "Consultation", je sais rappatrier les données
d'une cellule dans un textbox, mais je voudrais remettre le nom dans
le textbox Nom, la civilité dans le textbox civilité et le téléphone
dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
et la civilité et le chr(10) entre la civilité et le nom.
Quelqu'un aurait-il une solution ?
Merci par avance de vos réponses.
Cordialement.
Alex

.



Avatar
Mgr T. Banni
sacré michel, il a encore déconconténé sur ce coup-là....
c'était pourtant fastoche :-)
Mgr T.B.

"JC Duce" a écrit dans le message de news:
Bonjour,

Sauf qu'en cas de nom ou de prénom composé, séparés par un espace, ca ne
fonctionnera plus !!!

En effet, Excel ne saura pas a quoi rattacher la chaine du milieu :
DURAND JEAN PIERRE = DURAND JEAN + PIERRE ou DURAND + JEAN PIERRE ?

Je te conseillerai donc plutôt de séparer les données de la forme de
restitution. C'est à dire, conserver chaque contenu de textbox dans une seule
cellule. Ca sera bien plus simple pour aller relire les données.

Après rien ne t'empêche, via une autre feuille par exemple, de modifier la
mise en page en faisant référence à tes données "de base". C'est à mon avis
bien plus fiable ...

Bonne journée.

"michdenis" wrote:

Bonjour,

La fonction split requiert Excel 2000 ou plus récent
Voici un exemple :
Le code dans le formulaire :
'-----------------------------
Dim X as variant
with worksheets("NomDeLaFeuille")
X = Split(.Range("A1")," ")
End with

with Me
.textbox1 = x(0)
.textbox2 = x(1)
.textbox3 = x(2)
End with
'-----------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Voici mon problème, dans un userform en mode "Création", j'ai 3
textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
sur ma feuille dans une seule et même cellule, par concaténation des
textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
ajouté un espace, et unChr(10) entre la civilité et le téléphone.
Jusque là pas de souci.
Maintenant je voudrais faire l'inverse, toujours sur le même useform,
mais cette fois en mode "Consultation", je sais rappatrier les données
d'une cellule dans un textbox, mais je voudrais remettre le nom dans
le textbox Nom, la civilité dans le textbox civilité et le téléphone
dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
et la civilité et le chr(10) entre la civilité et le nom.
Quelqu'un aurait-il une solution ?
Merci par avance de vos réponses.
Cordialement.
Alex

.





Avatar
michdenis
À défaut d'être plus précis dans sa demande, ceci se veut
une réponse générale. S’il éprouve des difficultés, il peut
toujours demander une question supplémentaire en donnant
des exemples de "nom" qu'il retrouve dans son tableau et qui
lui pose problème.




"JC Duce" a écrit dans le message de groupe de
discussion :
Bonjour,

Sauf qu'en cas de nom ou de prénom composé, séparés par un espace, ca ne
fonctionnera plus !!!

En effet, Excel ne saura pas a quoi rattacher la chaine du milieu :
DURAND JEAN PIERRE = DURAND JEAN + PIERRE ou DURAND + JEAN PIERRE ?

Je te conseillerai donc plutôt de séparer les données de la forme de
restitution. C'est à dire, conserver chaque contenu de textbox dans une seule
cellule. Ca sera bien plus simple pour aller relire les données.

Après rien ne t'empêche, via une autre feuille par exemple, de modifier la
mise en page en faisant référence à tes données "de base". C'est à mon avis
bien plus fiable ...

Bonne journée.

"michdenis" wrote:

Bonjour,

La fonction split requiert Excel 2000 ou plus récent
Voici un exemple :
Le code dans le formulaire :
'-----------------------------
Dim X as variant
with worksheets("NomDeLaFeuille")
X = Split(.Range("A1")," ")
End with

with Me
.textbox1 = x(0)
.textbox2 = x(1)
.textbox3 = x(2)
End with
'-----------------------------


"Alex" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Voici mon problème, dans un userform en mode "Création", j'ai 3
textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
sur ma feuille dans une seule et même cellule, par concaténation des
textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
ajouté un espace, et unChr(10) entre la civilité et le téléphone.
Jusque là pas de souci.
Maintenant je voudrais faire l'inverse, toujours sur le même useform,
mais cette fois en mode "Consultation", je sais rappatrier les données
d'une cellule dans un textbox, mais je voudrais remettre le nom dans
le textbox Nom, la civilité dans le textbox civilité et le téléphone
dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
et la civilité et le chr(10) entre la civilité et le nom.
Quelqu'un aurait-il une solution ?
Merci par avance de vos réponses.
Cordialement.
Alex

.



Avatar
Alex
Merci à tous pour vos réponses.

Et je remercie tout particulièrement Michel, qui répond regulièrement
à mes nombreuses questions, et qui m'a permis, à moi "néophyte" de la
macro (3 jours d'initiation VBA) de bien avancer dans ce domaine, et
me contente bien de "sa réponse générale" lol

Mais je vais faire aussi plaisir à JC, en complétant ma question, à
savoir si je mets entre le nom et le prénom un tiret (- du 6 et sans
espace et sans chr(10)), est ce que la proposition de Michel
fonctionnera t elle ?

Et enfin, Michel me dit de mettre dans le formulaire les lignes de
commandes, mais où dois je les mettre ? Dans Userform_Activate ?

Moi je ne pourrais tester que demain quand je serai au travail.

En tout cas, Encore un grand merci de vos réponses

Alex
Avatar
michdenis
Bonjour Alex,

La fonction Split() utilise l'espace pour séparer les composantes
de la chaîne de caractères, résultat de ta concaténation.
Effectivement, si tu utilises dans la colonne des "NOMS", le tiret
en lieu et place de l'espace, cela fonctionnera très bien pour ce
qui est de retrouver dans ton textbox Nom, Civilité et Téléphone.

La fonction Rechercher/Remplacer du menu "édition" sait très bien
faire cela pour ce qui est de la colonne "Nom"

Dans ton textbox, si tu veux éliminer le tiret dans le nom, tu peux
utiliser quelque chose comme :
Me.Textbox1 = Application.Substitute(X(0),"-", " ")





"Alex" a écrit dans le message de groupe de discussion :

Merci à tous pour vos réponses.

Et je remercie tout particulièrement Michel, qui répond regulièrement
à mes nombreuses questions, et qui m'a permis, à moi "néophyte" de la
macro (3 jours d'initiation VBA) de bien avancer dans ce domaine, et
me contente bien de "sa réponse générale" lol

Mais je vais faire aussi plaisir à JC, en complétant ma question, à
savoir si je mets entre le nom et le prénom un tiret (- du 6 et sans
espace et sans chr(10)), est ce que la proposition de Michel
fonctionnera t elle ?

Et enfin, Michel me dit de mettre dans le formulaire les lignes de
commandes, mais où dois je les mettre ? Dans Userform_Activate ?

Moi je ne pourrais tester que demain quand je serai au travail.

En tout cas, Encore un grand merci de vos réponses

Alex
Avatar
JC Duce
:)

Loin de moi l'idée d'invalider ce que dit michel, mais je préfère rappeler
qu'il est toujours plus sain de séparer le fond de la forme, surtout en
informatique ...

JC (un autre michel en fait)
:)


"Mgr T. Banni" wrote:

sacré michel, il a encore déconconténé sur ce coup-là....
c'était pourtant fastoche :-)
Mgr T.B.

"JC Duce" a écrit dans le message de news:
> Bonjour,
>
> Sauf qu'en cas de nom ou de prénom composé, séparés par un espace, ca ne
> fonctionnera plus !!!
>
> En effet, Excel ne saura pas a quoi rattacher la chaine du milieu :
> DURAND JEAN PIERRE = DURAND JEAN + PIERRE ou DURAND + JEAN PIERRE ?
>
> Je te conseillerai donc plutôt de séparer les données de la forme de
> restitution. C'est à dire, conserver chaque contenu de textbox dans une seule
> cellule. Ca sera bien plus simple pour aller relire les données.
>
> Après rien ne t'empêche, via une autre feuille par exemple, de modifier la
> mise en page en faisant référence à tes données "de base". C'est à mon avis
> bien plus fiable ...
>
> Bonne journée.
>
> "michdenis" wrote:
>
>> Bonjour,
>>
>> La fonction split requiert Excel 2000 ou plus récent
>> Voici un exemple :
>> Le code dans le formulaire :
>> '-----------------------------
>> Dim X as variant
>> with worksheets("NomDeLaFeuille")
>> X = Split(.Range("A1")," ")
>> End with
>>
>> with Me
>> .textbox1 = x(0)
>> .textbox2 = x(1)
>> .textbox3 = x(2)
>> End with
>> '-----------------------------
>>
>>
>> "Alex" a écrit dans le message de groupe de discussion :
>>
>> Bonjour à tous,
>>
>> Voici mon problème, dans un userform en mode "Création", j'ai 3
>> textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
>> sur ma feuille dans une seule et même cellule, par concaténation des
>> textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
>> ajouté un espace, et unChr(10) entre la civilité et le téléphone.
>> Jusque là pas de souci.
>> Maintenant je voudrais faire l'inverse, toujours sur le même useform,
>> mais cette fois en mode "Consultation", je sais rappatrier les données
>> d'une cellule dans un textbox, mais je voudrais remettre le nom dans
>> le textbox Nom, la civilité dans le textbox civilité et le téléphone
>> dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
>> et la civilité et le chr(10) entre la civilité et le nom.
>> Quelqu'un aurait-il une solution ?
>> Merci par avance de vos réponses.
>> Cordialement.
>> Alex
>>
>> .
>>


.



Avatar
Mgr T. Banni
denis, alex, denis, pas michel :-)
T.B.

"Alex" a écrit dans le message de news:
Merci à tous pour vos réponses.

Et je remercie tout particulièrement Michel, qui répond regulièrement
à mes nombreuses questions
Avatar
Mgr T. Banni
denis, JC (un autre michel en fait), denis, pas michel :-)
T.B.

"JC Duce" a écrit dans le message de news:
:)

Loin de moi l'idée d'invalider ce que dit michel, mais je préfère rappeler
qu'il est toujours plus sain de séparer le fond de la forme, surtout en
informatique ...

JC (un autre michel en fait)
:)


"Mgr T. Banni" wrote:

sacré michel, il a encore déconconténé sur ce coup-là....
c'était pourtant fastoche :-)
Mgr T.B.

"JC Duce" a écrit dans le message de news:

> Bonjour,
>
> Sauf qu'en cas de nom ou de prénom composé, séparés par un espace, ca ne
> fonctionnera plus !!!
>
> En effet, Excel ne saura pas a quoi rattacher la chaine du milieu :
> DURAND JEAN PIERRE = DURAND JEAN + PIERRE ou DURAND + JEAN PIERRE ?
>
> Je te conseillerai donc plutôt de séparer les données de la forme de
> restitution. C'est à dire, conserver chaque contenu de textbox dans une seule
> cellule. Ca sera bien plus simple pour aller relire les données.
>
> Après rien ne t'empêche, via une autre feuille par exemple, de modifier la
> mise en page en faisant référence à tes données "de base". C'est à mon avis
> bien plus fiable ...
>
> Bonne journée.
>
> "michdenis" wrote:
>
>> Bonjour,
>>
>> La fonction split requiert Excel 2000 ou plus récent
>> Voici un exemple :
>> Le code dans le formulaire :
>> '-----------------------------
>> Dim X as variant
>> with worksheets("NomDeLaFeuille")
>> X = Split(.Range("A1")," ")
>> End with
>>
>> with Me
>> .textbox1 = x(0)
>> .textbox2 = x(1)
>> .textbox3 = x(2)
>> End with
>> '-----------------------------
>>
>>
>> "Alex" a écrit dans le message de groupe de discussion :
>>
>> Bonjour à tous,
>>
>> Voici mon problème, dans un userform en mode "Création", j'ai 3
>> textboxs (Nom, Civilité et Téléphone) qui après validation s'inscrive
>> sur ma feuille dans une seule et même cellule, par concaténation des
>> textboxs de la façon suivante : Entre le Nom et la civilité, j'ai
>> ajouté un espace, et unChr(10) entre la civilité et le téléphone.
>> Jusque là pas de souci.
>> Maintenant je voudrais faire l'inverse, toujours sur le même useform,
>> mais cette fois en mode "Consultation", je sais rappatrier les données
>> d'une cellule dans un textbox, mais je voudrais remettre le nom dans
>> le textbox Nom, la civilité dans le textbox civilité et le téléphone
>> dans le textbox téléphone, en sachant que j'ai l'espace entre le nom
>> et la civilité et le chr(10) entre la civilité et le nom.
>> Quelqu'un aurait-il une solution ?
>> Merci par avance de vos réponses.
>> Cordialement.
>> Alex
>>
>> .
>>


.





Avatar
michdenis
| denis, alex, denis, pas michel :-)

Moi qui pensais que mes messages portaient la signature MichDenis !
1 2