VBA WORD - Récupérer le réultat d'une séléctionpour l'affecter à une variable
gerardcjf
Messages postés47Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention26 décembre 2013
-
28 janv. 2013 à 13:46
gerardcjf
Messages postés47Date d'inscriptionmardi 3 juillet 2007StatutMembreDernière intervention26 décembre 2013
-
30 janv. 2013 à 10:34
Bonjour,
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
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 28 janv. 2013 à 20:08
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