!!! Concatener sous VBA !!!

  • Initiateur de la discussion fabrice
  • Date de début
F

fabrice

Guest
bonjour tout le monde

Voila, je cherche à reproduire la fonction concatener d'excel sous VBA.
En effet, je cherche regrouper les valeurs de 3 textbox (1,2,3) dans une 4ème.

Auriez vous des idées???

Merci de votre réponse

FAb
 
J

Jon

Guest
Bonjour


textbox4=textbox1 & textbox2 & textbox3 'devrait suffire

la fonction vba est concatenate


puisqu'aujourd'hui on a eu droit à des explications sur Userform Initialize & Activate, quelqu'un voit la différence entre la concaténation à l'aide de "&" et celle possible je crois à l'aide de "+"

bye
 
J

Jon

Guest
non rajouter une concaténation avec " "


ci-dessous une fonction qui permet de faire la concaténation en spécifiant un séparateur, mais elle concatène des cellules.

<http://groups.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=b8d6ae%24lqe%241%40news.tiscali.fr&rnum=1&prev=/groups%3Fq%3Dxlbysteph%2Bconcat%25C3%25A9ner%26hl%3Dfr%26lr%3D%26ie%3DUTF-8%26oe%3DUTF-8%26scoring%3Dd>
 
F

fabrice

Guest
!!! Textbox concatenant en live !!!

Rebonjour,

Voila, maintenant que je sais concetener, j'ai autre PB car la textbox qui doit concatener (la n°1) et sur le meme UF que les 3 autres. Or si je rentre la formule de Jon, la textbox 1 ne se met pas à jour automatiquement.

Je ne sais pas si c bien clair!!!!

Merci de votre aide

FAb
 
@

@+Thierry

Guest
Re: !!! Textbox concatenant en live !!!

Hello ce Fil

Pour STéphane :
Ben... pour la différence pour l'opérateur "+" et l'opérateur "&"... un tour dans l'aide t'explique (pour moi) clairement (je trouve) la différence :

+, opérateur, exemple
Cet exemple utilise l'opérateur + pour totaliser des nombres. L'opérateur + peut également servir à concaténer des chaînes. Toutefois, afin d'éliminer toute ambiguïté, il est préférable d'utiliser l'opérateur de concaténation & à la place. Si une expression créée avec l'opérateur + comprend aussi bien des chaînes que des valeurs numériques, le résultat arithmétique est affecté. Si les éléments sont exclusivement des chaînes, celles-ci sont concaténées.

Dim MyNumber, Var1, Var2
MyNumber = 2 + 2 ' Renvoie 4.
MyNumber = 4257.04 + 98112 ' Renvoie 102369,04.

Var1 = "34": Var2 = 6 ' Initialise les variables.
MyNumber = Var1 + Var2 ' Renvoie 40.

Var1 = "34": Var2 = "6" ' Initialise les variables contenant des chaînes.
MyNumber = Var1 + Var2 ' Renvoie "346" (concaténation des chaînes).


Pour le Fab :
J'ai encore l'impression que tu as encore loupé tes explications... Non ?
j'ai autre PB car la textbox qui doit concatener (la n°1) et sur le meme UF que les 3 autres

Voudrais-tu plutôt dire :
j'ai autre PB car la textbox qui doit concatener (la n°1) n'est PAS sur le même UF que les 3 autres... ?

Est-ce ceci ?
Dans ce cas Deux Solutions (Trois si tu écris aussi la valeurs de tes TextBox dans des Cellules, mais çà je n'aborde pas ici)

Les 2 solutions suivantes partent du principe que le UserForm1 contient les textboxs(TextBoxA et TextBoxB) à concaténer dans une une autre TextBox (TexboxRecup) du UserForm2...

La première :
il faut faire une Variable Publique par TextBox... Fais un tour dans ce fil que j'ai eu avec Ti :
=> Lien supprimé

Ensuite une fois tes variables déclarée (correctement si tu appliques bien ce qu'on a expliqué dans le lien ci-dessus... Si tu reviens en me disant "ça marche pas" je te scotch !!!)
En Module Standard
Public VarTxbA As String
Public VarTxbB As String

Dans le command button de fermeture du UserForm1
VarTxbA = TextBoxA
VarTxbB = TextBoxB

Dans l'initialize du UserForm2
TextBoxRecup = VarTxbA & " " & VarTxbB
...


La Seconde :
le UserForm1 n'est pas déchargé par l'instruction Unload, mais juste masqué par l'instruction UserForm1.Hide... (Qui donc ne décharge pas ce qui a été saisi de la mémoire)

Dans se cas ton code de concaténation s'écrira tout simplement dans l'initialize du UserForm2 :
TextBoxRecup = Userform1.TextBoxA & " " & UserForm1.TextBoxB 'etc etc

Voilà Mr Fab... Sinon c'est que je n'ai rien compris à tes explications... et que je suis encore à coté de la plaque mais c'est pas grave car comme çà j'ai répondu aussi à STéphane :)

Ou alors (après longue réflexion à cause du mot "automatiquement"), Si il faut, tu travailles sur un seul UserForm.. Mais c'est que tu n'as pas été capable de trouver un évènement pour lancer ce code de concaténation... Alors là, c'est que franchement depuis le temps que tu fréquentes ce forum tu plannes à 2000 pieds car c'est pas les démos et les évènements qui manquent dans les controls activeX... (textboxA_change... par exemple)

Mais bon on va pas non plus venir s'installer à ton bureau pour finir ton boulot (Sacré Fab) !! lol (sans rancune)

Bon Samedi soir à vous deux
@+Thierry
 
F

fabrice

Guest
Re: !!! Textbox concatenant en live !!!

Salut Thierry

Je crois que je n'ai "pas été capable de trouver un évènement pour lancer ce code de concaténation"!!!

JE SUIS VRAIMENT DESOLE mais la je ne vois vraiment pas comment faire car en effet, toutes les textbox sont sur le MEME UF!!!

Désolé encore,

FAb, le pilote qui aimerai bien redescendre des 2000!!!
 
@

@+Thierry

Guest
Re: !!! Textbox concatenant en live !!!

Salut Fab et les Amis et Amies

Non non suis pas faché après toi......... Si j'avais dû me facher avec toi ce serait au moins depuis six mois...

Je t'engueule parfois mais je t'aime bien aussi :) désolé pour cette réponse tardive car je n'avais pas dû cocher mon premier post pour avair un suivi mail.

Bon alors pour un heureux évènement, on peut attendre un mariage, un une naissance, un baptême... Parfois certains font la fête pour un enterrement !

Bon je vais te faire une démo et je reviens....

@de suite
@+Thierry
 
@

@+Thierry

Guest
Re Bonsoir Fab

Voilà vraiment une démo basic avec deux UserForms

Le premier devrait te convenir et tu remarqueras que je t'avais mis sur la voie dans mon post du 10-05-03 19:31 (textboxA_change... par exemple)

Pour le UserForm2 balade la souri une fois que tu auras tapé dans la TextBox1... C'est plus pour le fun car ce n'est pas très utile...

Il y a bien d'autre évènement regarde dans l'aide... dont (entre-autre)
DblClick, Enter, KeyPress, AfterUpdate.... Mais l'évènement Change qui est par défaut, te sera le plus utile, je pense...

Bonne Soirée
@+Thierry
 

Pièces jointes

  • TXB-evevement.zip
    10.8 KB · Affichages: 140
F

fabrice

Guest
Re: !!! Textbox concatenant en live !!!

Merci MONSIEUR Thierry

En effet, si ,tu avais du t'énervé ca aurait été de puis plus de 6 mois !!!!

Merci de ta patience qui n'a d'égale que mon énorme capacité a faire comprendre clairemement mes PB's ;=)

FAb
 
F

fabrice

Guest
!!! Equivalent de Ctrl+Entrée mais avec VBA !!!

Tiens temps que tu es là!

Comment peut-on aller à la ligne dans un textbox??
On peut faire Ctrl+Entrée mais ca c'est la manière manuelle!!!

J'ai essayé avec
_
& Chr(13) &

Mais ca ce marche pas :(

aurais tu une solution

FAb
 
@

@+Thierry

Guest
Re: !!! Equivalent de Ctrl+Entrée mais avec VBA pour TextBox !!!

Option Explicit

'Créer un UserForm et Dessiner une TextBox
'de n'importe quelle taille et coller ce code
'dans le Private Module du UserForm

Private Sub UserForm_Initialize()
With TextBox1
.Text = "Salut Fab et le Forum" & vbCrLf & vbCrLf _
& "J'étais déjà au bureau quand tu a écrit ta demande" & vbCrLf _
& "Donc Voici la méthode, pour faire du MultiLigne" & vbCrLf _
& "dans une TextBox" & vbCrLf & vbCrLf & vbCrLf & "@+Thierry"
.MultiLine = True
.AutoSize = True
.ControlTipText = "Bonne Nuit"
.Font.Bold = True
End With
End Sub
 
F

fabrice

Guest
Re: !!! Equivalent de Ctrl+Entrée mais avec VBA pour TextBox !!!

salut thierry et les autres du forum!,

merci de ton super code, mais je crois que je m'en sers mal!!!

En effet, j'ai essayé de le combiner avec nos précédents post et là gros PB.

Je souhaiterai que dans la Textbox 12, s'affichent les textbox 13 à 17, la 13 sur la 1ère ligne, la 14 sur la 3ème, la 15 sur la 4, ...

Mais mon mix mac des deux code fait que toutes les lettres sécrivent les une en dessous des autres => PB

Peux tu me dire ce qui cloche dans mon code???

Private Sub TextBox13_Change()
TextBox12 = TextBox13 & " " & TextBox14 & " " & TextBox15 & " " & TextBox16 & " " & TextBox17
End Sub

Private Sub TextBox14_Change()
TextBox12 = TextBox13 & " " & TextBox14 & " " & TextBox15 & " " & TextBox16 & " " & TextBox17
End Sub

Private Sub TextBox15_Change()
TextBox12 = TextBox13 & " " & TextBox14 & " " & TextBox15 & " " & TextBox16 & " " & TextBox17
End Sub

Private Sub TextBox16_Change()
TextBox12 = TextBox13 & " " & TextBox14 & " " & TextBox15 & " " & TextBox16 & " " & TextBox17
End Sub

Private Sub TextBox17_Change()
TextBox12 = TextBox13 & " " & TextBox14 & " " & TextBox15 & " " & TextBox16 & " " & TextBox17
End Sub


Private Sub UserForm_Initialize()
With TextBox12
.Text = TextBox13 & vbCrLf & vbCrLf _
& TextBox14 & vbCrLf _
& TextBox15 & vbCrLf _
& TextBox16 & vbCrLf & vbCrLf & vbCrLf & TextBox17
.MultiLine = True
.AutoSize = True
.ControlTipText = "Bonne Nuit"
.Font.Bold = True
End With
End Sub



Merci de ton aide
FAb
 

Statistiques des forums

Discussions
312 361
Messages
2 087 608
Membres
103 606
dernier inscrit
lolo1970