Rajouter un caractère dans une cellule contenant du texte [Résolu]

Signaler
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011
-
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011
-
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

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
textbox1.text = textbox1.text & tanouvellelettre
Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
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 ...
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011

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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
la concaténation de "string" c'est &
et pas +
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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 !
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

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")
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011

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
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
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.
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011

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
Messages postés
30
Date d'inscription
mercredi 9 avril 2008
Statut
Membre
Dernière intervention
10 février 2011

re,

petite erreur

avec TexBox1.Text = TexBox1.Text & temp

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

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"