Remplacer par Saut de page si chaine de caractère sur page impaire
5 réponses
falbaj
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
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
Patrice Henrio
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence
d'une chaine de caractère (par exemple "Fin") par un saut de page mais
uniquement si cette chaine de caractère se trouve sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne pas
comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée.
Dans ton exemple la variable Page n'est pas initialisée et ne dépends
pas de la selection.
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
falbaj
Patrice Henrio a écrit le 08/10/2008 à 10h05 :
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
Merci pour ton aide en effet avec l'option explicit il me prévient que la variable n'est pas définie voila la derniere version de mon code Sub remplace_Fin_par_Saut_de_page() Dim Page As Integer Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Execute If Page Mod 2 = 0 Then Selection.InsertBreak Else: Selection.Delete EndIf WEnd EndWith EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page de la sélection?
Patrice Henrio a écrit le 08/10/2008 à 10h05 :
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque
occurrence
d'une chaine de caractère (par exemple "Fin") par un saut de
page mais
uniquement si cette chaine de caractère se trouve sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne
pas
comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée.
Dans ton exemple la variable Page n'est pas initialisée et ne
dépends
pas de la selection.
Merci pour ton aide
en effet avec l'option explicit il me prévient que la variable n'est pas définie
voila la derniere version de mon code
Sub remplace_Fin_par_Saut_de_page()
Dim Page As Integer
Call Selection.HomeKey(wdStory)
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Execute
If Page Mod 2 = 0 Then Selection.InsertBreak
Else: Selection.Delete
EndIf
WEnd
EndWith
EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page de la sélection?
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
Merci pour ton aide en effet avec l'option explicit il me prévient que la variable n'est pas définie voila la derniere version de mon code Sub remplace_Fin_par_Saut_de_page() Dim Page As Integer Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Execute If Page Mod 2 = 0 Then Selection.InsertBreak Else: Selection.Delete EndIf WEnd EndWith EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page de la sélection?
Patrice Henrio
falbaj a écrit :
Patrice Henrio a écrit le 08/10/2008 à 10h05 :
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
Merci pour ton aide en effet avec l'option explicit il me prévient que la variable n'est pas définie voila la derniere version de mon code Sub remplace_Fin_par_Saut_de_page() Dim Page As Integer Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Execute If Page Mod 2 = 0 Then Selection.InsertBreak Else: Selection.Delete EndIf WEnd EndWith EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page de la sélection?
je ne connais pas assez VBA pour Word pour répondre mais il faut je pense vérifier qu'il n'y a pas une propriété donnant le numéro d epage d'une sélection.
Par ailleurs sous quelle version travaills-tu.
Sous Word 2002 ton code engendre plusieurs erreurs dont tous tes end end if au lieu de endif end with au lieu de endwith end sub au lieu de endsub
falbaj a écrit :
Patrice Henrio a écrit le 08/10/2008 à 10h05 :
falbaj a écrit :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque
occurrence
d'une chaine de caractère (par exemple "Fin") par un saut de
page mais
uniquement si cette chaine de caractère se trouve sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne
pas
comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée.
Dans ton exemple la variable Page n'est pas initialisée et ne
dépends
pas de la selection.
Merci pour ton aide
en effet avec l'option explicit il me prévient que la variable n'est pas
définie
voila la derniere version de mon code
Sub remplace_Fin_par_Saut_de_page()
Dim Page As Integer
Call Selection.HomeKey(wdStory)
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Execute
If Page Mod 2 = 0 Then Selection.InsertBreak
Else: Selection.Delete
EndIf
WEnd
EndWith
EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page
de la sélection?
je ne connais pas assez VBA pour Word pour répondre mais il faut je
pense vérifier qu'il n'y a pas une propriété donnant le numéro d epage
d'une sélection.
Par ailleurs sous quelle version travaills-tu.
Sous Word 2002
ton code engendre plusieurs erreurs dont tous tes end
end if au lieu de endif
end with au lieu de endwith
end sub au lieu de endsub
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Mets Option explicit au début de ton module.
Cela permet de trouver rapidement si une variable est mal utilisée. Dans ton exemple la variable Page n'est pas initialisée et ne dépends pas de la selection.
Merci pour ton aide en effet avec l'option explicit il me prévient que la variable n'est pas définie voila la derniere version de mon code Sub remplace_Fin_par_Saut_de_page() Dim Page As Integer Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Execute If Page Mod 2 = 0 Then Selection.InsertBreak Else: Selection.Delete EndIf WEnd EndWith EndSub
comment puis je lui dire que page doit prendre la valeur du numero de la page de la sélection?
je ne connais pas assez VBA pour Word pour répondre mais il faut je pense vérifier qu'il n'y a pas une propriété donnant le numéro d epage d'une sélection.
Par ailleurs sous quelle version travaills-tu.
Sous Word 2002 ton code engendre plusieurs erreurs dont tous tes end end if au lieu de endif end with au lieu de endwith end sub au lieu de endsub
falbaj
falbaj a écrit le 08/10/2008 à 09h17 :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Bonjour,
merci pour tout voila une solution qui semble fonctionner je suis sous Word 2002 les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire() ' ' Macro1 Macro ' Macro enregistrée le 07/10/2008 par anne-laure.bordes ' Dim Page As Integer
'se mettre en tete de fichier Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Fin Fiche?" .Replacement.Text = "^m" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True While .Execute Page = Selection.Information(wdActiveEndPageNumber) If (Page Mod 2 = 1) Then Selection.InsertBreak Else: Selection.Delete End If Wend End With End Sub
falbaj a écrit le 08/10/2008 à 09h17 :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque
occurrence d'une chaine de caractère (par exemple "Fin") par
un saut de page mais uniquement si cette chaine de caractère se trouve
sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne
pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
Merci pour votre aide
Bonjour,
merci pour tout
voila une solution qui semble fonctionner
je suis sous Word 2002
les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire()
'
' Macro1 Macro
' Macro enregistrée le 07/10/2008 par anne-laure.bordes
'
Dim Page As Integer
'se mettre en tete de fichier
Call Selection.HomeKey(wdStory)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Fin Fiche?"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
While .Execute
Page = Selection.Information(wdActiveEndPageNumber)
If (Page Mod 2 = 1) Then
Selection.InsertBreak
Else: Selection.Delete
End If
Wend
End With
End Sub
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Bonjour,
merci pour tout voila une solution qui semble fonctionner je suis sous Word 2002 les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire() ' ' Macro1 Macro ' Macro enregistrée le 07/10/2008 par anne-laure.bordes ' Dim Page As Integer
'se mettre en tete de fichier Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Fin Fiche?" .Replacement.Text = "^m" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True While .Execute Page = Selection.Information(wdActiveEndPageNumber) If (Page Mod 2 = 1) Then Selection.InsertBreak Else: Selection.Delete End If Wend End With End Sub
Patrice Henrio
falbaj a écrit :
falbaj a écrit le 08/10/2008 à 09h17 :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Bonjour,
merci pour tout voila une solution qui semble fonctionner je suis sous Word 2002 les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire() ' ' Macro1 Macro ' Macro enregistrée le 07/10/2008 par anne-laure.bordes ' Dim Page As Integer
'se mettre en tete de fichier Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Fin Fiche?" .Replacement.Text = "^m" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True While .Execute Page = Selection.Information(wdActiveEndPageNumber) If (Page Mod 2 = 1) Then Selection.InsertBreak Else: Selection.Delete End If Wend End With End Sub
OK
Merci du retour.
falbaj a écrit :
falbaj a écrit le 08/10/2008 à 09h17 :
Bonjour,
Je débute dans les macros word et j'ai besoin à remplacer chaque
occurrence d'une chaine de caractère (par exemple "Fin") par
un saut de page mais uniquement si cette chaine de caractère se trouve
sur une page impaire
voici un premier code que je viens de développer mais qui ne fonctionne
pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page()
Selection.Find.ClearFormatting
Selection.Find.replacement.ClearFormating
With Selection.Find
.Text ="Fin"
.Replacement.Text= "^m"
.Forward = True
.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundSLike = False
.MatchWildcards=True
While .Found
Set S =.Parent
If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne
Else: S.Delete
EndIf
WEnd
EndWith
EndSub
Merci pour votre aide
Bonjour,
merci pour tout
voila une solution qui semble fonctionner
je suis sous Word 2002
les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire()
'
' Macro1 Macro
' Macro enregistrée le 07/10/2008 par anne-laure.bordes
'
Dim Page As Integer
'se mettre en tete de fichier
Call Selection.HomeKey(wdStory)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Fin Fiche?"
.Replacement.Text = "^m"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
While .Execute
Page = Selection.Information(wdActiveEndPageNumber)
If (Page Mod 2 = 1) Then
Selection.InsertBreak
Else: Selection.Delete
End If
Wend
End With
End Sub
Je débute dans les macros word et j'ai besoin à remplacer chaque occurrence d'une chaine de caractère (par exemple "Fin") par un saut de page mais uniquement si cette chaine de caractère se trouve sur une page impaire voici un premier code que je viens de développer mais qui ne fonctionne pas comme je le souhaite
Sub remplace_Fin_par_Saut_de_page() Selection.Find.ClearFormatting Selection.Find.replacement.ClearFormating With Selection.Find .Text ="Fin" .Replacement.Text= "^m" .Forward = True .Wrap = wdFindStop .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundSLike = False .MatchWildcards=True While .Found Set S =.Parent If Page Mod 2 = 0 Then .Execute Replace:=wdReplaceOne Else: S.Delete EndIf WEnd EndWith EndSub
Merci pour votre aide
Bonjour,
merci pour tout voila une solution qui semble fonctionner je suis sous Word 2002 les erreurs dans le code était du à des erreurs de frappe
Option Explicit
Sub Remplace_FinFiche_par_saut_de_page_si_page_impaire() ' ' Macro1 Macro ' Macro enregistrée le 07/10/2008 par anne-laure.bordes ' Dim Page As Integer
'se mettre en tete de fichier Call Selection.HomeKey(wdStory) Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Fin Fiche?" .Replacement.Text = "^m" .Forward = True .Wrap = wdFindStop .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True While .Execute Page = Selection.Information(wdActiveEndPageNumber) If (Page Mod 2 = 1) Then Selection.InsertBreak Else: Selection.Delete End If Wend End With End Sub