Dans un document comprenant exclusivement
des tableaux/formulaires (protégé), je souhaitais
inclure une zone de commentaires pouvant contenir
plusieurs lignes.
Accéder à un champ de formulaire pour y écrire
une prose n'est pas du plus aisé.
J'ai donc copieusement "pompé" le modèle de
formulaire d'Anacoluthe.
J'y suis presque…
Deux gros problèmes persistent
et je ne m'en sors pas:
1) comment limiter en caractères la TextBox
afin qu'elle corresponde à la taille du signet
de réception présent dans un tableau ?
2) comment éviter le plantage de la macro dans
certains cas que je n'arrive pas à reproduire systématiquement
Pour plus de clarté j'ai posté le modèle,
avec le message d'erreur et le code incriminé
http://cjoint.com/?lApoxSHhnj
Merci d'avance pour vos lumières.
On a beau se jurer qu'on n'agira jamais comme sa mère,
un jour ou l'autre, l'inexorable mimétisme se met en marche.
[Christiane Rancé]
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anacoluthe
Bonjour !
'JMM21' nous a écrit ...
Dans un document comprenant exclusivement des tableaux/formulaires (protégé), je souhaitais inclure une zone de commentaires pouvant contenir plusieurs lignes. Accéder à un champ de formulaire pour y écrire une prose n'est pas du plus aisé. J'ai donc copieusement "pompé" le modèle de formulaire d'Anacoluthe. J'y suis presque Deux gros problèmes persistent et je ne m'en sors pas: 1) comment limiter en caractères la TextBox afin qu'elle corresponde à la taille du signet de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur - IF len(C) > 100 THEN C = left(C,100) - par exemple ou donner une valeur fixe à la ligne de tableau
2) comment éviter le plantage de la macro dans certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre textbox la chaîne s'allonge d'un caractère 10 de trop par rapport à une chaine normale où vbCR ne représente qu'un seul caractère 13. Le décalage finit par faire sortir le signet des limites du document. Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Merci d'avance pour vos lumières.
Anacoluthe « Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. » - Philippe GELUCK
Bonjour !
'JMM21' nous a écrit ...
Dans un document comprenant exclusivement
des tableaux/formulaires (protégé), je souhaitais
inclure une zone de commentaires pouvant contenir
plusieurs lignes.
Accéder à un champ de formulaire pour y écrire
une prose n'est pas du plus aisé.
J'ai donc copieusement "pompé" le modèle de
formulaire d'Anacoluthe.
J'y suis presque
Deux gros problèmes persistent
et je ne m'en sors pas:
1) comment limiter en caractères la TextBox
afin qu'elle corresponde à la taille du signet
de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur
- IF len(C) > 100 THEN C = left(C,100) - par exemple
ou donner une valeur fixe à la ligne de tableau
2) comment éviter le plantage de la macro dans
certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre
textbox la chaîne s'allonge d'un caractère 10 de trop par rapport
à une chaine normale où vbCR ne représente qu'un seul caractère 13.
Le décalage finit par faire sortir le signet des limites du document.
Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Merci d'avance pour vos lumières.
Anacoluthe
« Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. »
- Philippe GELUCK
Dans un document comprenant exclusivement des tableaux/formulaires (protégé), je souhaitais inclure une zone de commentaires pouvant contenir plusieurs lignes. Accéder à un champ de formulaire pour y écrire une prose n'est pas du plus aisé. J'ai donc copieusement "pompé" le modèle de formulaire d'Anacoluthe. J'y suis presque Deux gros problèmes persistent et je ne m'en sors pas: 1) comment limiter en caractères la TextBox afin qu'elle corresponde à la taille du signet de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur - IF len(C) > 100 THEN C = left(C,100) - par exemple ou donner une valeur fixe à la ligne de tableau
2) comment éviter le plantage de la macro dans certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre textbox la chaîne s'allonge d'un caractère 10 de trop par rapport à une chaine normale où vbCR ne représente qu'un seul caractère 13. Le décalage finit par faire sortir le signet des limites du document. Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Merci d'avance pour vos lumières.
Anacoluthe « Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. » - Philippe GELUCK
JMM21
Un grand merci à "Anacoluthe" qui a promptement et efficacement répondu :
1) comment limiter en caractères la TextBox afin qu'elle corresponde à la taille du signet de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur - IF len(C) > 100 THEN C = left(C,100) - par exemple ou donner une valeur fixe à la ligne de tableau
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox sans être bloqué. Mais bon, "il" peut faire attention aussi...
2) comment éviter le plantage de la macro dans certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre textbox la chaîne s'allonge d'un caractère 10 de trop par rapport à une chaine normale où vbCR ne représente qu'un seul caractère 13. Le décalage finit par faire sortir le signet des limites du document. Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Sur vos (sur tes) conseils, j'ai mis ceci
Public Sub RemplirSignet(S As String, C As String) C = Replace(C, vbLf, "") Dim Place As Long Place = ActiveDocument.Bookmarks(S).Range.Start If Len(C) > 100 Then C = Left(C, 100) ActiveDocument.Bookmarks(S).Range.Text = C ActiveDocument.Bookmarks.Add Name:=S, _ Range:¬tiveDocument.Range(Place, Place + Len(C)) End Sub
Qu'en pensez-vous (penses-tu) ?
Merci
[Jmm21] ☺♂
Un grand merci à "Anacoluthe" qui a
promptement et efficacement répondu :
1) comment limiter en caractères la TextBox
afin qu'elle corresponde à la taille du signet
de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur
- IF len(C) > 100 THEN C = left(C,100) - par exemple
ou donner une valeur fixe à la ligne de tableau
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox
sans être bloqué.
Mais bon, "il" peut faire attention aussi...
2) comment éviter le plantage de la macro dans
certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre
textbox la chaîne s'allonge d'un caractère 10 de trop par rapport
à une chaine normale où vbCR ne représente qu'un seul caractère 13.
Le décalage finit par faire sortir le signet des limites du document.
Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Sur vos (sur tes) conseils, j'ai mis ceci
Public Sub RemplirSignet(S As String, C As String)
C = Replace(C, vbLf, "")
Dim Place As Long
Place = ActiveDocument.Bookmarks(S).Range.Start
If Len(C) > 100 Then C = Left(C, 100)
ActiveDocument.Bookmarks(S).Range.Text = C
ActiveDocument.Bookmarks.Add Name:=S, _
Range:¬tiveDocument.Range(Place, Place + Len(C))
End Sub
Un grand merci à "Anacoluthe" qui a promptement et efficacement répondu :
1) comment limiter en caractères la TextBox afin qu'elle corresponde à la taille du signet de réception présent dans un tableau ?
Limiter d'office la chaîne à une certaine longueur - IF len(C) > 100 THEN C = left(C,100) - par exemple ou donner une valeur fixe à la ligne de tableau
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox sans être bloqué. Mais bon, "il" peut faire attention aussi...
2) comment éviter le plantage de la macro dans certains cas que je n'arrive pas à reproduire systématiquement
ça c'est un peu plus vicieux : à chaque saut de ligne dans votre textbox la chaîne s'allonge d'un caractère 10 de trop par rapport à une chaine normale où vbCR ne représente qu'un seul caractère 13. Le décalage finit par faire sortir le signet des limites du document. Il faut 'nettoyer' TextBox1.Text des chr(10) parasites
Sur vos (sur tes) conseils, j'ai mis ceci
Public Sub RemplirSignet(S As String, C As String) C = Replace(C, vbLf, "") Dim Place As Long Place = ActiveDocument.Bookmarks(S).Range.Start If Len(C) > 100 Then C = Left(C, 100) ActiveDocument.Bookmarks(S).Range.Text = C ActiveDocument.Bookmarks.Add Name:=S, _ Range:¬tiveDocument.Range(Place, Place + Len(C)) End Sub
Qu'en pensez-vous (penses-tu) ?
Merci
[Jmm21] ☺♂
Anacoluthe
Bonjour !
'JMM21' nous a écrit ...
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox sans être bloqué.
Sauf si on renseigne la propriété MaxLength de textbox1... C'est une autre méthode pour limiter la saisie !
Public Sub RemplirSignet(S As String, C As String) C = Replace(C, vbLf, "") Dim Place As Long Place = ActiveDocument.Bookmarks(S).Range.Start If Len(C) > 100 Then C = Left(C, 100) ActiveDocument.Bookmarks(S).Range.Text = C ActiveDocument.Bookmarks.Add Name:=S, _ Range:¬tiveDocument.Range(Place, Place + Len(C)) End Sub
Ça me semble bon. Perso, j'aurais placé les lignes modifiant C (2ème et 5ème) dans le CommandButton1_Click() sans rien changer à la proc RemplirSignet, mébon c'est un détail ;-)
Bonne continuation !
Anacoluthe « Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. » - Philippe GELUCK
Bonjour !
'JMM21' nous a écrit ...
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox
sans être bloqué.
Sauf si on renseigne la propriété MaxLength de textbox1...
C'est une autre méthode pour limiter la saisie !
Public Sub RemplirSignet(S As String, C As String)
C = Replace(C, vbLf, "")
Dim Place As Long
Place = ActiveDocument.Bookmarks(S).Range.Start
If Len(C) > 100 Then C = Left(C, 100)
ActiveDocument.Bookmarks(S).Range.Text = C
ActiveDocument.Bookmarks.Add Name:=S, _
Range:¬tiveDocument.Range(Place, Place + Len(C))
End Sub
Ça me semble bon. Perso, j'aurais placé les lignes modifiant C
(2ème et 5ème) dans le CommandButton1_Click() sans rien changer
à la proc RemplirSignet, mébon c'est un détail ;-)
Bonne continuation !
Anacoluthe
« Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. »
- Philippe GELUCK
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox sans être bloqué.
Sauf si on renseigne la propriété MaxLength de textbox1... C'est une autre méthode pour limiter la saisie !
Public Sub RemplirSignet(S As String, C As String) C = Replace(C, vbLf, "") Dim Place As Long Place = ActiveDocument.Bookmarks(S).Range.Start If Len(C) > 100 Then C = Left(C, 100) ActiveDocument.Bookmarks(S).Range.Text = C ActiveDocument.Bookmarks.Add Name:=S, _ Range:¬tiveDocument.Range(Place, Place + Len(C)) End Sub
Ça me semble bon. Perso, j'aurais placé les lignes modifiant C (2ème et 5ème) dans le CommandButton1_Click() sans rien changer à la proc RemplirSignet, mébon c'est un détail ;-)
Bonne continuation !
Anacoluthe « Pour voir qu'il fait noir, on n'a pas besoin d'être une lumière. » - Philippe GELUCK
JMM21
'JMM21' avait écrit ... Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox sans être bloqué.
Sauf si on renseigne la propriété MaxLength de textbox1... C'est une autre méthode pour limiter la saisie !
avait répondu Anacoluthe
J'avais également lancé cette doléance chez nos amis Exceliens.
Daniel.C a proposé ceci :
Private Sub TextBox1_Change() If Me.TextBox1.LineCount > 3 Then MsgBox "Nombre de lignes plus grand que trois" End If End Sub
C'est très bien !!!
Encore merci Cordialement
A+ -- [Jmm21] ☺♂
'JMM21' avait écrit ...
Néanmoins, l'utilisateur peut engranger la Bible dans la TextBox
sans être bloqué.
Sauf si on renseigne la propriété MaxLength de textbox1...
C'est une autre méthode pour limiter la saisie !
avait répondu Anacoluthe
J'avais également lancé cette doléance chez nos amis Exceliens.
Daniel.C a proposé ceci :
Private Sub TextBox1_Change()
If Me.TextBox1.LineCount > 3 Then
MsgBox "Nombre de lignes plus grand que trois"
End If
End Sub