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.
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é. :-)
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
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.
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
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
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. ...
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
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.
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
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.
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
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
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.
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
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
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" <clement.marcotte@sympatico.ca> a écrit dans le message
de news: OJFOZIaIFHA.1996@TK2MSFTNGP12.phx.gbl...
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
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
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
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.
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
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).
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
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
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?
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
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&pg8
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 ?
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&pg8
Circé
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&pg8
Circé
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é" <circe@aea.gr> a écrit dans le message de news:
mn.2cc67d5371bea2b8.20493@aea.gr...
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 ?
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 ?