Message d'erreur sur OLE word!!

imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007 - 2 févr. 2007 à 09:24
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007 - 2 févr. 2007 à 21:19
Bonjour, J'ai un soucis de fusion avec word,
au monment de fusionner j'ai un message d'erreur suivant:

Franchement j'ai aucune idée,  La ligne est en rouge dans le code ou le probleme se produit
Voici le code du bloc ou se produit l'erreur

Private Sub Command4_Click()
Dim Template_File As String
Dim Doc_File As String
Dim MyObj As Object
' On vérifie l'existence du modèle Word
Template_File = GCF & "\exe\MonModele.dot"
If Dir(Template_File, vbNormal) = "" Then
    MsgBox ("Fichier " & Template_File & " inconnu !!!"), vbExclamation
    Exit Sub
End If
' On ferme toutes les instances existantes de Word
Call CloseInstance("Word.Application")
Screen.MousePointer = vbHourglass
' On crée une instance Word
Set MyObj = CreateObject("Word.Application")
' On rend l'application non visible. Permet pour la suite d'accélérer le temps d'exécution
MyObj.Application.Visible = True 'false
' On crée un nouveau document Word à partir du modèle Template_File
MyObj.Application.Documents.Add Template:=Template_File, NewTemplate:=False
' On initialise tous les champs du documents
Call InitEntries_DOC(MyObj.Application)
' Mise à jour des champs du document
Call UpdateEntries_DOC(MyObj.Application)
' On sélectionne le document
MyObj.Application.ActiveDocument.Select
' On valide la mise à jour
MyObj.Application.Selection.Fields.Update
' On supprime le lien avec les champs pour n'avoir dans le document que du texte
MyObj.Application.Selection.Fields.UnLink
' Validation des mises à jour de l'en-tête et pied de page
'    Call UpdateEntries_HeadFoot(MyObj.Application)
' On définit que le modèle a été sauvegardé. Permet d'éviter le message demandant l'enregistrement du modèle .dot
MyObj.ActiveDocument.AttachedTemplate.Saved = True
' On sepositionne en haut du document
MyObj.Application.Selection.HomeKey Unit:=WD_Story


If ImprimerDirectement.Value = vbChecked Then 'On imprime directement
   MyObj.Application.PrintOut Copies:=Val(NbExemplaires.Text), Collate:=True, Background:=True, PrintToFile:=False
End If
If Enregistrer.Value = vbChecked Then
    ' On affecte le nom au nouveau document
    Doc_File = GCF & "\exe\Dossiers" & FullName & ".doc"
    If Fusionner.Value = vbChecked Then
        ' On vérifie l'existence du document avant d'effectuer la fusion
        If Dir(Doc_File, vbNormal) <> "" Then
            ' Le document existe
            ' On sélectionne tout le nouveau document
            MyObj.Application.Selection.WholeStory
            ' On copie tout
            MyObj.Application.Selection.Copy
            ' On ferme le nouveau document sans le sauvegarder
            MyObj.Application.ActiveDocument.Close SaveChanges:=False
            ' On ouvre le document existant en lecture / écriture
            MyObj.Application.Documents.Open Doc_File, ReadOnly:=False
            ' On se positionne en fin de docuemnt
            MyObj.Application.Selection.EndKey Unit:=WD_Story
            ' On insère un saut de ligne
            MyObj.Application.Selection.InsertBreak Type:=WD_PageBreak
            MyObj.Application.Selection.TypeParagraph
            ' On colle tout dans le document existant
            MyObj.Application.Selection.Range.Paste
        Else
            ' Le document n'existe pas : on ne fait rien
        End If
    Else
        ' Pas de fusion
        If Dir(Doc_File, vbNormal) <> "" Then
            ' On supprime le document si déjà existant avant l'enregistrement
            Kill Doc_File
        End If
    End If
    ' On enregistre le nouveau document
    MyObj.Application.ActiveDocument.SaveAs FileName:=Trim(Doc_File)
End If
If ImprimerDirectement.Value = vbChecked Then
    ' Dans le cas d'impression directe on refermle le document
    MyObj.Application.ActiveDocument.Close SaveChanges:=False
Else
    ' Sinon, on rend l'application Word visible et on l'active en mode plein écran
    MyObj.Application.Visible = True
    MyObj.Application.WindowState = WD_WindowStateMaximize
    MyObj.Application.Activate
End If
Screen.MousePointer = vbDefault
End Sub

6 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 févr. 2007 à 09:32
Sans trop connaitre tout ça, à priori je dirais que ton problème doit arrivé lorsque tu essaye d'enregistrer le fichier que tu viens de fusionner. En effet après la fusion le fichier Doc_File n'est pas fermé or tu essaye avec SaveAs de le sauvegarder sous un nouveau nom qui est Doc_File.
A mon avis, il va chercher sur le disque le fichier Doc_File, essaye de l'enregistrer, mais va pas pouvoir parce que le fichier est déjà ouvert par une autre appli (normal c'est que tu as ouvert et que tu essaye d'enregistrer.

Je pense qu'à l'enregistrement, tu devrais différencier les cas de fusions des autres.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 févr. 2007 à 09:34
Salut,
Il y a déjà un truc que je ne comprends pas (mais tu vas peu être me l'explique)
MyObj est de type Word.Application, alors pourquoi (quel est l'intérêt) de mettre MyObj.Application
C'est donc comme si on mettait Application.Application
@+: Ju£i?n
Pensez: Réponse acceptée
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
2 févr. 2007 à 09:42
Bonjour, j'ai essayer j'ai mi la ligne en remarque,
et maintenant une autre erreur et apparue et 429 l'objet activex n'as pas put etre crer
Puis aprés plusieur j'ai une creation de message divers,
c'est le bordel
Je me pose la question si le bug ne viendrais pas de mon ordi ou de word
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
2 févr. 2007 à 09:57
Salut,
Est ce que ce sont des constantes que tu as déclarées?
WD_WindowStateMaximize
WD_Story
WD_PageBreak

@+: Ju£i?n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
2 févr. 2007 à 11:15
Oui voici la declaration des constantes,
Mais depuis ce matin j'ai rien trouvé:
'
Global Const WD_PaneNone As Integer = 0
Global Const WD_NormalView As Integer = 1
Global Const WD_OutlineView As Integer = 2
Global Const WD_PrintView As Integer = 3
'
Global Const WD_Story As Integer = 6
Global Const WD_PageBreak As Integer = 7
'
Global Const WD_WindowStateNormal As Integer = 0
Global Const WD_WindowStateMaximize As Integer = 1
Global Const WD_WindowStateMinimize As Integer = 2
'
Global Const WD_SeekCurrentPageHeader As Integer = 9
Global Const WD_SeekCurrentPageFooter As Integer = 10
Global Const WD_SeekMainDocument As Integer = 0
0
imgKappa Messages postés 44 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 28 avril 2007
2 févr. 2007 à 21:19
Bonsoir a tous,
Aprés quelque heures de galére, j'ai trouvé, le probleme et dans mon word, je l'ai essayer cette apres-midi aillieur et pas de probleme
Maintenant il faut que je vois pourquoi mon word deconne.

Merci des reponses
0
Rejoignez-nous