Insérer texte dans Textbox

Lu K

XLDnaute Occasionnel
Bonjour à toutes et à tous,

Je viens encore vers vous pour un autre problème, c'est tellement bien ici ! On à réponse à tout !

Voilà, dans un Textbox j'écris plusieur ligne à la suite. Mais je doit de temps en temps insérer des éléments dans mon texte, petit exemple :

Texte d'origine:
Ceci est une phrase test
je doit insérer un mot dans ce texte

Texte après insertion via bouton ou autre:
Ceci est une phrase test
je doit insérer un petit mot dans ce texte


Avez vous une solution à mon problème ?

Merci d'avance.
 

Lu K

XLDnaute Occasionnel
Re : Insérer texte dans Textbox

Bonjour gilbert_RGI,

Un grand merci pour t'as réponse, mais désolé ce n'est pas ça que je recherche !
Ce code je le connais déja ! Moi je veux à partir d'un texte contenu dans un textbox inserer un autre texte par l'intermédaire d'un bouton ou autre exactement ou ce trouve le curseur dans le texte.

Peut être que ma demande n'est pas compréhensible ?
 

kjin

XLDnaute Barbatruc
Re : Insérer texte dans Textbox

Bonsoir,
A tester
Code:
Dim pos&

Private Sub CommandButton1_Click()
texte = TextBox1
a_inserer = "Toto"
If pos = 0 Then
    TextBox1 = a_inserer
Else
TextBox1 = Mid(texte, 1, pos) & a_inserer & Mid(texte, pos + 1, Len(texte))
End If
End Sub

Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
pos = TextBox1.SelStart
End Sub
A+
kjin
 

klin89

XLDnaute Accro
Re : Insérer texte dans Textbox

Bonsoir à tous,
Bonsoir Lu K, gilbert_RGI

Pour l'exemple, j'ai repris le fichier de christian.bedere dans le lien ci-dessous et l'ai adapté selon ta demande.

https://www.excel-downloads.com/threads/choix-du-textbox-a-alimenter-par-case-a-cocher.168614/

Placé dans UserForm1 : ce code
VB:
Dim Ctrl As Control, flag As Boolean

Private Sub CheckBox1_Click()
If flag = True Then Exit Sub
'If CheckBox1 = True Then Ctrl.Text = "Pêche à pied" Else Ctrl.Text = ""
If CheckBox1 = True Then Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Pêche à pied " & Mid(Ctrl.Text, Ctrl.SelStart + 1)
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox2_Click()
If flag = True Then Exit Sub
'If CheckBox2 = True Then Ctrl.Text = "Voile" Else Ctrl.Text = ""
If CheckBox2 = True Then Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Voile " & Mid(Ctrl.Text, Ctrl.SelStart + 1)
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox3_Click()
If flag = True Then Exit Sub
'If CheckBox3 = True Then Ctrl.Text = "Piscine" Else Ctrl.Text = ""
If CheckBox3 = True Then Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Piscine " & Mid(Ctrl.Text, Ctrl.SelStart + 1)
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
End Sub


Private Sub Soir1_Enter()
    Set Ctrl = Soir1
End Sub

Private Sub Matin1_Enter()
    Set Ctrl = Matin1
End Sub

Private Sub Midi1_Enter()
    Set Ctrl = Midi1
End Sub

Private Sub Apres1_Enter()
    Set Ctrl = Apres1
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Est-ce l'effet désiré ?

Salut kjin :)

Klin89
 

Pièces jointes

  • Copie de EssaiProgramme.xls
    25 KB · Affichages: 63
Dernière édition:

klin89

XLDnaute Accro
Re : Insérer texte dans Textbox

Re à tous,

En remplacement du code précédant :

Dans la Textbox, le mot vient se placer au niveau du curseur ou remplace le texte surligné.

VB:
Dim Ctrl As Control, flag As Boolean

Private Sub CheckBox1_Click()
If flag = True Then Exit Sub
'If CheckBox1 = True Then Ctrl.Text = "Pêche à pied" Else Ctrl.Text = ""
If CheckBox1 = True Then
  If Ctrl.SelText <> "" Then
    Ctrl.SelText = "Pêche à pied" 'remplace le texte surligné
  Else
    Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Pêche à pied " & Mid(Ctrl.Text, Ctrl.SelStart + 1) 'se place au niveau du curseur
  End If
End If
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox2_Click()
If flag = True Then Exit Sub
'If CheckBox2 = True Then Ctrl.Text = "Voile" Else Ctrl.Text = ""
If CheckBox2 = True Then
  If Ctrl.SelText <> "" Then
    Ctrl.SelText = "Voile"
  Else
    Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Voile " & Mid(Ctrl.Text, Ctrl.SelStart + 1)
  End If
End If
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox3 = True Then flag = True: CheckBox3 = False: flag = False
End Sub

Private Sub CheckBox3_Click()
If flag = True Then Exit Sub
'If CheckBox3 = True Then Ctrl.Text = "Piscine" Else Ctrl.Text = ""
If CheckBox3 = True Then
  If Ctrl.SelText <> "" Then
    Ctrl.SelText = "Piscine"
  Else
    Ctrl.Text = Left(Ctrl.Text, Ctrl.SelStart) & " Piscine " & Mid(Ctrl.Text, Ctrl.SelStart + 1)
  End If
End If
If CheckBox1 = True Then flag = True: CheckBox1 = False: flag = False
If CheckBox2 = True Then flag = True: CheckBox2 = False: flag = False
End Sub

Private Sub Soir1_Enter()
    Set Ctrl = Soir1
End Sub

Private Sub Matin1_Enter()
    Set Ctrl = Matin1
End Sub

Private Sub Midi1_Enter()
    Set Ctrl = Midi1
End Sub

Private Sub Apres1_Enter()
    Set Ctrl = Apres1
End Sub

Private Sub CommandButton1_Click()
Unload Me
End Sub

Klin89
 

Lu K

XLDnaute Occasionnel
Re : Insérer texte dans Textbox

Bonjour à tous, et MERCI pour toutes ces réponses !!!

La solution à mon problème est là ! Juste un petit souci ! Vos solutions fonction, mais seulement si le textbox à une ligne !!! Comme j'en ai plusieur, si je me met au bout de la ligne 3, il me décale le curseur de 2 lettres !

Avez vous une solution ?

Merci encore pour toutes vos réponse.
 

Lu K

XLDnaute Occasionnel
Re : Insérer texte dans Textbox

Re,

En bricolant un peu, j'ai fait ça :
Dim Ctrl As Control
sub inser()
Code:
macol = Split(Left(Ctrl.Text, Ctrl.SelStart), vbLf)
For Each w In macol
    cpt = cpt + 1
Next w
If cpt = 1 Then cpt = 0 Else cpt = cpt - 1
pos = Textbox.SelStart
texte = Textbox
Textbox= Mid(texte, 1, pos + cpt) & 'Valeur' &  Mid(texte, pos + cpt + 1, Len(texte))

Private Sub textbox1_Enter()
    Set Ctrl = textbox
End Sub

Et le pire, c'est que ça fonctionne !!!!

Merci à tous
 

Lu K

XLDnaute Occasionnel
Re : Insérer texte dans Textbox

Bonjour à tous,

Je reviens vers vous pour une petite question qui va bien avec cette topic !

Je souhaiterai faire la même chose mais dans une cellule.

Par le Clic droit dans le texte, enregistrer les valeurs avant et après le curseur, les stocker quelque part et les reprendre plus tard lors de ma validation dans un userform.
Ce que je n'arrive pas, c'est la récuparation des données lors de mon clic. De savoir comment lui dire du prend du début au clic et après du clic à la fin.

Si quelqu'un à une idée !

Merci d'avance.
 

Discussions similaires

  • Question
Microsoft 365 TEXTBOX
Réponses
7
Affichages
335
Réponses
2
Affichages
148

Statistiques des forums

Discussions
312 248
Messages
2 086 593
Membres
103 248
dernier inscrit
Happycat