Ouvrir word depuis Excel

faube

XLDnaute Nouveau
J'ai un document excel à partir duquel j'ouvre différebt document word en cliquant sur les cellules, seulement à chaque fois, j'ai une nouvelle instance de word qui apparait dans la barre des taches. Je voudrai n'en avoir qu'une et que le nouveau document remplace l'existant.
J'ai bien fait un système de variable globale (wdApp ) pour savoir sir une instance de l'application word avait été créée mais ce n'est pas très propre.
Y a t-il une meilleur solution ?
Merci.


Dim i As Integer
Dim wdApp As Word.Application
Dim wdDoc As Word.Document



Sub RecupereValeurCellule(ByVal Sh As Object, ByVal Target As Range)
'MsgBox ("Appel a RecupereValeurCellule2")
If Target.Column = 3 Then

' recupere la valeur de la cellule cliquée
valeurDeLaCelluleCourante = Range(ActiveCell.Address)

'recupere la valeur de la cellule en colonne B de la ligne courante
adr = "$B$" & Target.Row


valeurB = Range(adr)

'recupere la valeur de la cellule en colonne A de la ligne courante
adr = "$A$" & Target.Row
valeurA = Range(adr)

'Récupération de la feuille active
'MsgBox (Application.ActiveWorkbook.ActiveSheet.Name)
nomFeuilleActive = Application.ActiveWorkbook.ActiveSheet.Name
'Nom du documlent word a ouvrir en fonction de la cellule active
'MsgBox (nomFeuilleActive)
If nomFeuilleActive = "Test COCPIT" Then
'MsgBox ("cas Test COCPIT")
planEssai = "D:\PUBLIC\Pleiades-HR\LienExcelWord\PRS-PE-CPIT-230-CG_02_04_1.doc"
End If
If nomFeuilleActive = "Test PHR" Then
'MsgBox ("cas Test PHR")
planEssai = "D:\PUBLIC\Pleiades-HR\LienExcelWord\PHR-PE-642-2307-CG_01_03.doc"
End If


nomDuTest = valeurA & "-" & valeurB & "-" & valeurDeLaCelluleCourante & " £N"

'ouverture du document word et appel de la macro de recherche du test
'Dim wdApp As Word.Application
'Dim wdDoc As Word.Document
'MsgBox (i)
If i = 0 Then
Set wdApp = New Word.Application
Set wdDoc = wdApp.Documents.Open(planEssai)
i = 1
End If

wdApp.Visible = True
wdApp.Run "Macro2", nomDuTest

End If
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
RecupereValeurCellule Sh, Target
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 590
Messages
2 090 040
Membres
104 354
dernier inscrit
Chass