Appliquer une mise en forme au caractère qui précède le curseur
10 réponses
Patrick_67
Bonjour =E0 toutes et =E0 tous,
Je dispose d'Access 2007 qui permet (pour les champs de type 'm=E9mo')
de mettre en forme uniquement quelques-uns des caract=E8res d'un champ
de donn=E9es.
J'ai un formulaire qui contient de nombreux champs de donn=E9es.
J'aimerai :
1=2E cliquer dans un champ
2=2E au moment de l'=E9x=E9cution d'un raccourci-clavier personnalis=E9, fa=
ire
en sorte qu'une mise en forme personnalis=E9e soit imm=E9diatement
appliqu=E9e au caract=E8re qui se trouve =E0 gauche du curseur
puis r=E9p=E9ter les =E9tapes 1 et 2 manuellement, autant que n=E9cessaire.
Exemple :
Soit un formulaire qui contient un champ 'R=E9f=E9rence_Article' et un
champ 'R=E9f=E9rence-Fournisseur'
L'enregistrement actuellement =E0 l'=E9cran affiche la r=E9f=E9rence article
"123abc456" et la r=E9f=E9rence fournisseur "F789ZY18".
1=2E Je clique dans la r=E9f=E9rence article entre le "b" et le "c".
2=2E via un raccourci clavier (ex. CTRL + m), le "b" (qui se trouve =E0
gauche du curseur) devrait se mettre en couleur de police rouge et en
soulign=E9.
3=2E Je clique ensuite dans la r=E9f=E9rence fournisseur entre le "Y" et le
"1".
4=2E via le m=EAme raccourci clavier (CTRL + m), le "Y" (qui se trouve =E0
gauche du curseur) devrait =E9galement se mettre en couleur de police
rouge et en soulign=E9.
Je souhaite r=E9p=E9ter cette op=E9ration pour toute une s=E9rie de donn=E9=
es.
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
Thierry (ze Titi)
Bonjour Patrick_67
Sans vouloir paraître pessimiste, je pense que tu demandes l'impossible... Je peux me tromper mais, à moins d'un activeX autorisant ce genre de chose, Access ne permet en natif ce type de fantaisie. A confirmer (ou infirmer) par les personnes plus compétentes que moi...
Dans ton message du dimanche 16/09/2007 jour de Sainte Edith, tu as pris l'initiative de nous narrer les faits suivants:
Bonjour à toutes et à tous,
Je dispose d'Access 2007 qui permet (pour les champs de type 'mémo') de mettre en forme uniquement quelques-uns des caractères d'un champ de données.
J'ai un formulaire qui contient de nombreux champs de données.
J'aimerai : 1. cliquer dans un champ 2. au moment de l'éxécution d'un raccourci-clavier personnalisé, faire en sorte qu'une mise en forme personnalisée soit immédiatement appliquée au caractère qui se trouve à gauche du curseur puis répéter les étapes 1 et 2 manuellement, autant que nécessaire.
Exemple : Soit un formulaire qui contient un champ 'Référence_Article' et un champ 'Référence-Fournisseur' L'enregistrement actuellement à l'écran affiche la référence article "123abc456" et la référence fournisseur "F789ZY18".
1. Je clique dans la référence article entre le "b" et le "c". 2. via un raccourci clavier (ex. CTRL + m), le "b" (qui se trouve à gauche du curseur) devrait se mettre en couleur de police rouge et en souligné. 3. Je clique ensuite dans la référence fournisseur entre le "Y" et le "1". 4. via le même raccourci clavier (CTRL + m), le "Y" (qui se trouve à gauche du curseur) devrait également se mettre en couleur de police rouge et en souligné.
Je souhaite répéter cette opération pour toute une série de données.
Sans vouloir paraître pessimiste, je pense que tu demandes
l'impossible... Je peux me tromper mais, à moins d'un activeX
autorisant ce genre de chose, Access ne permet en natif ce type de
fantaisie. A confirmer (ou infirmer) par les personnes plus compétentes
que moi...
Dans ton message <1189964945.562090.114520@w3g2000hsg.googlegroups.com>
du dimanche 16/09/2007 jour de Sainte Edith, tu as pris l'initiative de
nous narrer les faits suivants:
Bonjour à toutes et à tous,
Je dispose d'Access 2007 qui permet (pour les champs de type 'mémo')
de mettre en forme uniquement quelques-uns des caractères d'un champ
de données.
J'ai un formulaire qui contient de nombreux champs de données.
J'aimerai :
1. cliquer dans un champ
2. au moment de l'éxécution d'un raccourci-clavier personnalisé, faire
en sorte qu'une mise en forme personnalisée soit immédiatement
appliquée au caractère qui se trouve à gauche du curseur
puis répéter les étapes 1 et 2 manuellement, autant que nécessaire.
Exemple :
Soit un formulaire qui contient un champ 'Référence_Article' et un
champ 'Référence-Fournisseur'
L'enregistrement actuellement à l'écran affiche la référence article
"123abc456" et la référence fournisseur "F789ZY18".
1. Je clique dans la référence article entre le "b" et le "c".
2. via un raccourci clavier (ex. CTRL + m), le "b" (qui se trouve à
gauche du curseur) devrait se mettre en couleur de police rouge et en
souligné.
3. Je clique ensuite dans la référence fournisseur entre le "Y" et le
"1".
4. via le même raccourci clavier (CTRL + m), le "Y" (qui se trouve à
gauche du curseur) devrait également se mettre en couleur de police
rouge et en souligné.
Je souhaite répéter cette opération pour toute une série de données.
Merci d'avance de vos réponses...
Patrick.
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Sans vouloir paraître pessimiste, je pense que tu demandes l'impossible... Je peux me tromper mais, à moins d'un activeX autorisant ce genre de chose, Access ne permet en natif ce type de fantaisie. A confirmer (ou infirmer) par les personnes plus compétentes que moi...
Dans ton message du dimanche 16/09/2007 jour de Sainte Edith, tu as pris l'initiative de nous narrer les faits suivants:
Bonjour à toutes et à tous,
Je dispose d'Access 2007 qui permet (pour les champs de type 'mémo') de mettre en forme uniquement quelques-uns des caractères d'un champ de données.
J'ai un formulaire qui contient de nombreux champs de données.
J'aimerai : 1. cliquer dans un champ 2. au moment de l'éxécution d'un raccourci-clavier personnalisé, faire en sorte qu'une mise en forme personnalisée soit immédiatement appliquée au caractère qui se trouve à gauche du curseur puis répéter les étapes 1 et 2 manuellement, autant que nécessaire.
Exemple : Soit un formulaire qui contient un champ 'Référence_Article' et un champ 'Référence-Fournisseur' L'enregistrement actuellement à l'écran affiche la référence article "123abc456" et la référence fournisseur "F789ZY18".
1. Je clique dans la référence article entre le "b" et le "c". 2. via un raccourci clavier (ex. CTRL + m), le "b" (qui se trouve à gauche du curseur) devrait se mettre en couleur de police rouge et en souligné. 3. Je clique ensuite dans la référence fournisseur entre le "Y" et le "1". 4. via le même raccourci clavier (CTRL + m), le "Y" (qui se trouve à gauche du curseur) devrait également se mettre en couleur de police rouge et en souligné.
Je souhaite répéter cette opération pour toute une série de données.
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à programmer une mise en forme spécifique qui s'applique au caractère précédent le curseur. C'était assez facile car j'ai réussi à écrire une procédure VBA q ui va : 1. connaître l'emplacement du curseur 2. sélectionner le caractère qui le précède 3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème. Par contre c'est déterminer la position du curseur dans le champ puis sélectionner le caractère qui le précède que je n'arrive pas à réaliser.
Merci d'avance pour toute idée supplémentaire...
Patrick.
Merci Thierry pour ta réponse.
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à
programmer une mise en forme spécifique qui s'applique au caractère
précédent le curseur.
C'était assez facile car j'ai réussi à écrire une procédure VBA q ui
va :
1. connaître l'emplacement du curseur
2. sélectionner le caractère qui le précède
3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème.
Par contre c'est déterminer la position du curseur dans le champ puis
sélectionner le caractère qui le précède que je n'arrive pas à
réaliser.
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à programmer une mise en forme spécifique qui s'applique au caractère précédent le curseur. C'était assez facile car j'ai réussi à écrire une procédure VBA q ui va : 1. connaître l'emplacement du curseur 2. sélectionner le caractère qui le précède 3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème. Par contre c'est déterminer la position du curseur dans le champ puis sélectionner le caractère qui le précède que je n'arrive pas à réaliser.
Merci d'avance pour toute idée supplémentaire...
Patrick.
Fabien
Merci Thierry pour ta réponse.
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à programmer une mise en forme spécifique qui s'applique au caractère précédent le curseur. C'était assez facile car j'ai réussi à écrire une procédure VBA qui va : 1. connaître l'emplacement du curseur 2. sélectionner le caractère qui le précède 3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème. Par contre c'est déterminer la position du curseur dans le champ puis sélectionner le caractère qui le précède que je n'arrive pas à réaliser.
Merci d'avance pour toute idée supplémentaire...
Patrick.
Salut,
Word et access c'est pas la même chose ;-) Dans access une propriété s'applique a un contrôle de façon globale. Donc même si tu as la position du curseur tu ne peux agir sur le texte à cette position Mais tu peux définir un autre contrôle d'un caractère qui reprendrais celui que tu veux et auquel tu appliquerais la propriété. Reste a superposer le contrôle 'court' sur le contrôle long et a le mettre en visible et avant-plan. A essayer ...
Merci Thierry pour ta réponse.
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à
programmer une mise en forme spécifique qui s'applique au caractère
précédent le curseur.
C'était assez facile car j'ai réussi à écrire une procédure VBA qui
va :
1. connaître l'emplacement du curseur
2. sélectionner le caractère qui le précède
3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème.
Par contre c'est déterminer la position du curseur dans le champ puis
sélectionner le caractère qui le précède que je n'arrive pas à
réaliser.
Merci d'avance pour toute idée supplémentaire...
Patrick.
Salut,
Word et access c'est pas la même chose ;-)
Dans access une propriété s'applique a un contrôle de façon globale.
Donc même si tu as la position du curseur tu ne peux agir sur le texte à
cette position
Mais tu peux définir un autre contrôle d'un caractère qui reprendrais
celui que tu veux et auquel tu appliquerais la propriété. Reste a
superposer le contrôle 'court' sur le contrôle long et a le mettre en
visible et avant-plan.
A essayer ...
Ma demande est certes délicate mais peut-être pas impossible.
En Word par exemple (où j'avais le même besoin), j'ai réussi à programmer une mise en forme spécifique qui s'applique au caractère précédent le curseur. C'était assez facile car j'ai réussi à écrire une procédure VBA qui va : 1. connaître l'emplacement du curseur 2. sélectionner le caractère qui le précède 3. appliquer une mise en forme
En Access, programmer la mise en forme ne me pose pas de problème. Par contre c'est déterminer la position du curseur dans le champ puis sélectionner le caractère qui le précède que je n'arrive pas à réaliser.
Merci d'avance pour toute idée supplémentaire...
Patrick.
Salut,
Word et access c'est pas la même chose ;-) Dans access une propriété s'applique a un contrôle de façon globale. Donc même si tu as la position du curseur tu ne peux agir sur le texte à cette position Mais tu peux définir un autre contrôle d'un caractère qui reprendrais celui que tu veux et auquel tu appliquerais la propriété. Reste a superposer le contrôle 'court' sur le contrôle long et a le mettre en visible et avant-plan. A essayer ...
Patrick_67
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précè de le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
"Word et access c'est pas la même chose" : je confirme; et même Excel
diffère (un peu, beaucoup, passionnément, à la folie) des 2
précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon
globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007,
à condition que le champ soit de type Memo et que l'on ait défini la
propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et
différentes sur plusieurs parties du texte d'un champ de type Memo.
J'arrive donc manuellement à mettre en forme le caractère qui précè de
le curseur dans un tel champ.
Normalement quasiment toute manipulation "manuelle" doit pouvoir
s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon
objectif.
Toute la difficulté ici consiste à connaître la position du curseur
puis à sélectionner ensuite la caractère qui le précède.
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précè de le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
Thierry (ze Titi)
Regarde du côté des propriétés SelStart et SelLength du contrôle, ça devrait répondre à ton besoin.
Message du mardi 18/09/2007
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précède le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Regarde du côté des propriétés SelStart et SelLength du contrôle, ça
devrait répondre à ton besoin.
Message du mardi 18/09/2007
"Word et access c'est pas la même chose" : je confirme; et même Excel
diffère (un peu, beaucoup, passionnément, à la folie) des 2
précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon
globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007,
à condition que le champ soit de type Memo et que l'on ait défini la
propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et
différentes sur plusieurs parties du texte d'un champ de type Memo.
J'arrive donc manuellement à mettre en forme le caractère qui précède
le curseur dans un tel champ.
Normalement quasiment toute manipulation "manuelle" doit pouvoir
s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon
objectif.
Toute la difficulté ici consiste à connaître la position du curseur
puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Regarde du côté des propriétés SelStart et SelLength du contrôle, ça devrait répondre à ton besoin.
Message du mardi 18/09/2007
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précède le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Voici un point rapide après des premiers tests : * j'ai créé un champ "Commentaire" dans un formulaire * ce contrôle est issu d'un champ "Commentaire" d'une table (champ de type "mémo" dont la propriété "format de texte" = "texte enrichi") * pour tester, je saisis ceci dans ce champ "Ceci est un test" * puis j'ai écris le code suivant associé à l'évènement "Double-c lic" sur ce champ commentaire * cette petite procédure affiche (via un Msgbox) le caractère se trouvant à gauche du curseur au moment d'un double-clic
'-------------------------------------------------------------------------- -------------------------------------------------------------- Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then MsgBox "caractère précédent : " & Mid(Me.Commentaire, Me.Commentaire.SelStart, 1) End If
End Sub '-------------------------------------------------------------------------- --------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon objectif : 1. sélectionner par VBA le caractère précédent le double-clic (le même qui s'affiche en ce moment via l'instruction Msgbox) 2. puis mettre en forme automatiquement ce caractère (exemple : en gras et en couleur de police rouge)
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo 2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...
Voici un point rapide après des premiers tests :
* j'ai créé un champ "Commentaire" dans un formulaire
* ce contrôle est issu d'un champ "Commentaire" d'une table (champ de
type "mémo" dont la propriété "format de texte" = "texte enrichi")
* pour tester, je saisis ceci dans ce champ "Ceci est un test"
* puis j'ai écris le code suivant associé à l'évènement "Double-c lic"
sur ce champ commentaire
* cette petite procédure affiche (via un Msgbox) le caractère se
trouvant à gauche du curseur au moment d'un double-clic
'-------------------------------------------------------------------------- --------------------------------------------------------------
Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then
MsgBox "caractère précédent : " & Mid(Me.Commentaire,
Me.Commentaire.SelStart, 1)
End If
End Sub
'-------------------------------------------------------------------------- --------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci
est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche
du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon
objectif :
1. sélectionner par VBA le caractère précédent le double-clic (le même
qui s'affiche en ce moment via l'instruction Msgbox)
2. puis mettre en forme automatiquement ce caractère (exemple : en
gras et en couleur de police rouge)
En résume, comment faire par VBA :
1. une sélection partielle d'un champ mémo
2. puis ensuite appliquer une mise en forme personnalisée à cette
sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...
Voici un point rapide après des premiers tests : * j'ai créé un champ "Commentaire" dans un formulaire * ce contrôle est issu d'un champ "Commentaire" d'une table (champ de type "mémo" dont la propriété "format de texte" = "texte enrichi") * pour tester, je saisis ceci dans ce champ "Ceci est un test" * puis j'ai écris le code suivant associé à l'évènement "Double-c lic" sur ce champ commentaire * cette petite procédure affiche (via un Msgbox) le caractère se trouvant à gauche du curseur au moment d'un double-clic
'-------------------------------------------------------------------------- -------------------------------------------------------------- Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then MsgBox "caractère précédent : " & Mid(Me.Commentaire, Me.Commentaire.SelStart, 1) End If
End Sub '-------------------------------------------------------------------------- --------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon objectif : 1. sélectionner par VBA le caractère précédent le double-clic (le même qui s'affiche en ce moment via l'instruction Msgbox) 2. puis mettre en forme automatiquement ce caractère (exemple : en gras et en couleur de police rouge)
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo 2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...
Fabien
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précède le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
Autant pour moi, Je pensais ( à tord) que tu voulais appliquer cette
mise en forme sur un controle autre que le Memo ;-) Bon chance ..
"Word et access c'est pas la même chose" : je confirme; et même Excel
diffère (un peu, beaucoup, passionnément, à la folie) des 2
précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon
globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007,
à condition que le champ soit de type Memo et que l'on ait défini la
propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et
différentes sur plusieurs parties du texte d'un champ de type Memo.
J'arrive donc manuellement à mettre en forme le caractère qui précède
le curseur dans un tel champ.
Normalement quasiment toute manipulation "manuelle" doit pouvoir
s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon
objectif.
Toute la difficulté ici consiste à connaître la position du curseur
puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
Autant pour moi, Je pensais ( à tord) que tu voulais appliquer cette
mise en forme sur un controle autre que le Memo ;-)
Bon chance ..
"Word et access c'est pas la même chose" : je confirme; et même Excel diffère (un peu, beaucoup, passionnément, à la folie) des 2 précédents ;-)
"Dans access une propriété s'applique a un contrôle de façon globale." : vrai jusqu'à Access 2003 mais possible depuis Access 2007, à condition que le champ soit de type Memo et que l'on ait défini la propriété "Format du Texte" à "Texte enrichi"
On peut donc dorénavant appliquer des mises en formes multiples et différentes sur plusieurs parties du texte d'un champ de type Memo. J'arrive donc manuellement à mettre en forme le caractère qui précède le curseur dans un tel champ. Normalement quasiment toute manipulation "manuelle" doit pouvoir s'écrire en VBA afin de l'automatiser. : ce qui est précisément mon objectif. Toute la difficulté ici consiste à connaître la position du curseur puis à sélectionner ensuite la caractère qui le précède.
Wait and see...
Autant pour moi, Je pensais ( à tord) que tu voulais appliquer cette
mise en forme sur un controle autre que le Memo ;-) Bon chance ..
Thierry (ze Titi)
Citation d'un post précédent:
En Access, programmer la mise en forme ne me pose pas de problème.
Repris du dernier post:
2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Un peu contradictoire tout ça, je trouve...
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo
If Me.Commentaire.SelStart > 0 Then Me.Commentaire.SelStart=Me.Commentaire.SelStart-1 Me.Commentaire.SelLength=1 End If
Pour l'application de la mise en forme, je ne suis pas compétent.
'---------------------------------------------------------------------------------------------------------------------------------------- Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then MsgBox "caractère précédent : " & Mid(Me.Commentaire, Me.Commentaire.SelStart, 1) End If
End Sub '----------------------------------------------------------------------------------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon objectif : 1. sélectionner par VBA le caractère précédent le double-clic (le même qui s'affiche en ce moment via l'instruction Msgbox) 2. puis mettre en forme automatiquement ce caractère (exemple : en gras et en couleur de police rouge)
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo 2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...
En Access, programmer la mise en forme ne me pose pas de problème.
Repris du dernier post:
2. puis ensuite appliquer une mise en forme personnalisée à cette
sélection ?
Un peu contradictoire tout ça, je trouve...
En résume, comment faire par VBA :
1. une sélection partielle d'un champ mémo
If Me.Commentaire.SelStart > 0 Then
Me.Commentaire.SelStart=Me.Commentaire.SelStart-1
Me.Commentaire.SelLength=1
End If
Pour l'application de la mise en forme, je ne suis pas compétent.
'----------------------------------------------------------------------------------------------------------------------------------------
Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then
MsgBox "caractère précédent : " & Mid(Me.Commentaire,
Me.Commentaire.SelStart, 1)
End If
End Sub
'----------------------------------------------------------------------------------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci
est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche
du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon
objectif :
1. sélectionner par VBA le caractère précédent le double-clic (le même
qui s'affiche en ce moment via l'instruction Msgbox)
2. puis mettre en forme automatiquement ce caractère (exemple : en
gras et en couleur de police rouge)
En résume, comment faire par VBA :
1. une sélection partielle d'un champ mémo
2. puis ensuite appliquer une mise en forme personnalisée à cette
sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
En Access, programmer la mise en forme ne me pose pas de problème.
Repris du dernier post:
2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Un peu contradictoire tout ça, je trouve...
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo
If Me.Commentaire.SelStart > 0 Then Me.Commentaire.SelStart=Me.Commentaire.SelStart-1 Me.Commentaire.SelLength=1 End If
Pour l'application de la mise en forme, je ne suis pas compétent.
'---------------------------------------------------------------------------------------------------------------------------------------- Private Sub Commentaire_DblClick(Cancel As Integer)
If Me.Commentaire.SelStart > 0 Then MsgBox "caractère précédent : " & Mid(Me.Commentaire, Me.Commentaire.SelStart, 1) End If
End Sub '----------------------------------------------------------------------------------------------------------------------------------------
Par exemple, si le double-clic se fait entre le "u" et le "n" de "ceci est un test", la procédure va afficher un "u".
J'ai donc bien réussi à identifier la caractère se trouvant à gauche du curseur.
Par contre je bute ensuite pour les 2 étapes suivantes de mon objectif : 1. sélectionner par VBA le caractère précédent le double-clic (le même qui s'affiche en ce moment via l'instruction Msgbox) 2. puis mettre en forme automatiquement ce caractère (exemple : en gras et en couleur de police rouge)
En résume, comment faire par VBA : 1. une sélection partielle d'un champ mémo 2. puis ensuite appliquer une mise en forme personnalisée à cette sélection ?
Merci d'avance pour toute nouvelle idée en ce sens...