XL 2010 Ouverture fichier Word : erreur 91

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

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Je ne comprends pas !! j'ai exactement ce même code dans un autre fichier qui fonctionne
Je l'ai mis dans un fichier ou j'en ai besoin : erreur
Ici je ne mets que cette sub toute seule pour exemple > idem erreur ??
 

Pièces jointes

fanch55

XLDnaute Barbatruc
Bonjour,
@Dranreb a raison , le Dim doit avoir un New si vous faites référence à word dans votre Projet,
et n'hésitez pas à faire un Quit par sécurité
Sinon, vous n'êtes pas obligé de faire référence à la library Word :
VB:
Sub facture()
Dim WordApp As Object
Dim i&, j&, pos&, NomDoc$, s As Object
    fic = Worksheets("Feuil1").Range("A1")
    NomDoc = ThisWorkbook.Path & "\" & fic & ".docx" ' définition du chemin et nom du doc au créer
    Set WordApp = CreateObject("Word.Application")
        WordApp.Documents.Open (ThisWorkbook.Path & "\" & "Facture_vierge.docx")
        WordApp.ActiveDocument.SaveAs NomDoc ' On l'enregistre ? là le doc est vide ?
        WordApp.ActiveDocument.Close
        WordApp.Quit
    Set WordApp = Nothing
    MsgBox "Ended"
End Sub
 

herve62

XLDnaute Barbatruc
Supporter XLD
Ok merci bien
Bernard , ton truc marche mais jamais vu avant ??
Mais alors expliquez moi Pourquoi dans le 1er fichier que j'ai fait il y a un mois fonctionne toujours avec ce même code de même que celui d'il y a un an ??
le Dim doit avoir un New si vous faites référence à word dans votre Projet
Ah bon je veux bien , mais donc pourquoi ce code dans l'appli que j'ai terminé il y a 8 j fonctionne très bien ? en plus je boucle x fois et le OPEN marche bien !!
VB:
Sub Fill_Form()
'nécéssite d'activer la référence Microsoft Word xx.x Object Library
Dim WordApp As Word.Application, WordDoc As Word.Document
Dim i&, j&, pos&, NomDoc$, s As Object
Dim chemin As String
...
....
For x = 4 to dg
.......
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\" & "BL vierge version HD.docm")
.......etc 
next x

Je viens de relancer mes 2 anciennes Appli avec cette Sub pour vérifier > AUCUN soucis ??

Le seul truc à savoir .. pas évident c'est que en mode DEBUG on lance , on arrête on relance ..etc et que dans ce cas WORD est déjà ouvert et ça plante....car c'est en arrière plan donc : Gestionnaire des tâches > supprimer les Word déjà ouverts ensuite c'est OK ( parfois il faut aussi relance Excel)
 

fanch55

XLDnaute Barbatruc
WordApp.ActiveDocument.Close : je ferme mon document
Wordapp.quit : je ferme Word

SI vous ne faites jamais de fermeture,
c'est sur que vous allez avoir plusieurs instances de Word
La dernière ne peut fonctionner correctement car le fichier sauvegardé est resté ouvert et cela vous bloque Excel ...
 

job75

XLDnaute Barbatruc
Bonjour herve62, Bernard, fanch55,

Je trouve plus simple de préparer d'abord la facture dans Excel :
VB:
Sub Facture_Word()
Dim WApp As Object, WDoc As Object, nom$
On Error Resume Next
Set WApp = GetObject(, "Word.Application")
If Err Then Set WApp = CreateObject("Word.Application")
On Error GoTo 0
WApp.Visible = True
Set WDoc = WApp.Documents.Add 'nouveau document
Sheets("Modèle").UsedRange.Copy 'copier
WDoc.Content.Paste 'coller
Application.CutCopyMode = 0
WDoc.Range.ParagraphFormat.SpaceBefore = 6 'meilleur cadrage
nom = Sheets("Modèle").[B1] & " " & Format(Date, "yyyy-mm-dd") & ".docx"
WDoc.SaveAs ThisWorkbook.Path & "\" & nom
If WApp.Documents.Count = 1 Then WApp.Quit Else WDoc.Close False
MsgBox "Facture '" & nom & "' créée..."
End Sub
A+
 

Pièces jointes

Discussions similaires

Réponses
3
Affichages
431
Réponses
9
Affichages
678
Réponses
1
Affichages
177
Réponses
7
Affichages
370
Réponses
5
Affichages
372
  • Question Question
Microsoft 365 SI erreur 91 alors
Réponses
2
Affichages
292
  • Question Question
XL 2021 Erreur 424
Réponses
14
Affichages
1 K

Statistiques des forums

Discussions
315 283
Messages
2 118 016
Membres
113 409
dernier inscrit
ffgsd