Rajouter un caractère dans une cellule contenant du texte

Résolu
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011 - 17 avril 2008 à 10:48
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011 - 17 avril 2008 à 12:44
Bonjour a tous,



J’aurai besoin d’un peu d’aide, si vous le voulez bien, sur un problème qui je pense est facile pour vous.



Voila mon problème en simplifié :



J’ai un bouton qui me génère un caractère (lettre ou chiffre) dans une textBox. Je voudrai que lorsque j’appuie sur le bouton une deuxième fois le caractère généré vienne se mettre après le premier caractère et ainsi de suite.



Pour le moment mon caractère efface le premier.



Est-ce que quelqu’un pourrait me donner le nom d’une fonction ou la démarche qui pourrait résoudre se problème ? S’il vous plait.



Merci d’avance



RoX

12 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 avril 2008 à 11:31
textbox1.text = textbox1.text & tanouvellelettre
3
Kristof_Koder Messages postés 918 Date d'inscription vendredi 3 août 2007 Statut Membre Dernière intervention 27 octobre 2008 10
17 avril 2008 à 11:08
Plutôt que d'affecter un caractère, concatène celui-ci. Montre nous ton code, et on verra ce qu'on peut faire avec ...
0
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011
17 avril 2008 à 11:33
Re,
en faite j'ai trouvé quelque chose:

TexBox.Text = TexBox.Text + chose
chose = ce que l'on veut rajouter;

mais avec moi sa fonctionne pas ( j'ai une petite erreur qualificateur incorrect sur temp2),

Private Sub CommandButton1_Click()
Dim temp As String*1
Dim temp2 As String*1

const alphabet As String = " abcdefghijklmnopqrstuvwxyz"

If TexBox2.Text = " " then TexBox2.Text= 12   ' condition pour la boucle

i=1
Do While i< TextBox2.Text   'effectue la boucle suivant le nombre indiqué dans la texbox2

Randomize Timer
temp =Int(26*rnd+1)   ' génère aléatoirement un nombre entre 1 et 26

temp2.Text = Mid$(alphabet,temp,1)     ' Prend le caractère dans alphabet correspondant au nombre temp

i=i+1

TexBox1.Text = TexBox1.Text + temp2.Text   
Loop
End Sub

Voila le code pour un bouton, apres je le répète pour un autre bouton
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 avril 2008 à 11:37
la concaténation de "string" c'est &
et pas +
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 avril 2008 à 11:39
de plus temp2 étant déclaré en variable "string " il n'y a pas lieu de mettre temp2.text
c'est une variable pas un objet !
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
17 avril 2008 à 11:39
textbox1.text = textbox1.text & tanouvellelettre
Ici tanouvellelettre=textbox1.text

Je pense qu'il faudrait une variable mémoire.

a=TextBox1.text
'Tu ecris la nouvelle lettre
textbox1.text=TextBox1.text & a

c'est la même chose je sais, tout depend de l'endroit ou tu enregistre la variable mémoire (ici "a")
0
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011
17 avril 2008 à 11:53
RE,

j'ai continué de travailler de mon coté est j'ai trouvé ca:

Private Sub CommandButton1_Click()
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 

Dim temp As String * 1                 'Déclare la chaine "temp"

Dim temp2 As String * 1

Dim MC As Range

Set MC = Range("A1")

 

Const alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  'Déclaration de la constante "alphabet"

 

 
If TextBox2.Text " " Then texbox2.Text 5

Do While i < TextBox2.Text

 

 

Randomize Timer

temp = Int(20 * Rnd + 1)                'La chaine "temp" prend une valeur aléatoire comprise entre 1 et 20 (1et 20 inclus)

 

MC.Value = Mid$(alphabet, temp, 1) 'La textbox1 affiche le caractère de la chaine "consone" auquel la valeur "temp" correspond

i = i + 1

 

TextBox1.Value = TextBox1.Text + MC.Text

 

MC = NoVisible

Loop

End Sub

Qui fonctionne

Mais je vais quand meme essayer ce que vous me dites.

Pile_poil: 

une petite question à quoi correspond le "et bizarre  et comment vous le faite ??

Un + ne veut pas dire la mêmes chose ??

Merci Rox
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 avril 2008 à 12:03
le &  est obtenu en tapant le chiffre 1 (juste au dessus du A de ton clavier) sans appuyer sur "shift " en meme temps
[javascript:alink_4.Click() expressions].

Syntaxe

result= expression1 & expression2

La syntaxe de l'opérateur & comprend les éléments suivants :

Élément, Description, ----
result, Toute
<object id ="alink_5" type= "application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_8.Click() type de données] de l'argument
result est String si les deux expressions sont des
<object id ="alink_9" type= "application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_9.Click() expressions de chaîne]; sinon, l'argument
result est un variant de type String . Si les deux expressions ont
la valeur
<object id ="alink_10" type= "application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_10.Click() Null], l'argument result est
Null . Cependant, si seule une des expressions est Null, elle est
considérée comme une chaîne de longueur nulle ("") lors de sa concaténation avec
l'autre expression. De même, toute expression
<object id ="alink_11" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_11.Click() Empty] est traitée comme une chaîne de
longueur nulle.

[javascript:alink_6.Click() Variant], les règles ci-dessous
s'appliquent :

Condition, Résultat, ----
Les deux expressions sont des
<object id="alink_7" type="application/x-oleobject" classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"></object>[javascript:alink_20.Click() type de données] de l'argument
result correspond généralement à celui de l'expression la plus précise.
Les types de données numériques sont classés dans l'ordre de précision croissant
suivant : Byte, Integer, Long, Single,
Double, Currency et Decimal. Le tableau suivant détaille
les exceptions à cette règle :

Condition, Type de l'argument result, ----
Addition de types Single et Long, Type Double, ----
L'argument result est un variant de type Long,
Single ou Date excédant la plage de valeurs acceptées., Conversion en variant de type Double., ----
L'argument result est un variant de type Byte
excédant la plage de valeurs acceptées., Conversion en variant de type Integer., ----
L'argument resultest un variant de type Integer
excédant la plage de valeurs acceptées., Conversion en variant de type Long., ----
Ajout d'une valeur de type Date à tout autre type de
données., Type Date

Si l'une des deux expressions a la valeur Null, l'argument
result est Null. Si les deux expressions sont Empty,
l'argument resultest de type Integer. Cependant, si une seule
expression est Empty, l'autre expression est renvoyée sans modification
en argument result.

Note   L'ordre de précision de l'addition et de la
soustraction diffère de celui de la multiplication.
0
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011
17 avril 2008 à 12:12
re,

oki , je comprends,merci beaucoup pour le petit cour et pour l'aide .

donc pour mon probleme le code c'est le meme que le premier mais je ne mets rien derriere temp2.

Private Sub CommandButton1_Click()

Dim temp As String * 1                 'Déclare la chaine "temp"

Dim temp2 As String * 1
Const alphabet As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  'Déclaration de la constante "alphabet"
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??> 
If TextBox2.Text " " Then texbox2.Text 12

Do While i < TextBox2.Text
Randomize Timer

temp = Int(20 * Rnd + 1)                'La chaine "temp" prend une valeur aléatoire comprise entre 1 et 20 (1et 20 inclus)

temp2 = Mid$(alphabet, temp, 1) 'La textbox1 affiche le caractère de la chaine "consone" auquel la valeur "temp" correspond

i = i + 1
TextBox1.Value = TextBox1.Text + temp2
Loop
End Sub

MERCI A TOUS

RoX
0
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011
17 avril 2008 à 12:16
re,

petite erreur

avec TexBox1.Text = TexBox1.Text & temp

RoX
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
17 avril 2008 à 12:20
quelle erreur ?
de plus d'apres ton code c'est temp2 et pas temp que tu devais concaténer à text1.text  ?
0
Rox74 Messages postés 30 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 10 février 2011
17 avril 2008 à 12:44
re,

oui dsl j'ai voulu faire vite

erreur le + je ne l'avais pas transformé en &.

Si vous me donnez des conseils est que je fais pas les modifs, " Ca va pas le faire".

aplussstardesss
RoX
"VBA, prendre son temps est la meilleure chance de réussir"
0