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

TextBox & Module de classe

7 réponses
Avatar
Jean-Paul V
Bonjour à tous
J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
lettre de l’alphabet

J’ai dans un Module de classe cette Macro qui fonctionne :

Public WithEvents GrLettres As MSForms.CommandButton
Private Sub GrLettres_Click()
Dim Résult As String
‘Premier cas utililiser une lettre pour sélectionner une liste
If Formulaire.OptionButton2.Value = True Then
….
Else
‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
TextBox du Userform
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult
End If
End Sub

Comment pourrait-on modifier :
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult

Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
cliquée

En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
lettre cliquée dans le TextBox cliqué là où je suis.

Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
obtenir dans Compositeur BEETHOVEN
1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
cette lettre là ou je suis dans le TextBox sélectionné.
3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
de supprimer la lettre à droite .

A + j’espère

--
Jean-Paul V

7 réponses

Avatar
MichDenis
Un petit exemple simple. Ce qui est entré dans les textbox
c'est ce qui est affiché comme caption des boutons de commande.

http://cjoint.com/?iruJmJiuet



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
lettre de l’alphabet

J’ai dans un Module de classe cette Macro qui fonctionne :

Public WithEvents GrLettres As MSForms.CommandButton
Private Sub GrLettres_Click()
Dim Résult As String
‘Premier cas utililiser une lettre pour sélectionner une liste
If Formulaire.OptionButton2.Value = True Then
….
Else
‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
TextBox du Userform
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult
End If
End Sub

Comment pourrait-on modifier :
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult

Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
cliquée

En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
lettre cliquée dans le TextBox cliqué là où je suis.

Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
obtenir dans Compositeur BEETHOVEN
1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
cette lettre là ou je suis dans le TextBox sélectionné.
3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
de supprimer la lettre à droite .

A + j’espère

--
Jean-Paul V
Avatar
MichDenis
Tu peux enlever du formulaire, les événements TextBox_Enter
ils ne sont pas utiles.


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

Un petit exemple simple. Ce qui est entré dans les textbox
c'est ce qui est affiché comme caption des boutons de commande.

http://cjoint.com/?iruJmJiuet



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
lettre de l’alphabet

J’ai dans un Module de classe cette Macro qui fonctionne :

Public WithEvents GrLettres As MSForms.CommandButton
Private Sub GrLettres_Click()
Dim Résult As String
‘Premier cas utililiser une lettre pour sélectionner une liste
If Formulaire.OptionButton2.Value = True Then
….
Else
‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
TextBox du Userform
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult
End If
End Sub

Comment pourrait-on modifier :
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult

Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
cliquée

En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
lettre cliquée dans le TextBox cliqué là où je suis.

Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
obtenir dans Compositeur BEETHOVEN
1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
cette lettre là ou je suis dans le TextBox sélectionné.
3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
de supprimer la lettre à droite .

A + j’espère

--
Jean-Paul V
Avatar
Jean-Paul V
Bonjour
Merci ton fichier répond à ma demande, reste à étudier le problème de la
suppression d'une lettre là où je suis .--
Jean-Paul V


"MichDenis" wrote:

Tu peux enlever du formulaire, les événements TextBox_Enter
ils ne sont pas utiles.


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

Un petit exemple simple. Ce qui est entré dans les textbox
c'est ce qui est affiché comme caption des boutons de commande.

http://cjoint.com/?iruJmJiuet



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
lettre de l’alphabet

J’ai dans un Module de classe cette Macro qui fonctionne :

Public WithEvents GrLettres As MSForms.CommandButton
Private Sub GrLettres_Click()
Dim Résult As String
‘Premier cas utililiser une lettre pour sélectionner une liste
If Formulaire.OptionButton2.Value = True Then
….
Else
‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
TextBox du Userform
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult
End If
End Sub

Comment pourrait-on modifier :
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult

Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
cliquée

En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
lettre cliquée dans le TextBox cliqué là où je suis.

Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
obtenir dans Compositeur BEETHOVEN
1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
cette lettre là ou je suis dans le TextBox sélectionné.
3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
de supprimer la lettre à droite .

A + j’espère

--
Jean-Paul V




Avatar
MichDenis
Bonjour Jean-Paul,
Après avoir enlevé les procédures : Private Sub TextBox_Enter
Il manque une ligne de code dans la procédure :
'---------------------
Private Sub UserForm_Initialize()

Les dernières lignes de la procédure
Me.TextBox1.SetFocus
MesVariables Me.TextBox1 'Ligne de code manquante
End Sub
'---------------------
| reste à étudier le problème de la suppression d'une lettre là où je suis
La touche "Del" ou "retour arrière fait le travail.

"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour
Merci ton fichier répond à ma demande, reste à étudier le problème de la
suppression d'une lettre là où je suis .--
Jean-Paul V


"MichDenis" wrote:

Tu peux enlever du formulaire, les événements TextBox_Enter
ils ne sont pas utiles.


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

Un petit exemple simple. Ce qui est entré dans les textbox
c'est ce qui est affiché comme caption des boutons de commande.

http://cjoint.com/?iruJmJiuet



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour à tous
J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
lettre de l’alphabet

J’ai dans un Module de classe cette Macro qui fonctionne :

Public WithEvents GrLettres As MSForms.CommandButton
Private Sub GrLettres_Click()
Dim Résult As String
‘Premier cas utililiser une lettre pour sélectionner une liste
If Formulaire.OptionButton2.Value = True Then
….
Else
‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
TextBox du Userform
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult
End If
End Sub

Comment pourrait-on modifier :
Me.Prénom.SetFocus
Résult = Formulaire.Prénom.Value
Résult = Résult & GrLettres.Caption
Formulaire.Prénom.Value = Résult

Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
cliquée

En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
lettre cliquée dans le TextBox cliqué là où je suis.

Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
obtenir dans Compositeur BEETHOVEN
1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
cette lettre là ou je suis dans le TextBox sélectionné.
3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
de supprimer la lettre à droite .

A + j’espère

--
Jean-Paul V




Avatar
Jean-Paul V
J’ai ajouté à la fin le MesVariables Me.TextBox1
Effectivement c’est mieux.
Mais en supposant que je clique sur un deuxième nom sans changer de zone de
texte comment modifier vos macros pour que le deuxième nom vienne à droite
et pas à gauche de celui déjà saisi.(ce qui est le cas lorsque je fais une
saisie lettre par lettre)

à +
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,
Après avoir enlevé les procédures : Private Sub TextBox_Enter
Il manque une ligne de code dans la procédure :
'---------------------
Private Sub UserForm_Initialize()

Les dernières lignes de la procédure
Me.TextBox1.SetFocus
MesVariables Me.TextBox1 'Ligne de code manquante
End Sub
'---------------------
| reste à étudier le problème de la suppression d'une lettre là où je suis
La touche "Del" ou "retour arrière fait le travail.

"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour
Merci ton fichier répond à ma demande, reste à étudier le problème de la
suppression d'une lettre là où je suis .--
Jean-Paul V


"MichDenis" wrote:

> Tu peux enlever du formulaire, les événements TextBox_Enter
> ils ne sont pas utiles.
>
>
> "MichDenis" a écrit dans le message de groupe de discussion :
>
> Un petit exemple simple. Ce qui est entré dans les textbox
> c'est ce qui est affiché comme caption des boutons de commande.
>
> http://cjoint.com/?iruJmJiuet
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe de
> discussion :
> Bonjour à tous
> J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
> lettre de l’alphabet
>
> J’ai dans un Module de classe cette Macro qui fonctionne :
>
> Public WithEvents GrLettres As MSForms.CommandButton
> Private Sub GrLettres_Click()
> Dim Résult As String
> ‘Premier cas utililiser une lettre pour sélectionner une liste
> If Formulaire.OptionButton2.Value = True Then
> ….
> Else
> ‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
> TextBox du Userform
> Me.Prénom.SetFocus
> Résult = Formulaire.Prénom.Value
> Résult = Résult & GrLettres.Caption
> Formulaire.Prénom.Value = Résult
> End If
> End Sub
>
> Comment pourrait-on modifier :
> Me.Prénom.SetFocus
> Résult = Formulaire.Prénom.Value
> Résult = Résult & GrLettres.Caption
> Formulaire.Prénom.Value = Résult
>
> Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
> cliquée
>
> En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
> lettre cliquée dans le TextBox cliqué là où je suis.
>
> Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
> curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
> obtenir dans Compositeur BEETHOVEN
> 1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
> 2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
> cette lettre là ou je suis dans le TextBox sélectionné.
> 3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
> de supprimer la lettre à droite .
>
> A + j’espère
>
> --
> Jean-Paul V
>
>



Avatar
MichDenis
Bonjour Jean-Paul,

Dans le module de classe "MesBoutons",
il s'agit d'ajouter une ligne de code :


With .Controls(SonNom)
Position = CLng(Position)
.Value = Left(.Value, Position) & Texte & _
Right(.Value, Len(.Value) - Position)
Position = Position + Len(Texte) 'Ligne ajoutée
End With



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
J’ai ajouté à la fin le MesVariables Me.TextBox1
Effectivement c’est mieux.
Mais en supposant que je clique sur un deuxième nom sans changer de zone de
texte comment modifier vos macros pour que le deuxième nom vienne à droite
et pas à gauche de celui déjà saisi.(ce qui est le cas lorsque je fais une
saisie lettre par lettre)

à +
--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,
Après avoir enlevé les procédures : Private Sub TextBox_Enter
Il manque une ligne de code dans la procédure :
'---------------------
Private Sub UserForm_Initialize()

Les dernières lignes de la procédure
Me.TextBox1.SetFocus
MesVariables Me.TextBox1 'Ligne de code manquante
End Sub
'---------------------
| reste à étudier le problème de la suppression d'une lettre là où je suis
La touche "Del" ou "retour arrière fait le travail.

"Jean-Paul V" a écrit dans le message de groupe de
discussion :
Bonjour
Merci ton fichier répond à ma demande, reste à étudier le problème de la
suppression d'une lettre là où je suis .--
Jean-Paul V


"MichDenis" wrote:

> Tu peux enlever du formulaire, les événements TextBox_Enter
> ils ne sont pas utiles.
>
>
> "MichDenis" a écrit dans le message de groupe de discussion :
>
> Un petit exemple simple. Ce qui est entré dans les textbox
> c'est ce qui est affiché comme caption des boutons de commande.
>
> http://cjoint.com/?iruJmJiuet
>
>
>
> "Jean-Paul V" a écrit dans le message de groupe
> de
> discussion :
> Bonjour à tous
> J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
> lettre de l’alphabet
>
> J’ai dans un Module de classe cette Macro qui fonctionne :
>
> Public WithEvents GrLettres As MSForms.CommandButton
> Private Sub GrLettres_Click()
> Dim Résult As String
> ‘Premier cas utililiser une lettre pour sélectionner une liste
> If Formulaire.OptionButton2.Value = True Then
> ….
> Else
> ‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
> TextBox du Userform
> Me.Prénom.SetFocus
> Résult = Formulaire.Prénom.Value
> Résult = Résult & GrLettres.Caption
> Formulaire.Prénom.Value = Résult
> End If
> End Sub
>
> Comment pourrait-on modifier :
> Me.Prénom.SetFocus
> Résult = Formulaire.Prénom.Value
> Résult = Résult & GrLettres.Caption
> Formulaire.Prénom.Value = Résult
>
> Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
> cliquée
>
> En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
> lettre cliquée dans le TextBox cliqué là où je suis.
>
> Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
> curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
> obtenir dans Compositeur BEETHOVEN
> 1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
> 2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
> cette lettre là ou je suis dans le TextBox sélectionné.
> 3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
> de supprimer la lettre à droite .
>
> A + j’espère
>
> --
> Jean-Paul V
>
>



Avatar
Jean-Paul V
Ca marche ! Merci !


--
Jean-Paul V


"MichDenis" wrote:

Bonjour Jean-Paul,

Dans le module de classe "MesBoutons",
il s'agit d'ajouter une ligne de code :


With .Controls(SonNom)
Position = CLng(Position)
.Value = Left(.Value, Position) & Texte & _
Right(.Value, Len(.Value) - Position)
Position = Position + Len(Texte) 'Ligne ajoutée
End With



"Jean-Paul V" a écrit dans le message de groupe de
discussion :
J’ai ajouté à la fin le MesVariables Me.TextBox1
Effectivement c’est mieux.
Mais en supposant que je clique sur un deuxième nom sans changer de zone de
texte comment modifier vos macros pour que le deuxième nom vienne à droite
et pas à gauche de celui déjà saisi.(ce qui est le cas lorsque je fais une
saisie lettre par lettre)

à +
--
Jean-Paul V


"MichDenis" wrote:

> Bonjour Jean-Paul,
> Après avoir enlevé les procédures : Private Sub TextBox_Enter
> Il manque une ligne de code dans la procédure :
> '---------------------
> Private Sub UserForm_Initialize()
>
> Les dernières lignes de la procédure
> Me.TextBox1.SetFocus
> MesVariables Me.TextBox1 'Ligne de code manquante
> End Sub
> '---------------------
> | reste à étudier le problème de la suppression d'une lettre là où je suis
> La touche "Del" ou "retour arrière fait le travail.
>
> "Jean-Paul V" a écrit dans le message de groupe de
> discussion :
> Bonjour
> Merci ton fichier répond à ma demande, reste à étudier le problème de la
> suppression d'une lettre là où je suis .--
> Jean-Paul V
>
>
> "MichDenis" wrote:
>
> > Tu peux enlever du formulaire, les événements TextBox_Enter
> > ils ne sont pas utiles.
> >
> >
> > "MichDenis" a écrit dans le message de groupe de discussion :
> >
> > Un petit exemple simple. Ce qui est entré dans les textbox
> > c'est ce qui est affiché comme caption des boutons de commande.
> >
> > http://cjoint.com/?iruJmJiuet
> >
> >
> >
> > "Jean-Paul V" a écrit dans le message de groupe
> > de
> > discussion :
> > Bonjour à tous
> > J’ai un Userform nommé Formulaire avec 26 commandButton représentant les 26
> > lettre de l’alphabet
> >
> > J’ai dans un Module de classe cette Macro qui fonctionne :
> >
> > Public WithEvents GrLettres As MSForms.CommandButton
> > Private Sub GrLettres_Click()
> > Dim Résult As String
> > ‘Premier cas utililiser une lettre pour sélectionner une liste
> > If Formulaire.OptionButton2.Value = True Then
> > ….
> > Else
> > ‘Autre cas utiliser ces commandButton pour faire de la saisie dans les
> > TextBox du Userform
> > Me.Prénom.SetFocus
> > Résult = Formulaire.Prénom.Value
> > Résult = Résult & GrLettres.Caption
> > Formulaire.Prénom.Value = Résult
> > End If
> > End Sub
> >
> > Comment pourrait-on modifier :
> > Me.Prénom.SetFocus
> > Résult = Formulaire.Prénom.Value
> > Résult = Résult & GrLettres.Caption
> > Formulaire.Prénom.Value = Résult
> >
> > Qui permet de modifier le TextBox nommé Prénom et de lui ajouter la lettre
> > cliquée
> >
> > En fait mon Userform a plusieurs TextBox , et j’aimerai pouvoir ajouter une
> > lettre cliquée dans le TextBox cliqué là où je suis.
> >
> > Par exemple si dans mon TextBox nommé Compositeur j’ai BETHOVEN si mon
> > curseur est après le E j’aimerai si je clique sur la lettre E de mon Userform
> > obtenir dans Compositeur BEETHOVEN
> > 1)Par quoi remplacer Me.Prénom.SetFocus pour dire le TextBox sélectionné
> > 2)Par quoi remplacer Résult = Résult & GrLettres.Caption pour dire ajouter
> > cette lettre là ou je suis dans le TextBox sélectionné.
> > 3)Si j’ai un CommandButton Suppression comment écrire la macro pour lui dire
> > de supprimer la lettre à droite .
> >
> > A + j’espère
> >
> > --
> > Jean-Paul V
> >
> >
>