Sub exportword()
Dim Tablo, Nom$, Chemin
Dim WdApp As Object, WdDoc As Object
On Error GoTo affichage
If Range("H5").Value <= 10 Then
'Nommer les cellules dans la feuille "Echéancier"
With Sheets("Echéancier")
Tablo = .Range("A6:D10").Value
Ref = .Range("B1")
Nom = .Range("B2")
Dates = .Range("B4")
Adresse = .Range("B3")
Dette = .Range("D1")
Echéances = .Range("D2")
Début_DP = .Range("D3")
End With
'Chemin d'enregistrement de l'engagement de paiement
Chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours" & "\" & Nom & " " & Ref & "\" & Nom & " Engagement de Paiement"
'Si les champs ne sont pas remplis affichier msgbox sinon éxécuter la suite
If Adresse = "" Or Nom = "" Or Ref = "" Or Dette = "" Or Dates = "" Or Echéances = "" Or Début_DP = "" Then
MsgBox "Veuillez compléter tous les champs avant de créer l'engagement de paiement.", vbOKOnly + vbCritical, "Attention"
Exit Sub
End If
'Déclaration de l'utilisation de Word
Set WdApp = CreateObject("Word.Application")
'Word visible
WdApp.Visible = True
'indiquer le chemin du fichier modèle
Set WdDoc = WdApp.Documents.Open(ThisWorkbook.Path & "\" & "Modele.doc")
'Dans le Doc Word
With WdDoc
With .Tables(2)
For I = 1 To UBound(Tablo, 1)
On Error Resume Next
.Columns(1).Cells(I + 1).Range.Text = CDate(Tablo(I, 1))
.Columns(2).Cells(I + 1).Range.Text = FormatNumber(Tablo(I, 2), 2)
.Columns(3).Cells(I + 1).Range.Text = CDate(Tablo(I, 3))
.Columns(4).Cells(I + 1).Range.Text = FormatNumber(Tablo(I, 4), 2)
Next
End With
'Signet dans Word
.bookmarks("Nom").Range.Text = Nom
.bookmarks("Dates").Range.Text = Dates
.bookmarks("Ref").Range.Text = Ref
.bookmarks("Adresse").Range.Text = Adresse
.bookmarks("Dette").Range.Text = FormatNumber(Dette, 2)
.SaveAs Filename:=Chemin, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
.Close True
End With
WdApp.Quit
Set WdDoc = Nothing
Set WdApp = Nothing
Else
With Sheets("Echéancier")
date1 = .Range("A6").Value 'Date début échéancier
montant1 = .Range("B6").Value 'Montant 1ere échéance
zone = Range("D6:D30")
date2 = .Range("G3").Value 'Avant dernière date de l'échéancier
date3 = .Range("G2") 'Dernière date de l'échéancier
montant2 = .Range("H2") 'Dernier montant de l'échéancier
Ref = .Range("B1") 'numéro IGOR
Nom = .Range("B2") 'Nom et Prénom
Dates = .Range("B4") 'Période de la PDD
Adresse = .Range("B3") 'Adresse du client
Dette = .Range("D1") 'Montant de la dette
End With
Chemin = "Q:\AAGP2\PDD GAZ\PDD\Dossiers PDD\En cours" & "\" & Nom & " " & Ref & "\" & Nom & " Engagement de Paiement"
Set WdApp = CreateObject("Word.Application")
WdApp.Visible = True
Set WdDoc = WdApp.Documents.Open(ThisWorkbook.Path & "\" & "Modele.doc") 'indiquer le chemin du fichier modèle
With WdDoc
With .Tables(2)
.Columns(1).Cells(2).Range.Text = " du " & date1 & " au " & date2
.Columns(2).Cells(2).Range.Text = FormatNumber(montant1, 2)
.Columns(3).Cells(2).Range.Text = date3
.Columns(4).Cells(2).Range.Text = FormatNumber(montant2, 2)
End With
.bookmarks("Nom").Range.Text = Nom
.bookmarks("Dates").Range.Text = Dates
.bookmarks("Ref").Range.Text = Ref
.bookmarks("Adresse").Range.Text = Adresse
.bookmarks("Dette").Range.Text = FormatNumber(Dette, 2)
On Error Resume Next
.SaveAs Filename:=Chemin, FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False
'MsgBox "Erreur de dossier client"
.Close True
End With
WdApp.Quit
Set WdDoc = Nothing
Set WdApp = Nothing
Application.StatusBar = "L'engagement de paiement de " & Nom & " a été créé."
Application.Wait (Now + TimeValue("00:00:02"))
Application.StatusBar = ""
Exit Sub
End If
ActiveSheet.Shapes("MonBouton3").Visible = True
Application.OnTime Now + TimeValue("00:00:02"), "EffacerMessage3"
affichage:
'ActiveSheet.Shapes("Label1").Visible = True
'Application.Wait (Now + TimeValue("00:00:04"))
'ActiveSheet.Shapes("Label1").Visible = False
MsgBox "Soit : " & vbCrLf & vbCrLf & "- Le dossier numérique de " & Nom & " n'a pas été créé. Dans ce cas, veuillez le créer puis générer l'engagement de paiement." & vbCrLf & vbCrLf & "- L'engagement de paiement de " & Nom & " a déjà été généré. Si vous souhaitez le modifier, veuillez le supprimer du dossier numérique puis recommencer.", vbCritical, "Attention"
End Sub
Sub EffacerMessage3()
ActiveSheet.Shapes("MonBouton3").Visible = False
End Sub