Macro d'ouverture doc word + impression
Bonjour à tous,
J'aurais besoin d'une petite aide svp.
J'ai un problème concernant la macro suivante :
Private Sub CommandButton1_Click() ' Code du bouton Imprimer du Userform
Dim NDF As String, NDF2 As String, Rep As String
Dim WordApp As Object, WordDoc As Object
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open("ThisWorkbook.Pathh\Analyse de risques.docx", ReadOnly:=False)
With WordApp
.Visible = False
' copie le contenu du textbox1 à l'emplacement du signet "ref"
WordDoc.Bookmarks("Cause").Range.Text = Me.TextBox1.Text
WordDoc.Bookmarks("Conséquence").Range.Text = Me.TextBox2.Text
WordDoc.Bookmarks("Catégorie").Range.Text = Me.TextBox3.Text
WordDoc.Bookmarks("Parties").Range.Text = Me.TextBox4.Text
WordDoc.Bookmarks("Taux").Range.Text = Me.TextBox5.Text
WordDoc.Bookmarks("Début").Range.Text = Me.TextBox6.Text
WordDoc.Bookmarks("Fin").Range.Text = Me.TextBox7.Text
WordDoc.Bookmarks("Actions").Range.Text = Me.TextBox8.Text
WordDoc.Bookmarks("Responsable").Range.Text = Me.TextBox9.Text
WordDoc.Bookmarks("Risque").Range.Text = Me.TextBox10.Text
WordDoc.Bookmarks("NRisque").Range.Text = Me.ComboBox1.Text
End With
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
WordDoc.Close
MsgBox "Document word imprimé avec succés"
End Sub
Elle ne veut pas compiler elle me dit qu'elle ne trouve pas le document word en question alors qu'il est dans le même dossier de la doc excel (pour cela que j'ai utiliser la fonction Path). On retrouve le code en cliquant sur le bouton imprimer dans l'onglet "Plans d'action" et en choisissant dans le combobox 1 un risque.
De plus en fin de code lorsque il m'affiche les imprimantes pour lancer l'impression même si je clique sur annuler il imprime (code tester en dehors).
Je vous transferts mes deux fichiers en PJ.
Quelqu'un peut-il m'aider je suis complètement bloqué..
Merci
Cdlt
Bonjour Floflo,
Essaye de remplacer
Set WordDoc = WordApp.Documents.Open("ThisWorkbook.Pathh\Analyse de risques.docx", ReadOnly:=False)
par
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\Analyse de risques.docx", ReadOnly:=False)
Bonjour merci de ta réponse.
J'ai refais un code qui semble marcher à présent mais j'ai toujours ce problème quand il affiche la fenêtre des imprimante disponible on ne peut pas revenir en arrière. Même en cliquant sur "annuler" il imprime....
Private Sub CommandButton1_Click() ' Code du bouton Imprimer du Userform
Dim NDF As String, NDF2 As String, Rep As String
Dim WordApp As Object, WordDoc As Object
Dim chemin As String
chemin = ActiveWorkbook.Path
Rep = MsgBox("Un ficher word va être imprimé, souhaitez-vous poursuivre ?", vbYesNo + vbQuestion, "")
If Rep = vbYes Then
Rep = chemin
NDF = Rep & "\Analyse des risques.docx"
If Not Exist_Fichier(NDF) Then ' Verifie si le doc existe
MsgBox "Document Word Modèle rapport d'intervention curative.docx manquant dans le répertoire " & chemin & "\", vbExclamation, "Attention"
Else
On Error Resume Next
If Fichier_IsOpen(NDF) Then ' Verifie si le doc est déja ouvert
Set WordApp = GetObject(, "Word.Application")
Set WordDoc = WordApp.Documents(NDF)
Else
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
End If
With WordApp
.Visible = False
WordDoc.Bookmarks("Cause").Range.Text = Me.TextBox1.Text
WordDoc.Bookmarks("Conséquence").Range.Text = Me.TextBox2.Text
WordDoc.Bookmarks("Catégorie").Range.Text = Me.TextBox3.Text
WordDoc.Bookmarks("Parties").Range.Text = Me.TextBox4.Text
WordDoc.Bookmarks("Taux").Range.Text = Me.TextBox5.Text
WordDoc.Bookmarks("Début").Range.Text = Me.TextBox6.Text
WordDoc.Bookmarks("Fin").Range.Text = Me.TextBox7.Text
WordDoc.Bookmarks("Actions").Range.Text = Me.TextBox8.Text
WordDoc.Bookmarks("Responsable").Range.Text = Me.TextBox9.Text
WordDoc.Bookmarks("Risque").Range.Text = Me.TextBox10.Text
WordDoc.Bookmarks("Projet").Range.Text = Me.TextBox11.Text
WordDoc.Bookmarks("NRisque").Range.Text = Me.ComboBox1.Text
End With
Application.Dialogs(xlDialogPrinterSetup).Show
WordDoc.PrintOut Copies:=1, Collate:=True
MsgBox "Document word imprimé"
WordDoc.Close '-- fermer le document Word
WordDoc.Quit '-- fermer la session Word
Set WordDoc = Nothing
Set WordApp = Nothing
End If
Else
' ici le traitement si réponse négative
' ...
End If
End Sub
Je ne vais pas pouvoir te répondre précisément avant demain, mais dans ta procédure tu ne contrôles pas le résultat de la boîte de dialogue. Il est donc normal que tu imprimes dans tous les cas. (Quelque chose comme 'If [...].Show <> -1 Then' devrait fonctionner)
Bonjour FloFlo,
Essaye de remplacer
par
Application.Dialogs(xlDialogPrinterSetup).Show
WordDoc.PrintOut Copies:=1, Collate:=True
MsgBox "Document word imprimé"
WordDoc.Close '-- fermer le document Word
WordDoc.Quit '-- fermer la session Word
Set WordDoc = Nothing
Set WordApp = Nothing
If Application.Dialogs(xlDialogPrinterSetup).Show = True Then
'Si l'utilisateur confirme la configuration de l'imprimante alors...
WordDoc.PrintOut Copies:=1, Collate:=True 'Imprime le document Word
MsgBox "Document word imprimé"
Else
MsgBox "Impression annulée"
End If
WordDoc.Close '-- fermer le document Word
WordDoc.Quit '-- fermer la session Word
Set WordDoc = Nothing
Set WordApp = Nothing
Cédric