Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro pour insérer espace insécable dans toutes mes dates.

11 réponses
Avatar
Souriane
Je veux cr=E9er une macro qui recherche toutes les dates qui peuvent se
trouver dans un document et ins=E8re un espace ins=E9cables entre la date,
le mois et l'ann=E9e.

ex : 31[ ]mai[ ]2009

J=92ai beau chercher sur le net, je ne trouve pas cette macro dont je ne
suis certainement pas la premi=E8re =E0 y penser!

Merci!

Souriane

10 réponses

1 2
Avatar
Geo
Bonjour Souriane

Je veux créer une macro qui recherche toutes les dates qui peuvent se
trouver dans un document et insère un espace insécables entre la date,
le mois et l'année.

ex : 31[ ]mai[ ]2009

J’ai beau chercher sur le net, je ne trouve pas cette macro dont je ne
suis certainement pas la première à y penser!



Probablement que si, que vous êtes la première.
Ça risque d'ailleurs de vous poser des problèmes dans votre mise en
forme.
Ce sont des dates sous forme de texte ou des champs ?

Si c'est du texte, il faudrait balayer tout le texte, voire tous les
articles et faire un rechercher / remplacer de chr(32)& "janvier" &
chr(32) par chr(160)& "janvier" & chr(160)
pareil pour février etc.
Idem pour les noms avec une majuscule ou en majuscules.
Ça peut faire un bel exercice de programmation si on ne veut pas
aligner des lignes de code, j'allais dire "bêtement", mais parfois le
bêtement est le plus efficace.

[ Cette réponse est faite sur le forum public Word :
news://msnews.microsoft.com/microsoft.public.fr.word ] >



--
A+
Avatar
Jary
Bonjour,

Ci-dessous le code d'une macro qui fait ce que vous souhaitez et que
j'utilise quotidiennement depuis plusieurs années.
Je précise qu'écrivant toujours les mois en minuscules, cette macro n'a pas
été prévue pour rechercher les mois
comportant une ou plusieurs capitales.

Sub DateInsécable()
Dim i As Byte
With Selection.Find
For i = 1 To 12
.Execute Format$(DateSerial(Year(Now), i, 1), " mmmm "), True, , , , , ,
wdFindContinue, _
False, sInsécable + Format$(DateSerial(Year(Now), i, 1), "mmmm") +
sInsécable, wdReplaceAll
Next i
End With
End Sub

En espérant qu'elle vous sera utile.
Cordialement.
Jary





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

Je veux créer une macro qui recherche toutes les dates qui peuvent se
trouver dans un document et insère un espace insécables entre la date,
le mois et l'année.

ex : 31[ ]mai[ ]2009

J’ai beau chercher sur le net, je ne trouve pas cette macro dont je ne
suis certainement pas la première à y penser!

Merci!

Souriane
Avatar
Souriane
Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?

Geo, je ne figure pas comment le faire dans le chercher remplacer le
"chr".

Merci!


On 12 mai, 18:04, "Jary" wrote:
Bonjour,

Ci-dessous le code d'une macro qui fait ce que vous souhaitez et que
j'utilise quotidiennement depuis plusieurs années.
Je précise qu'écrivant toujours les mois en minuscules, cette macro n 'a pas
été prévue pour rechercher les mois
comportant une ou plusieurs capitales.

Sub DateInsécable()
Dim i As Byte
With Selection.Find
  For i = 1 To 12
    .Execute Format$(DateSerial(Year(Now), i, 1), " mmmm "), True, , , , , ,
wdFindContinue, _
     False, sInsécable + Format$(DateSerial(Year(Now), i, 1), "mm mm") +
sInsécable, wdReplaceAll
 Next i
End With
End Sub

En espérant qu'elle vous sera utile.
Cordialement.
Jary


Avatar
Geo
Bonjour

Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?



La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

--
A+
Avatar
Souriane
Super! Ça fonctionne à 100%. Je suis très très contente!

Merci Geo (et Jary aussi!!)
Souriane

On 22 mai, 12:03, Geo wrote:

La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

--
A+


Avatar
Geo
Bonjour

Super! Ça fonctionne à 100%. Je suis très très contente!



En plus c'est un très bon exercice d'essayer de comprendre comment ça
marche.

Et hop, Jary dans le cargo Russe pour le Québec !

--
A+
Avatar
Jary
Bonjour,

Effectivement, la macro ne pouvait pas fonctionner car j'avais oublié dans
un module ad hoc un :
Option Explicit
Public Const sInsécable = " "

Il faut dire que j'utilise cette macro, faite par mon fils aîné, depuis
tellement longtemps.
La correction de Geo donne plus d'autonomie à la macro.

Si cela en intéresse certains j'ai une autre macro qui insère des espaces
insécables
dans les expressions juridiques comme article L. 32, article R. 10.

Jary

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

Bonjour

Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?



La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

--
A+




Avatar
Circé
Bonjour Jary,
Jary a exprimé avec précision :


Si cela en intéresse certains j'ai une autre macro qui insère des espaces
insécables
dans les expressions juridiques comme article L. 32, article R. 10.



Ta macro est d'ores et déjà dans la faq de ce forum.
http://faqword.fr/index.php/faq/vba-solutions/715-comment-remplacer-les-espaces-des-dates-par-des-espaces-insecables-.html

Ton autre macro, bien entendu, intéressera du monde, et si tu veux me
la donner, je la mettai également dans la FAQ.

Avec tous nos remerciements,

Circé
http://faqword.fr

Jary

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

Bonjour

Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?



La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

-- A+






Avatar
Jary
Bonjour Circé,

Voilà la macro en question, elle est toute simple et plutôt destinée aux
rédacteurs juridiques.
Petite précision sur ce qu'elle fait : [] = espace insécable.
article[]10
article L.[]233-1, article R.[]310 : pas d'espace insécable entre article et
L. ou R.
car si l'expression se trouve tout en fin de ligne, vu sa longueur, une
espace insécable
la rejetterait à la ligne suivante créant des blancs disgracieux entre les
mots
de la ligne précédente en cas de justification à droite et à gauche. Il
fallait faire un choix.
On peut toujours ajouter une espace insécable à l'aide d'un raccourci
clavier. .

Sub Article()
With Selection.Find
.Execute "([Aa])rticle ([0-9])", , , True, , , , wdFindContinue, False,
"1rticle^s2", wdReplaceAll
.Execute "([Aa])rticles ([0-9])", , , True, , , , wdFindContinue, False,
"1rticles^s2", wdReplaceAll
.Execute "L. ([0-9])", , , True, , , , wdFindContinue, , "L.^s1",
wdReplaceAll
.Execute "R. ([0-9])", , , True, , , , wdFindContinue, , "R.^s1",
wdReplaceAll
End With
End Sub

J'en profite pour vous féliciter, ainsi que Geo, Anacoluthe et Heureux-Oli,
pour la qualité de la faq
et de vos interventions sur ce groupe. Vous apportez une aide vraiment très
utile aux utilisateurs de Word,
novices ou chevronnés, tout en respectant notre langue et en faisant preuve
d'humour.
Bon courage.

Jary

"Circé" a écrit dans le message de news:
%
Bonjour Jary,
Jary a exprimé avec précision :


Si cela en intéresse certains j'ai une autre macro qui insère des espaces
insécables
dans les expressions juridiques comme article L. 32, article R. 10.



Ta macro est d'ores et déjà dans la faq de ce forum.
http://faqword.fr/index.php/faq/vba-solutions/715-comment-remplacer-les-espaces-des-dates-par-des-espaces-insecables-.html

Ton autre macro, bien entendu, intéressera du monde, et si tu veux me la
donner, je la mettai également dans la FAQ.

Avec tous nos remerciements,

Circé
http://faqword.fr

Jary

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

Bonjour

Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?



La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

-- A+










Avatar
Circé
Bonjour Jary,

et merci pour ton implication.

J'aime moins cette macro que la précédente, parce que, en réalité, ce
n'est pas compliqué à faire à la main, contrairement aux espaces entre
les dates.
Je suis bien d'accord que pour quelqu'un qui passe son temps à faire
ce type de rédaction, cela devient utile.

Cela étant dit, personnellement j'aurais pensé à une correction
automatique qui serait de remplacer (automatiquement)
"Article L. "
par :
"Article L.[]"

idem pour le R.

Oui... mais, on ne peut pas avoir une expression à remplacer qui se
termine par un espace. Ce qui signifie qu'il en faudrait 9 de chaque...
x 2 à cause de la majuscule ou minuscule. Ce n'est toutefois pas
insurmontable et il me semble que ce serait confortable et on n'aurait
plus à se soucier de ce fichu espace insécable.

Comme ça peut paraître un peu compliqué, j'ai pensé aussi à l'insertion
automatique mais les majuscules/minuscules pour le A ne seront pas
prises en compte.

Que penses-tu de ces réflexions ?

Merci pour tes félicitations, je pense que ça va droit au coeur des
personnes concernées. Nous regrettons tous malheureusement anacoluthe
qui a préféré nous abandonner...
Je vois que tu es un lecteur habitué !;)

Circé
http://faqword.fr

Jary a pensé très fort :
Bonjour Circé,

Voilà la macro en question, elle est toute simple et plutôt destinée aux
rédacteurs juridiques.
Petite précision sur ce qu'elle fait : [] = espace insécable.
article[]10
article L.[]233-1, article R.[]310 : pas d'espace insécable entre article et
L. ou R.
car si l'expression se trouve tout en fin de ligne, vu sa longueur, une
espace insécable
la rejetterait à la ligne suivante créant des blancs disgracieux entre les
mots
de la ligne précédente en cas de justification à droite et à gauche. Il
fallait faire un choix.
On peut toujours ajouter une espace insécable à l'aide d'un raccourci
clavier. .

Sub Article()
With Selection.Find
.Execute "([Aa])rticle ([0-9])", , , True, , , , wdFindContinue, False,
"1rticle^s2", wdReplaceAll
.Execute "([Aa])rticles ([0-9])", , , True, , , , wdFindContinue, False,
"1rticles^s2", wdReplaceAll
.Execute "L. ([0-9])", , , True, , , , wdFindContinue, , "L.^s1",
wdReplaceAll
.Execute "R. ([0-9])", , , True, , , , wdFindContinue, , "R.^s1",
wdReplaceAll
End With
End Sub

J'en profite pour vous féliciter, ainsi que Geo, Anacoluthe et Heureux-Oli,
pour la qualité de la faq
et de vos interventions sur ce groupe. Vous apportez une aide vraiment très
utile aux utilisateurs de Word,
novices ou chevronnés, tout en respectant notre langue et en faisant preuve
d'humour.
Bon courage.

Jary

"Circé" a écrit dans le message de news:
%
Bonjour Jary,
Jary a exprimé avec précision :


Si cela en intéresse certains j'ai une autre macro qui insère des espaces
insécables
dans les expressions juridiques comme article L. 32, article R. 10.



Ta macro est d'ores et déjà dans la faq de ce forum.
http://faqword.fr/index.php/faq/vba-solutions/715-comment-remplacer-les-espaces-des-dates-par-des-espaces-insecables-.html

Ton autre macro, bien entendu, intéressera du monde, et si tu veux me la
donner, je la mettai également dans la FAQ.

Avec tous nos remerciements,

Circé
http://faqword.fr

Jary

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

Bonjour

Merci, mais tout ce que ça fait, c'est d'enlever tous les espaces des
dates...! Y-t-il un erreur dans le code ou j'ai pas compris quelque
chose?



La solution de Jary est intéressante, c'est astucieux.
Amha il manque un
dim sInsécable as string
sInsécable = Chr(160)
en début de macro.

-- A+












1 2