Bonjour,
Je suis en train d'écrire une macro qui, entre autre, recherche deux
majuscules suivi d'un l minuscule pour le remplacer par les mêmes deux
majuscules suivi par un I majuscule. Le code que j'utilise est
ci-dessous. Le problème c'est que quand j'utilise ce code, Word me
repagine automatiquement tout mon document (entre 60 et 80 pages), c'est
long et totalement inutile. Je n'arrive pas désactiver ce comportement.
J'ai bien essayé de placer des Options.Pagination = False, ou
ActiveDocument.Pagination = False dans mon code mais ça ne change rien.
Quelquun aurait-il une idée ?
Merci beaucoup.
Romain
Dim MaStringE As String
Dim MaStringS As String
For i = 1 To 1000 'On boucle pour être certain de tout prendre...
DoEvents
MaStringE = ""
MaStringS = ""
With Selection.Find
.Text = "[A-Z][A-Z]l"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
MaStringE = Selection
MaStringS = CStr(Mid(MaStringE, 1, 2) & "I")
If Mid(MaStringE, 3, 3) = "l" Then
'La sélection est correct
With Selection.Find
.Text = MaStringE
.Replacement.Text = MaStringS
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ElseIf Mid(MaStringE, 3, 3) = "I" Then
'là, elle ne l'est plus, la première requête ne trouve rien
'et la sélection est le dernier "remplacer" en date...
Exit For
End If
Next i
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
Circé
Bonjour,
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!! ;-))) (joke des AMIS°
Si tu lances ta macro avec un affichage normal (et non pas un affichage page), tu ne devrais pas avoir de pagination en arrière-plan. Tu peux inclure cet affichage dans la macro : ActiveWindow.View.Type = wdNormalView
Circé http://faqword.free.fr
Romain Casey wrote: || Bonjour, || Je suis en train d'écrire une macro qui, entre autre, recherche deux || majuscules suivi d'un l minuscule pour le remplacer par les mêmes || deux majuscules suivi par un I majuscule. Le code que j'utilise est || ci-dessous. Le problème c'est que quand j'utilise ce code, Word me || repagine automatiquement tout mon document (entre 60 et 80 pages), || c'est long et totalement inutile. Je n'arrive pas désactiver ce || comportement. J'ai bien essayé de placer des Options.Pagination || False, ou ActiveDocument.Pagination = False dans mon code mais ça ne || change rien. Quelquun aurait-il une idée ? || || Merci beaucoup. || || || Romain || || || Dim MaStringE As String || Dim MaStringS As String || For i = 1 To 1000 'On boucle pour être certain de tout || prendre... DoEvents || MaStringE = "" || MaStringS = "" || || With Selection.Find || .Text = "[A-Z][A-Z]l" || .Forward = True || .Wrap = wdFindContinue || .Format = False || .MatchCase = True || .MatchWholeWord = False || .MatchWildcards = True || .MatchSoundsLike = False || .MatchAllWordForms = False || End With || Selection.Find.Execute || MaStringE = Selection || MaStringS = CStr(Mid(MaStringE, 1, 2) & "I") || If Mid(MaStringE, 3, 3) = "l" Then || 'La sélection est correct || With Selection.Find || .Text = MaStringE || .Replacement.Text = MaStringS || .Forward = True || .Wrap = wdFindContinue || .Format = False || .MatchCase = True || .MatchWholeWord = False || .MatchWildcards = False || .MatchSoundsLike = False || .MatchAllWordForms = False || End With || Selection.Find.Execute Replace:=wdReplaceAll || ElseIf Mid(MaStringE, 3, 3) = "I" Then || 'là, elle ne l'est plus, la première requête ne trouve rien || 'et la sélection est le dernier "remplacer" en date... || Exit For || End If || Next i
Bonjour,
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!!
;-))) (joke des AMIS°
Si tu lances ta macro avec un affichage normal (et non pas un affichage
page), tu ne devrais pas avoir de pagination en arrière-plan.
Tu peux inclure cet affichage dans la macro :
ActiveWindow.View.Type = wdNormalView
Circé
http://faqword.free.fr
Romain Casey wrote:
|| Bonjour,
|| Je suis en train d'écrire une macro qui, entre autre, recherche deux
|| majuscules suivi d'un l minuscule pour le remplacer par les mêmes
|| deux majuscules suivi par un I majuscule. Le code que j'utilise est
|| ci-dessous. Le problème c'est que quand j'utilise ce code, Word me
|| repagine automatiquement tout mon document (entre 60 et 80 pages),
|| c'est long et totalement inutile. Je n'arrive pas désactiver ce
|| comportement. J'ai bien essayé de placer des Options.Pagination || False, ou ActiveDocument.Pagination = False dans mon code mais ça ne
|| change rien. Quelquun aurait-il une idée ?
||
|| Merci beaucoup.
||
||
|| Romain
||
||
|| Dim MaStringE As String
|| Dim MaStringS As String
|| For i = 1 To 1000 'On boucle pour être certain de tout
|| prendre... DoEvents
|| MaStringE = ""
|| MaStringS = ""
||
|| With Selection.Find
|| .Text = "[A-Z][A-Z]l"
|| .Forward = True
|| .Wrap = wdFindContinue
|| .Format = False
|| .MatchCase = True
|| .MatchWholeWord = False
|| .MatchWildcards = True
|| .MatchSoundsLike = False
|| .MatchAllWordForms = False
|| End With
|| Selection.Find.Execute
|| MaStringE = Selection
|| MaStringS = CStr(Mid(MaStringE, 1, 2) & "I")
|| If Mid(MaStringE, 3, 3) = "l" Then
|| 'La sélection est correct
|| With Selection.Find
|| .Text = MaStringE
|| .Replacement.Text = MaStringS
|| .Forward = True
|| .Wrap = wdFindContinue
|| .Format = False
|| .MatchCase = True
|| .MatchWholeWord = False
|| .MatchWildcards = False
|| .MatchSoundsLike = False
|| .MatchAllWordForms = False
|| End With
|| Selection.Find.Execute Replace:=wdReplaceAll
|| ElseIf Mid(MaStringE, 3, 3) = "I" Then
|| 'là, elle ne l'est plus, la première requête ne trouve rien
|| 'et la sélection est le dernier "remplacer" en date...
|| Exit For
|| End If
|| Next i
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!! ;-))) (joke des AMIS°
Si tu lances ta macro avec un affichage normal (et non pas un affichage page), tu ne devrais pas avoir de pagination en arrière-plan. Tu peux inclure cet affichage dans la macro : ActiveWindow.View.Type = wdNormalView
Circé http://faqword.free.fr
Romain Casey wrote: || Bonjour, || Je suis en train d'écrire une macro qui, entre autre, recherche deux || majuscules suivi d'un l minuscule pour le remplacer par les mêmes || deux majuscules suivi par un I majuscule. Le code que j'utilise est || ci-dessous. Le problème c'est que quand j'utilise ce code, Word me || repagine automatiquement tout mon document (entre 60 et 80 pages), || c'est long et totalement inutile. Je n'arrive pas désactiver ce || comportement. J'ai bien essayé de placer des Options.Pagination || False, ou ActiveDocument.Pagination = False dans mon code mais ça ne || change rien. Quelquun aurait-il une idée ? || || Merci beaucoup. || || || Romain || || || Dim MaStringE As String || Dim MaStringS As String || For i = 1 To 1000 'On boucle pour être certain de tout || prendre... DoEvents || MaStringE = "" || MaStringS = "" || || With Selection.Find || .Text = "[A-Z][A-Z]l" || .Forward = True || .Wrap = wdFindContinue || .Format = False || .MatchCase = True || .MatchWholeWord = False || .MatchWildcards = True || .MatchSoundsLike = False || .MatchAllWordForms = False || End With || Selection.Find.Execute || MaStringE = Selection || MaStringS = CStr(Mid(MaStringE, 1, 2) & "I") || If Mid(MaStringE, 3, 3) = "l" Then || 'La sélection est correct || With Selection.Find || .Text = MaStringE || .Replacement.Text = MaStringS || .Forward = True || .Wrap = wdFindContinue || .Format = False || .MatchCase = True || .MatchWholeWord = False || .MatchWildcards = False || .MatchSoundsLike = False || .MatchAllWordForms = False || End With || Selection.Find.Execute Replace:=wdReplaceAll || ElseIf Mid(MaStringE, 3, 3) = "I" Then || 'là, elle ne l'est plus, la première requête ne trouve rien || 'et la sélection est le dernier "remplacer" en date... || Exit For || End If || Next i
Romain Casey
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!! ;-))) (joke des AMIS°
Si cette remarque tiens à une structure un peu lourde de la macro, toute proposition est la bienvenue. Personnellement, je trouve ça horrible mais je n'ai pas su faire mieux...
Si tu lances ta macro avec un affichage normal (et non pas un affichage page), tu ne devrais pas avoir de pagination en arrière-plan. Tu peux inclure cet affichage dans la macro : ActiveWindow.View.Type = wdNormalView
OK. Je vais essayer. Merci pour l'info.
Romain
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!!
;-))) (joke des AMIS°
Si cette remarque tiens à une structure un peu lourde de la macro, toute
proposition est la bienvenue. Personnellement, je trouve ça horrible
mais je n'ai pas su faire mieux...
Si tu lances ta macro avec un affichage normal (et non pas un affichage
page), tu ne devrais pas avoir de pagination en arrière-plan.
Tu peux inclure cet affichage dans la macro :
ActiveWindow.View.Type = wdNormalView
Je sais pas si ta macro est indispensable mais bon, on ne dira rien !!! ;-))) (joke des AMIS°
Si cette remarque tiens à une structure un peu lourde de la macro, toute proposition est la bienvenue. Personnellement, je trouve ça horrible mais je n'ai pas su faire mieux...
Si tu lances ta macro avec un affichage normal (et non pas un affichage page), tu ne devrais pas avoir de pagination en arrière-plan. Tu peux inclure cet affichage dans la macro : ActiveWindow.View.Type = wdNormalView