OVH Cloud OVH Cloud

TextBox sur 4 lignes maximum

5 réponses
Avatar
Caroline L.
Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la saisie de 4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux me
retrouver avec plein de lignes (alors que les données qui se retrouve sur la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je suis là !

Merci,
Caroline

5 réponses

Avatar
Pierre Fauconnier
Re-bonjour,

Tu peux contrôler cela via l'évènement Change du textbox, en comptant le
nombre de retours chariot qui ont été saisis

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
Static Nombre_Enter As Integer
If KeyCode = 13 Then Nombre_Enter = Nombre_Enter + 1 ' Incrémentation si
CTRL+ENTER
If Nombre_Enter = 4 Then
MsgBox "Pas plus de 4 lignes" ' Facultatif
TextBox1 = Left(TextBox1, Len(TextBox1) - 2) ' Pour supprimer le
ENTER
Nombre_Enter = 2 ' Pour permettre de saisir une dernière ligne
TextBox1.SelStart = Len(TextBox1) ' pour repositionner le curseur
End If
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la saisie de
4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux me
retrouver avec plein de lignes (alors que les données qui se retrouve sur
la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je suis là
!

Merci,
Caroline




Avatar
Caroline L.
Re,

ça ne fonctionne pas de mon côté, je suis capable de saisir une 5 lignes
(j'ignore comment j'ai fait car je ne suis plus capable de le refaire). Mais
un autre petit problème est que lorsque je fais CTRL-enter, le focus va je
ne sais où et je suis obligé de revenir avec la souris... ??

Caroline

"Pierre Fauconnier" a écrit dans le
message de news:
Re-bonjour,

Tu peux contrôler cela via l'évènement Change du textbox, en comptant le
nombre de retours chariot qui ont été saisis

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
Static Nombre_Enter As Integer
If KeyCode = 13 Then Nombre_Enter = Nombre_Enter + 1 ' Incrémentation
si

CTRL+ENTER
If Nombre_Enter = 4 Then
MsgBox "Pas plus de 4 lignes" ' Facultatif
TextBox1 = Left(TextBox1, Len(TextBox1) - 2) ' Pour supprimer le
ENTER
Nombre_Enter = 2 ' Pour permettre de saisir une dernière ligne
TextBox1.SelStart = Len(TextBox1) ' pour repositionner le curseur
End If
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la saisie
de


4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux me
retrouver avec plein de lignes (alors que les données qui se retrouve
sur


la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je suis



!

Merci,
Caroline








Avatar
Caroline L.
Autre chose.
Il est vrai que le nombre de Ctrl-enter semble se limité à 4 mais si j'entre
du texte sans faire ctrl-enter et que j'arrive à l'extrême droite,
automatiquement, le curseur change de ligne et cela n'est pas considéré dans
la macro. J'ai pu entrer plein de lignes (en cumulant les ctrl-enter et les
retours automatiques).



"Pierre Fauconnier" a écrit dans le
message de news:
Re-bonjour,

Tu peux contrôler cela via l'évènement Change du textbox, en comptant le
nombre de retours chariot qui ont été saisis

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
Static Nombre_Enter As Integer
If KeyCode = 13 Then Nombre_Enter = Nombre_Enter + 1 ' Incrémentation
si

CTRL+ENTER
If Nombre_Enter = 4 Then
MsgBox "Pas plus de 4 lignes" ' Facultatif
TextBox1 = Left(TextBox1, Len(TextBox1) - 2) ' Pour supprimer le
ENTER
Nombre_Enter = 2 ' Pour permettre de saisir une dernière ligne
TextBox1.SelStart = Len(TextBox1) ' pour repositionner le curseur
End If
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la saisie
de


4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux me
retrouver avec plein de lignes (alors que les données qui se retrouve
sur


la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je suis



!

Merci,
Caroline








Avatar
Pierre Fauconnier
Bonjour

Tu disais dans ton premier message que tu avais limité à 215 caractères.

Si tu combines les deux, tu risques effectivement de dépasser les 4 lignes
que tu autorises dans la cellule. Si tu saisis le texte en commençant pas 3
ctrl+Enter, tu peux saisir 212 caractères et tu auras donc plus de quatre
lignes.

La macro que je te donne est une approche qui devrait te permettre,
peut-être à tâtons, de trouver une solution qui te convienne.

On pourrait imaginer alors d'inhiber le ctrl+enter en le remplaçant par un
espace. Cela te permettrait de contrôler plus facilement le nombre de
caractères introduits.

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Autre chose.
Il est vrai que le nombre de Ctrl-enter semble se limité à 4 mais si
j'entre
du texte sans faire ctrl-enter et que j'arrive à l'extrême droite,
automatiquement, le curseur change de ligne et cela n'est pas considéré
dans
la macro. J'ai pu entrer plein de lignes (en cumulant les ctrl-enter et
les
retours automatiques).



"Pierre Fauconnier" a écrit dans le
message de news:
Re-bonjour,

Tu peux contrôler cela via l'évènement Change du textbox, en comptant le
nombre de retours chariot qui ont été saisis

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
Static Nombre_Enter As Integer
If KeyCode = 13 Then Nombre_Enter = Nombre_Enter + 1 ' Incrémentation
si

CTRL+ENTER
If Nombre_Enter = 4 Then
MsgBox "Pas plus de 4 lignes" ' Facultatif
TextBox1 = Left(TextBox1, Len(TextBox1) - 2) ' Pour supprimer le
ENTER
Nombre_Enter = 2 ' Pour permettre de saisir une dernière ligne
TextBox1.SelStart = Len(TextBox1) ' pour repositionner le curseur
End If
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la saisie
de


4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux
me
retrouver avec plein de lignes (alors que les données qui se retrouve
sur


la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je suis



!

Merci,
Caroline












Avatar
Caroline L.
Re-bonjour Pierre,

On pourrait imaginer alors d'inhiber le ctrl+enter en le remplaçant par un
espace.
Je ne comprend pas ce que tu veux dire par là. Un espace ?





"Pierre Fauconnier" a écrit dans le
message de news: #
Bonjour

Tu disais dans ton premier message que tu avais limité à 215 caractères.

Si tu combines les deux, tu risques effectivement de dépasser les 4 lignes
que tu autorises dans la cellule. Si tu saisis le texte en commençant pas
3

ctrl+Enter, tu peux saisir 212 caractères et tu auras donc plus de quatre
lignes.

La macro que je te donne est une approche qui devrait te permettre,
peut-être à tâtons, de trouver une solution qui te convienne.

On pourrait imaginer alors d'inhiber le ctrl+enter en le remplaçant par un
espace. Cela te permettrait de contrôler plus facilement le nombre de
caractères introduits.

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Autre chose.
Il est vrai que le nombre de Ctrl-enter semble se limité à 4 mais si
j'entre
du texte sans faire ctrl-enter et que j'arrive à l'extrême droite,
automatiquement, le curseur change de ligne et cela n'est pas considéré
dans
la macro. J'ai pu entrer plein de lignes (en cumulant les ctrl-enter et
les
retours automatiques).



"Pierre Fauconnier" a écrit dans le
message de news:
Re-bonjour,

Tu peux contrôler cela via l'évènement Change du textbox, en comptant
le



nombre de retours chariot qui ont été saisis

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger,
ByVal



Shift As Integer)
Static Nombre_Enter As Integer
If KeyCode = 13 Then Nombre_Enter = Nombre_Enter + 1 '
Incrémentation



si
CTRL+ENTER
If Nombre_Enter = 4 Then
MsgBox "Pas plus de 4 lignes" ' Facultatif
TextBox1 = Left(TextBox1, Len(TextBox1) - 2) ' Pour supprimer
le



ENTER
Nombre_Enter = 2 ' Pour permettre de saisir une dernière ligne
TextBox1.SelStart = Len(TextBox1) ' pour repositionner le
curseur



End If
End Sub

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe

zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci


"Caroline L." a écrit dans le message de news:

Bonjour,

Dans un userform, sur un contrôle TextBox, je veux permettre la
saisie




de
4
lignes au max. J'ai mis le Multiligne à true et un maximum de données
MaxLength à 215.
Le probème c'est que je peux faire plein de ctrl-enter et que je peux
me
retrouver avec plein de lignes (alors que les données qui se retrouve
sur


la
feuille excel ont une mise en forme ne permettant que 4 lignes).

J'espère avoir été claire, si vous avez besoin de précision... je
suis





!

Merci,
Caroline