Bonjour,
J'ai un gros soucis avec word. J'ai fait une application qui ouvre un document word et qui assigne aux signets présents dans le document word des chaines de caractères. Lors de la première exécution, il n'y a pas de problème. Maintenant si je ne ferme par Word, pas de problème non plus, mais si je ferme Word et que j'essaye de recréer un document Word de la même manière, il me plante une erreur lorsqu'il arrive au niveau des signets. Par contre si je ferme le logiciel et que je tente de faire un document Word là ça marche de nouveau. Donc il faudrait que je puisse empêcher la fermeture de Word quand il est ouvert depuis mon logiciel. J'ai aussi essayé de créer une application Word à chaque fois, mais là j'ai un problème de fichier en Lecture seule ... J'utilise le code suivant que j'ai trouvé sur le site vbfrance.com :
------
' Création du nom de fichier d'enregistrement
NomFicEnregistrement = App.Path & "\Courrier\"
Nombre = Len(Référence)
For i = 1 To Nombre
If Mid$(Référence, i, 2) = "/ " Then
NomFicEnregistrement = NomFicEnregistrement
Else
NomFicEnregistrement = NomFicEnregistrement & Mid$(Référence, i, 1)
End If
Next
NomFicEnregistrement = NomFicEnregistrement & ".doc"
If Dir(App.Path & "\Courrier\") = "" Then
MkDir App.Path & "\Courrier\ "
End If
' Vérification de l'existance du fichier vierge
NomFicComplet = App.Path & "\Courrier.doc"
If Dir(NomFicComplet) = "" Then
MsgBox "Ce fichier n'est pas disponible !", vbOKOnly + vbExclamation
Exit Sub
End If
'Ouverture d'un document Word
On Error Resume Next
Set WW = GetObject(, "word.application")
If Err.Number <> 0 Then
On Error GoTo 0
On Error Resume Next
Set WW = CreateObject("word.application")
If Err.Number <> 0 Then
MsgBox "Fichier non accessible avec cette version de Word !", vbExclamation
Exit Sub
End If
On Error GoTo 0
Else
On Error GoTo 0
'AppActivate WW.Caption
End If
' ouverture du document
' et en plein écran !
WW.Application.Documents.Open NomFicComplet
' recherche signet
Set MyDoc = WW.ActiveDocument
Signet = "Destinataire"
If MyDoc.Bookmarks.Exists(Signet) = True Then
MyDoc.Bookmarks(Signet).Select
Selection.TypeText Destinataire & Chr$(13) & AdresseDestinataire
End If
--------
il plante juste avant le End if
Merci
jayrock