Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > Contribuez
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2006, 18h04   #1
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
Par défaut [VBA-W] Trouver le numero de Page d'une Selection (range)

Voici, un petit probléme VBA Word, pour lequel j'ai pas trouvé de solution sastifaisante...

j'aurai besoin de connaître le numéro de page d'un range ( par exemple la sélection courante) dans un document Word..

Bon j'ai réussi à contourner le probléme par une procédure un peu "bourrine".. qui parcours les pages une à une jusqu'à temps qu'elle dépasse "le range"..
(bon elle as plein de défaut.., plus il y as de page plus c'est long, elle ne gére pas les sections..)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
 
' Determine Numero de page
' donner un range en paramétre
' (selection....)
' la fonction retourne le numéro de page
' du début du range
Function NumeroPage(r As Range) As Integer
 Dim MemoSelection As Range
 Dim MemoPrec As Range
 Dim MonDoc As Document
 Dim i As Integer
 Dim dPos As Double
 
 Set MonDoc = r.Parent
 Set MemoSelection = MonDoc.ActiveWindow.Selection.Range
 MonDoc.ActiveWindow.Selection.HomeKey Unit:=wdStory 'Aller au début du doc
 Do
  Set MemoPrec = MonDoc.ActiveWindow.Selection.Range
  i = i + 1
  MonDoc.ActiveWindow.Selection.GoTo What:=wdGoToPage, Which:=wdGoToRelative, Count:=1
  dPos = MonDoc.ActiveWindow.Selection.Range.Start
 
 
  Loop While MemoPrec.Start <> dPos And r.Start > dPos
 
  MemoSelection.Select
  NumeroPage = i
End Function
'
'  Procédure de test 
'
Sub test()
 Debug.Print NumeroPage(Selection.Range)
 
End Sub

Allez bon week-end à tous ..
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 19h15   #2
Rédacteur
 
Homme michel Tanguy
Inscription : août 2005
Messages : 3 317
Détails du profil
Informations personnelles :
Nom : Homme michel Tanguy
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : août 2005
Messages : 3 317
Points : 10 706
Points : 10 706
bonsoir Bbil

as tu essayé

Code :
MsgBox Selection.Information(wdActiveEndPageNumber)

bon week end
michel
SilkyRoad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2006, 19h34   #3
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 773
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 773
Points : 16 854
Points : 16 854
Envoyer un message via Skype™ à bbil
Merci SilkyRoad, je suis complétemet passé à coté de cette propriété information ..cela marche..



... cela mérite un post dans Contributions FAQ-VBA.. ! si tu t'en charge pas d'ici là je ferai cela lundi...
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h41.


 
 
 
 
Partenaires

Hébergement Web