OVH Cloud OVH Cloud

RR carcatères spéciaux

22 réponses
Avatar
b.delap
Ola, buenas tardes, goût d'afternoon
Titillé par les indications de la reine du RR, j'ai un petit souci.
Je souhaite utiliser la belle macro de Anacoluthe pour faire des calculs
dans un doc.
Mais ces calculs sont présentés comme à l'école :
par exemple, au lieu de 6*5, le texte saisi est 6 x 5
où x est un truc que j'ai VBAisé et qui est désigné dans le code VBA par :
Font:="Symbol", CharacterNumber:=-3912, Unicode:= _True
L'expression n'est pas calculable ainsi.
J'avais donc imaginé ajouter à la macro un truc par RR qui me permettrait de
remplacer mon texte par 6*5.
Pour le replacer après le calcul.
Mais je ne vois pas comment je dois rédiger l'instruction pour que RR trouve
ce caractère.
J'ai esayé :
Utiliser les caractères génériques.
Rechercher : ?
Mise en forme : police : Symbol
Mais il ne trouve pas.

Autre fait troublant : quand je sélectionne ce cractère, la police qui
s'affiche dans la zone déroulante des polices n'est pas la police Symbol,
mais celle de l'ensemble du texte alentour.
En revanche, si je double clic sur le caractère, la boîte de dialogue
caractères spéciaux apparaît sur l'onglet symboles afficahant la police
Symbol et la case sélectionnée est bien celle du dit caractère.

En tout cas, merci d'avance pour les déjà très intéressantes infos à propos
de RR.

Voilà.
Bernard

10 réponses

1 2 3
Avatar
Clément Marcotte
Bonjour,

Je souhaite utiliser la belle macro de Anacoluthe pour faire des
calculs

dans un doc.
Mais ces calculs sont présentés comme à l'école :
par exemple, au lieu de 6*5, le texte saisi est 6 x 5


En admettant qu'Anacoluthe ait fait une belle macro, elle n'arrive pas
à la cheville de celle-ci ;-)


http://groups.google.com/groups?hl=fr&lr=&selm=uBR8O02gAHA.1928%40tkmsftngp03&rnum

Avatar
Clément Marcotte
En admettant qu'Anacoluthe ait fait une belle macro, elle n'arrive
pas

à la cheville de celle-ci ;-)


Mais là, c'est André qui va être tiraillé. :-)


Avatar
b.delap
Clément Marcotte m'a instruit avec célérité: (et je l'en remercie)
En admettant qu'Anacoluthe ait fait une belle macro,
Il faut y associer André Barelier et une piste de JièL

elle n'arrive pas à la cheville de celle-ci ;-)
http://groups.google.com/groups?hl=fr&lr=&selm=uBR8O02gAHA.1928%40tkmsftngp03&rnum


Elle est ben belle, mais va falloir que j'y farfouille, parce qu'elle me dit
que 4x7 = 11, ou que 6 divisé par 2 = 0, ce qui est encore à prouver.
...
Après avoir commencé à farfouiller, je vois que dans cette macro, le signe
de la division (trait entre deux points) apparait dans le code VBA.
Alors ma nouvelle question est de savoir comment on peut introduire des
caractères de ce type dans le texte d'une macro.
J'ai essayé de passer par la table de caractères mais ça ne marche pas.

--
Voilà.
Bernard

Avatar
Petit Denis
Bonjour

Elle est ben belle, mais va falloir que j'y farfouille, parce qu'elle
me dit que 4x7 = 11, ou que 6 divisé par 2 = 0, ce qui est encore à
prouver. ...


C'est sans doûte des maths ultra-modernes !

--
Petit Denis

Avatar
Clément Marcotte
Bonjour,

Il faut y associer André Barelier et une piste de JièL


C'est effectivement une demande d'André en 2001, comme tu as vu la
date dans Google. Mais, si mes lointains souvenirs sont exacts, JièL a
jute inspiré Anacoluthe en 2004 ou 2005.

Elle est ben belle, mais va falloir que j'y farfouille, parce
qu'elle me dit

que 4x7 = 11, ou que 6 divisé par 2 = 0, ce qui est encore à
prouver.

...


Je viens tout juste de la réessayer avec 4X7, 6/2 et 6÷2. Chaque fois
j'ai eu le bon résultat. As tu bien sélectionné l'opération et gardé
la sélection avant de lancer la macro ?

Alors ma nouvelle question est de savoir comment on peut introduire
des

caractères de ce type dans le texte d'une macro.
J'ai essayé de passer par la table de caractères mais ça ne marche
pas.


Dans la table de caractères, tu sélectionnes le caractère par un
double-clic, ou tu fais un clic sur le caractère et un clic sur
sélection, puis tu cliques sur copie Avant de cliquer.

Le caractère doit être dans le carré en haut à droite, avant de
cliquer sur Copier

Ensuite tu colles dans le module.

Avatar
AB
Hello tout le monde !

Voui, voui, grâce à Clément, j'utilise régulièrement la macro qu'il avait
créée il y a déjà quelques...années.
Je l'ai modifiée, justement pour pouvoir lui faire interpréter les
expressions du style 25*65.
On peut la modifier encore pour lui permettre d'interpréter celles du type
25x65.
Dans mon optique, qui est celle d'un concepteur d'ouvrages, je cherchais à
écrire des expressions mathématiques très simples, et à avoir le résultat
mis en forme tout de suite (sans passer par la calculatrice ou Excel).
Alors que j'ai l'impression que Bernard cherche à interpréter des
expressions écrites par d'autres, avec des symboles qui leur sont propres.
Avec cette macro, on peut taper : 45*9-6, actionner la macro et obtenir : 45
× 9 - 6 = 399
Si on change le 9 en 8 dans la formule résultante, une nouvelle activation
de la macro donne : 45 × 8 - 6 = 354
Bref, pour moi, c'est un outil fantastique.
Si ça vous intéresse, voici le code (désolé, c'est un peu long, mais ce
n'est que tu texte). Encore MERCI Clément !!!
André

Sub calculhorizontal()
'Il faut taper la formule avec ou sans espaces et laisser le curseur
n'importe où dans la ligne
'la macro supprime d'abord tous les espaces, et les restitue après calcul,
sauf dans les nombres autres que le résultat
'la 1ère partie du code remet à 0 le résultat précédent éventuel, si on
modifie les valeurs. la macro recalcule le résultat
Selection.HomeKey Unit:=wdLine
Selection.Extend
Selection.EndKey Unit:=wdLine
Selection.MoveLeft Unit:=wdCharacter, Count:=1

With Selection.Find
.Text = " "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

With Selection.Find
.Text = ","
.Replacement.Text = "."
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

With Selection.Find
.Forward = True
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Wrap = wdFindStop
.Execute Findtext:="="
End With
If Selection.Find.Found = True Then
Selection.Extend
Selection.EndKey Unit:=wdLine
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.Delete


Selection.HomeKey
Selection.Extend
Selection.EndKey Unit:=wdLine

End If
'ici commence la macro de calcul
'Selection.Extend
'Selection.HomeKey Unit:=wdLine
'Selection.Find.ClearFormatting
'Selection.Find.Replacement.ClearFormatting

'Selection.Find.Execute Replace:=wdReplaceAll
expression = Selection
If Len(Selection) <= 1 Then
MsgBox "Vous n'avez pas sélectionné de nombre", vbOKOnly, "Erreur
dans la sélection"
End
End If
With Selection.Find
.Text = "*"
.Replacement.Text = " × "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "-"
.Replacement.Text = " - "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "+"
.Replacement.Text = " + "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "/"
.Replacement.Text = " / "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll


place% = 1
dehors% = False
Do
If InStr(place%, expression, "×") > 0 Then
place% = InStr(expression, "×")
Mid$(expression, InStr(expression, "×"), 1) = "*"
ElseIf InStr(expression, "×") > 0 Then
place% = InStr(expression, "×")
Mid$(expression, InStr(expression, "×"), 1) = "*"
Else
dehors% = True
End If
Loop Until dehors% = True
expression1 = Selection
Selection = expression
expression = expression1
resultat = Selection.Calculate
Position% = InStr(resultat, ".")
If Position% = 0 Then Position% = InStr(resultat, ".")
If Position% = 0 Then
longueur = Len(resultat)
caractere = ""
Select Case longueur
Case Is <= 3
Nombreseparateurs = 0
Case 4 To 6
Nombreseparateurs = 1
Case Else
Nombreseparateurs = longueur 3
End Select
reponse = resultat
Else
partieentiere = Left(resultat, Position% - 1)
PartieDécimale = Right(resultat, Len(resultat) - Position%)
longueur = Len(partieentiere)
Select Case longueur
Case Is <= 3
Nombreseparateurs = 0
Case 4 To 6
Nombreseparateurs = 1
Case Else
Nombreseparateurs = longueur 3
End Select
reponse = resultat
caractere = "."
End If
If Nombreseparateurs >= 1 Then
reponse = ""
premierseparateur = longueur Mod 3
If premierseparateur = 0 Then premierseparateur = 3
j% = 1
For i% = 1 To Nombreseparateurs + 1
Select Case i%
Case 1
nombrecaracteres = premierseparateur
Case 2
nombrecaracteres = 3
Case Else
End Select
extrait = Mid(resultat, j%, nombrecaracteres)
j% = j% + nombrecaracteres
If i% <= Nombreseparateurs Then
reponse = reponse & extrait & Chr(160)
Else
reponse = reponse & extrait & caractere
End If
Next
reponse = " = " & reponse & PartieDécimale
Else
reponse = " = " & reponse
End If
Selection.Delete
'Selection.TypeParagraph
Selection.InsertAfter expression
Selection.EndKey
'Selection.MoveRight Unit:=wdCharacter, Count:=1
'Selection.Delete Unit:=wdCharacter, Count:=1
Selection.InsertAfter reponse

Selection.Expand Unit:=wdLine

With Selection.Find
.Text = "."
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

With Selection.Find
.Text = "×"
.Replacement.Text = " × "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

With Selection.Find
.Text = "%"
.Replacement.Text = " %"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.MoveRight Unit:=wdCharacter, Count:=1
'Selection.TypeParagraph
End Sub



"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

Il faut y associer André Barelier et une piste de JièL


C'est effectivement une demande d'André en 2001, comme tu as vu la
date dans Google. Mais, si mes lointains souvenirs sont exacts, JièL a
jute inspiré Anacoluthe en 2004 ou 2005.

Elle est ben belle, mais va falloir que j'y farfouille, parce
qu'elle me dit

que 4x7 = 11, ou que 6 divisé par 2 = 0, ce qui est encore à
prouver.

...


Je viens tout juste de la réessayer avec 4X7, 6/2 et 6÷2. Chaque fois
j'ai eu le bon résultat. As tu bien sélectionné l'opération et gardé
la sélection avant de lancer la macro ?

Alors ma nouvelle question est de savoir comment on peut introduire
des

caractères de ce type dans le texte d'une macro.
J'ai essayé de passer par la table de caractères mais ça ne marche
pas.


Dans la table de caractères, tu sélectionnes le caractère par un
double-clic, ou tu fais un clic sur le caractère et un clic sur
sélection, puis tu cliques sur copie Avant de cliquer.

Le caractère doit être dans le carré en haut à droite, avant de
cliquer sur Copier

Ensuite tu colles dans le module.





Avatar
b.delap
Clément Marcotte a pris le temps de m'instruire, et je l'en remercie.

Je viens tout juste de la réessayer avec 4X7, 6/2 et 6÷2. Chaque fois
j'ai eu le bon résultat. As tu bien sélectionné l'opération et gardé
la sélection avant de lancer la macro ?
Mauvaise manip de ma part. Toutes mes désoles.

Ca marche avec 4X7, 6/2, et aussi avec 4x7 (j'avais déjà farfouillé et
modifié je ne sais quoi avant de faire cet essai là. )
En rvanche pas avec 6÷2.
Je crois que le problème vient de ce type de caractère : ´ ou ¸ que la
macro ne reconnaît pas.
Si je suis le processus que tu m'indiques pour insérer ´ dans le code VBA,
il en affiche un autre qui ressemble à : ' (apostrophe).
Alors que j'arrive sans difficulté à insérer ce caractère dans ce courrier,
par exemple.Mais ayant pris le temps de relire avant de poster, je
m'aperçois qu'il ne s'affichent pas comme ils devraient, les vilains.

Mais, bon ... Tout cela est un peu sans utilité autre que celle de
comprendre.
Je vais plutôt m'orienter vers une autre astuce perso (si j'en trouve).

Merci pour tout.
--
Voilà.
Bernard

Avatar
b.delap
AB a pris le temps de m'instruire, et je l'en remercie.

je
cherchais à écrire des expressions mathématiques très simples, et à
avoir le résultat mis en forme tout de suite (sans passer par la
calculatrice ou Excel). Alors que j'ai l'impression que Bernard
cherche à interpréter des expressions écrites par d'autres, avec des
symboles qui leur sont propres.
Plus exactement, ces expressions je les ai écrites moi-même.

pour cela j'ai automatisé l'écriture du signe de multiplication en insérant
ce signe qui me pose maintenant des problèmes.
J'ai comme l'impression qu'il y a au moins deux caractères différents qui
donnent le même résultat visuel.
Et que je n'ai pas dû choisir le bon.
Donc, question bête : où se trouve le caractère × en texte normal?

Saint Cloud for the macro.

--
Voilà.
Bernard

Avatar
Circé
Bonjour André,


AB a exposé le 05/03/2005 :
Hello tout le monde !
Si ça vous intéresse, voici le code (désolé, c'est un peu long, mais ce n'est que tu texte). Encore MERCI Clément !!!


Euh... J'ai pas suivi, mais c'est pas celle que j'ai mise dans la faq ?... ou me trompe-je ?

http://faqword.free.fr/download.php?lng=fr&pgƒ8

Circé

Avatar
AB
Bonsoir Marina,

Non, c'en est une autre, qui date d'il y a longtemps.
Elle correspond mieux à mes besoins, car elle met en forme le résultat (avec
certaines limitations, mais ça me va). C'est pourquoi je l'utilise de
préférence à celle d'Anacoluthe.

André

"Circé" a écrit dans le message de news:

Bonjour André,


AB a exposé le 05/03/2005 :
Hello tout le monde !
Si ça vous intéresse, voici le code (désolé, c'est un peu long, mais ce
n'est que tu texte). Encore MERCI Clément !!!


Euh... J'ai pas suivi, mais c'est pas celle que j'ai mise dans la faq ?...
ou me trompe-je ?

http://faqword.free.fr/download.php?lng=fr&pgƒ8

Circé





1 2 3