choisir la page word à ouvrir

  • Initiateur de la discussion Initiateur de la discussion kardinal
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

kardinal

Guest
bonjour tout le monde
je suis débutant en programmation et j'aimerais avoir des infos, merci de me répondre

j'ai un classseur excel avec plusieurs feuille sur chaque feuille j'ai creer un bouton qui lorsque je clique dessus me renvoit vers un document word commun avec des informations écrites dans ce document.
l'objectif c'est que le bouton de chaque ouvre le document word à des pages précises par exemple:
le bouton de la feuille1 renvoit la page de 1 à 2 du doc word
le bouton de la feuille 2 renvoit la page 3 ainsi de suite

merci de m'aider à trouver la réponse
 
Re : choisir la page word à ouvrir

Bonjour kardinal, bienvenue sur XLD,

Pour un 1er post, et débutant en programmation, c'est pas mal 😀

Alors étant sur Excel, touches Alt+F11 pour aller dans VBA.

1) Menu Outils => Références et cocher la référence "Microsoft Word xx.x Object Library".

2) Menu Insertion => Module et collez-y cette macro :

Code:
[COLOR="Red"]'--------------------------------------------------------
'Cocher la référence "Microsoft Word xx.x Object Library"
'--------------------------------------------------------[/COLOR]

Sub AtteindrePageWord()
Dim WordApp As Word.Application
On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
WordApp.Selection.GoTo wdGoToPage, ActiveSheet.Index
If Err Then MsgBox "Page " & ActiveSheet.Index & " introuvable dans Word !!": Exit Sub
AppActivate WordApp.ActiveDocument.Name & " - Microsoft Word"
End Sub

3) Si les boutons de chaque feuille sont créés avec la boîte "Formulaire", affectez cette macro à chacun des boutons.

Sinon s'ils sont créés avec la "Boîte à outils Contrôles", pour chaque bouton en mode création,
clic droit => Visualiser le code et compléter la macro :

Code:
Private Sub CommandButton1_Click()
[COLOR="red"]AtteindrePageWord[/COLOR]
End Sub

En cliquant sur un bouton, vous irez sur la page Word correspondant au numéro d'ordre de la page Excel active.

Edit : ça ne marche pas sur un document Word enregistré, je vais revoir la macro...

A+
 
Dernière édition:
Re : choisir la page word à ouvrir

Bonjour, bonjour Job 🙂,
Une autre version utilisant le nom des boutons à renomer Page 1, Page 2 ...
Activer Word x.x au préalable
Code:
Sub OuvreDoc()
Dim Chemin As String, oWord As Word.Application, oDoc As Word.Document
nPage = Split(Application.Caller, Chr(32))
Chemin = "E:\blabla\blabla.doc" 'à adapter
On Error Resume Next
Set oWord = GetObject(, "Word.Application")
If Err.Number <> 0 Then
    Set oWord = CreateObject("Word.Application")
End If
On Error GoTo 0
If Dir(Chemin) <> "" Then
    Set oDoc = oWord.Documents.Open(Chemin)
    With oDoc.ActiveWindow.Selection
        .GoTo what:=wdGoToPage, Count:=CInt(nPage(1))
    End With
End If
    oWord.Visible = True
    oWord.Activate

End Sub
A+
kjin
 
Re : choisir la page word à ouvrir

Bonjour kardinal, salut kjin 🙂

Je reviens sur le fil.

Dans la macro précédente, j'avais mal positionné l'argument Count, donc :

Code:
'--------------------------------------------------------
'Cocher la référence "Microsoft Word xx.x Object Library"
'--------------------------------------------------------
Sub AtteindrePageWord()
On Error Resume Next
With GetObject(, "Word.Application")
  If Err Then MsgBox "Ouvrez le fichier Word !!": Exit Sub
  .Selection.Goto wdGoToPage, [COLOR="Red"]Count:=[/COLOR]ActiveSheet.Index
  .Visible = True
  .Activate
End With
End Sub

La macro est plus simple que celle de kjin car je ne cherche pas à ouvrir le fichier Word.

Edit : en général .Visible = True est inutile...

A+
 
Dernière édition:
Re : choisir la page word à ouvrir

Re,

La macro précédente faisait correspondre les pages Word aux pages Excel.

Pour une correspondance quelconque, créer un tableau :

Code:
'--------------------------------------------------------
'Cocher la référence "Microsoft Word xx.x Object Library"
'--------------------------------------------------------
Sub AtteindrePageWord()
Dim tablo
[COLOR="Red"]tablo = Array(1, 3, 4, 6) 'pages Word à atteindre, à adapter[/COLOR]
On Error Resume Next
With GetObject(, "Word.Application")
  If Err Then MsgBox "Ouvrez le fichier Word !!": Exit Sub
  .Selection.Goto wdGoToPage, Count:=[COLOR="red"]tablo(ActiveSheet.Index - 1)[/COLOR]
  If Err Then MsgBox "Pas de page Word correspondante...": Exit Sub
  .Visible = True
  .Activate
End With
End Sub

A+
 
Dernière édition:
Re : choisir la page word à ouvrir

Re,

Si les boutons ont été créés avec la "Boîte à outils Contrôles" (ActiveX) on peut aussi paramétrer la macro.

En Feuil1 :

Code:
Private Sub CommandButton1_Click()
AtteindrePageWord [COLOR="Red"]1[/COLOR]
End Sub

En Feuil2 :

Code:
Private Sub CommandButton1_Click()
AtteindrePageWord [COLOR="red"]3[/COLOR]
End Sub

Etc... Et dans le Module :

Code:
'--------------------------------------------------------
'Cocher la référence "Microsoft Word xx.x Object Library"
'--------------------------------------------------------
Sub AtteindrePageWord([COLOR="red"]page As Integer[/COLOR])
On Error Resume Next
With GetObject(, "Word.Application")
  If Err Then MsgBox "Ouvrez le fichier Word !!": Exit Sub
  .Selection.Goto wdGoToPage, Count:=[COLOR="red"]page[/COLOR]
  .Visible = True
  .Activate
End With
End Sub

A+
 
Dernière édition:
Re : choisir la page word à ouvrir

Re,

Il y a cependant un problème avec mes macros.

Si l'on ouvre le fichier Word avant le fichier Excel, Word ne s'affiche pas si l'on ne l'a pas réactivé d'abord en présence d'Excel.

Il faut donc ouvrir le fichier Word après le fichier Excel.

Quelqu'un a-t-il une solution fonctionnant dans les 2 cas sans rouvrir le fichier Word (comme le fait la macro de kjin) ?

Merci d'avance.

A+
 
Re : choisir la page word à ouvrir

Re,

Suite à la question de mon post précédent.

Ce n'est pas terrible, mais j'ai trouvé cette solution : mettre dans le ThisWorkbook du fichier Excel cette macro :

Code:
Private Sub Workbook_Open()
On Error Resume Next
With GetObject(, "Word.Application")
.Visible = False
.Documents.Open .ActiveDocument.Path & "\" & .ActiveDocument.Name
.Visible = True
End With
End Sub

Ainsi Word sera affiché dans tous les cas...

A+
 
Re : choisir la page word à ouvrir

Re,

Encore une solution avec FollowHyperlink, mais je pense que c'est la même chose que la méthode Open :

Code:
Sub AtteindrePageWord(page As Integer)
On Error Resume Next
With GetObject(, "Word.Application")
  If Err Then MsgBox "Ouvrez le fichier Word !!": Exit Sub
  .Selection.Goto wdGoToPage, Count:=page
  .Visible = True
  ThisWorkbook.FollowHyperlink .ActiveDocument.Path & "\" & .ActiveDocument.Name
End With
End Sub

A+
 
Re : choisir la page word à ouvrir

bonjour,
veuillez m'escusez du temps de réponses et merci job75
j'ai testé la macro elle fonctionne à merveille
mais après réflexion je me suis dit pourquoi faire appel à deux logiciel autant rester sur excel.
j'ai creer un code:
Sub atteindrecellule(cell As Integer)
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Open("L:\.........")
Set ws = wb.Worksheets("amol").Cells("A3:B30")
End Sub
c'est toujours le même principe je voudrais que lorsque je clique sur le bouton de ma feuille excel celui si me renvoit le groupe de mot contenu dans ma plage de "A3:B30" qui se trouve sur une autre feuille excel du même classeur
 
Re : choisir la page word à ouvrir

Bonjour kardinal,

veuillez m'escusez du temps de réponses et merci job75
j'ai testé la macro elle fonctionne à merveille

Il faut remercier aussi kjin, sa macro est très bien.

Et quelle macro vous intéresse parmi toutes celles présentées ???

Pour le reste je ne comprends strictement rien, Word c'est donc fini 😕

Et ça :

Set ws = wb.Worksheets("amol").Cells("A3:B30")

ws sera un Range alors que vous le déclarez As Worksheet 🙄

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
712
Retour