Hello everybody,
Je suis sous Access 2003 et je vousdrais avoir un rendu spécial sur mes Etats.
Est-il possible de surligner le mot "Obligatoire" à chaque fois qu'il apparaît dans une étiquette/zone de texte??
Merci d'avance pour vos pistes!
Hello everybody,
Je suis sous Access 2003 et je vousdrais avoir un rendu spécial sur mes Etats.
Est-il possible de surligner le mot "Obligatoire" à chaque fois qu'il apparaît dans une étiquette/zone de texte??
Merci d'avance pour vos pistes!
As-tu regardé du coté de la mise en forme conditionnelle ?
Bonjour
C'est tout ce qu'il y a dans la zone de texte ou juste un mot de celle-ci ?
Philippe
merci de vos réponses rapides!
le problème c'est que "obligatoire" n'est pas le seul mot. Il est présent parmis d'autres caractères... Donc la mise en forme conditionnelle ne marche pas d'après mes essais...
Bonjour
Ce n'est pas possible dans la version 2003, mais uniquement à partir de la version 2007, qui permet de mettre du texte enrichi dans un champ mémo.
Pour les autres versions, il faut remplacer tes zones de texte par un contrôle RichTextBox :Utilisation du contrôle Microsoft RichTextBox
Philippe
Merci de l'info.
Je vais user d'une ou deux astuces pour parvenir à mes fins!
Merci encore,
bjr,
on peut directement dessiner le texte à la place de la textbox
Sur formatage de la section, on rend la textbox invisible et on exécute une petite fonction de dessin :
Voilà la fonction de dessin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Détail_Format(Cancel As Integer, FormatCount As Integer) Me.t2.Visible = False EcritTexte Me.t2 End Sub
C'est pas commenté je viens de l'écrire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Private Sub EcritTexte(pTextBox As Access.TextBox) Dim lTexte As String Dim lTexteAEcrire As String lTexte = pTextBox.Value Dim lpos As String Me.ScaleMode = 1 Me.CurrentX = pTextBox.Left Me.FontName = pTextBox.FontName Me.FontSize = pTextBox.FontSize Me.FontUnderline = pTextBox.FontUnderline Me.ForeColor = pTextBox.ForeColor Do lpos = InStr(1, lTexte, "obligatoire", vbTextCompare) If lpos = 0 Then Me.FontBold = False lpos = Len(lTexte) + 1 ElseIf lpos = 1 Then Me.FontBold = True lpos = Len("obligatoire") + 1 Else Me.FontBold = False End If Me.CurrentY = pTextBox.Top lTexteAEcrire = Mid(lTexte, 1, lpos - 1) Do If Me.CurrentX + Me.TextWidth(lTexteAEcrire) > pTextBox.Left + pTextBox.Width Then lTexteAEcrire = Left(lTexteAEcrire, Len(lTexteAEcrire) - 1) If Len(lTexteAEcrire) = 0 Then Exit Do Else Exit Do End If Loop If Len(lTexteAEcrire) = 0 Then Exit Do Me.Print lTexteAEcrire lTexte = Mid(lTexte, lpos) If lTexte = "" Then Exit Do Loop End Sub
En gros on parcours la chaîne de caractère et on écrit le texte.
Si on trouve "obligatoire" dans le texte on l'écrit en gras.
On utilise TextWidth pour éviter d'écrire plus large que l'emplacement de la textbox.
C'est une idée, pas un code fini.
Si il y a des sauts de ligne ça ne marche pas par exemple...
Bon courage.
Salut Arkham
D'où tu me sorts un truc fou comme cela (tu nous y a habitué ), mais là , il faudra que je teste.
Philippe
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager