J'ai écrit ce code (VBA-WORD) afin de tenter de récupérer le résultat d'une selection en vue de l'affecter dans une variable. Je me servirais ensuite de cette variable pour un autre traitement.
En fin de code, je renvoie le résultat dans une msgbox afin d'en vérifier la réalité.. et surtout si c'est le résultat est celui attendu. Sauf que, la msg box me renvoit bien un résultat ... mais pas le bon !
Voici mon code ... Quelqu'un saurait me dire ce qui cloche ? Par avance merci pour vos contributions.
Sub Macro12()
Dim PERS As Range
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Selection.Find.ClearFormatting
With Selection.Find
.Text = "N° de personne : "
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend
Set PERS = ActiveDocument.Range(Selection.Start, Selection.End)
MsgBox PERS.Text
Selection.Copy
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
Selection.Paste
End Sub
Difficile à voir sans le texte, mais tu sembles copier l'entête de page, c'est bien ça ?
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
Si tu passes en mode pas à pas (F8), tu devrais pouvoir remarquer ce que la macro fait et déceler si celle-ci copie bien ce que tu veux, ce que je doute...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI