imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 avril 2007
-
2 févr. 2007 à 09:24
imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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 #
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 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
imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 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
imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 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
imgKappa
Messages postés44Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention28 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.