XL 2016 comment ajouter un filigrane dans un PDF généré par VBA

dindin

XLDnaute Occasionnel
j'ai un bouton qui génère la facture en PDF en la classant dans dossier spécifique.
ça arrive de temps à autre que le client annule sa commande.
ma question est la suivante: peut-on à l'aide d'un autre bouton ré-ouvrir ce même dossier , sélectionner la facture déjà en PDF et lui ajouter un filigrane : "Facture annulée le dd mm aa".
le texte en gras je peux le faire reste le filigrane je bloque.
le document actuel est confidentiel
Est c'est possible?
Merci d'avance
 

Hasco

XLDnaute Barbatruc
Repose en paix

dindin

XLDnaute Occasionnel
Bonjour,
Bonjour,


Vous n'en auriez pas un qui dise 'bonjour' quand vous postez ?

La charte est si longue et si pénible à lire que vous n'ayez pas eu le temps de le faire depuis le 27 février 2012 ?

Bonne lecture
Bonjour,
Je m'excuse pour cette mauvaise entrée. J'étais en train d'essayer le code en même temps.
Je m'excuse encore une fois. C'était simplement un oubli.
 

kiki29

XLDnaute Barbatruc
Salut, voir Acrobat Pro 7.0 Ajout d'un filigrane ( watermark ) à partir d'un texte
et Acrobat Pro 7.0 Ajout d'un filigrane ( watermark ) à partir d'un fichier pdf
paramètres de addWatermarkFromText et addWatermarkFromFile
Il te faut Acrobat ( pas le Reader )

On peut aussi utiliser PDFCreator 1.7.3 et
VB:
Function StampPDFFileWithPDFFile( _
         sourceFilename As String, _
         destinationFilename As String, _
         pdfFilename As String, _
         fromPage As Integer, _
         toPage As Integer, _
         overUnder As Boolean, _
         fillOpacity As Single, _
         blendMode As Integer _
     ) As Integer
VB:
Function AddTextToPDFFile ( _
    sourceFilename As String, _
    destinationFilename As String, _
    fromPage As Integer, _
    toPage As Integer, _
    ByRef textObject As PDFText _
) As Integer
 

Pièces jointes

  • Filigrane.jpg
    Filigrane.jpg
    46.5 KB · Affichages: 45
  • 2.png
    2.png
    58 KB · Affichages: 31
Dernière édition:

dindin

XLDnaute Occasionnel
re, juste par curiosité, je viens de retrouver ceci ( de Stephen BULLEN et Thierry Pourtier ) à toi de voir
Bonjour,
Merci pour tes propositions
le dernier fichier Excel affiche ce massage d'erreur:

1639665704636.png


Par contre j'ai réussi à adapter ce code :

VB:
Sub Facture_DM_annulée()


Dim wS As Worksheet
Dim fName As String
Dim MonDossier As String
'code pour inserer le filigrane
Dim Mud As Integer, Dum As Object
Mud = -90 '-90 'décalage pour centrer horiz. dans la 1ère page (à tester)
Application.ScreenUpdating = False
Dim Page As Integer, NbPages As Integer
NbPages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
For Page = 1 To NbPages
  ActiveSheet.Shapes.AddTextEffect(msoTextEffect3, _
                                   "Facture Annulée le " & Date, "Bookman Old Style", _
                                   50#, msoFalse, msoFalse, 50, 70#).Select
  Selection.name = "Dum"
  With Selection
    .ShapeRange.Fill.Visible = msoTrue
    .ShapeRange.Fill.Solid
    .ShapeRange.Fill.ForeColor.SchemeColor = 10
    .ShapeRange.Fill.Transparency = 0.3
    .ShapeRange.Line.Visible = msoTrue
    .ShapeRange.IncrementRotation -40.22
    .ShapeRange.IncrementLeft Mud
    .ShapeRange.IncrementTop 300
  End With
  Mud = Mud + 500   '432 ' 'incrémentation pour centrer page suivante
Next Page


Set wS = ThisWorkbook.Worksheets("DM_Facture")

With Worksheets("DM_Facture")
    fName = .Range("A75").Value '& " _ " & .Range("B15").Value
End With

'récuperer le chemein du dossier source
ChDir ThisWorkbook.Path

MonDossier = ThisWorkbook.Path & "\" & "Factures_déménagement_annulées_" & Range("annee").Value

    If DossierExiste(MonDossier) = True Then
  
'enregistrer le pdf dans le même dossier que le fichier source


wS.ExportAsFixedFormat Type:=xlTypePDF, filename:= _
MonDossier & "\" & fName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

'afficher message à la fin d'enregistrement du PDF
MsgBox ("Facture déménagement annulée N° : " & fName & " a été bien enregistrée en PDF dans : " & MonDossier & vbLf & "Vous pouvez joindre ce fichier par mail.")

'enregistrer le classeur
ActiveWorkbook.Save

'supprimer le filigrane après enregistrement
ActiveSheet.Shapes.Range(Array("Dum")).Select
    Selection.Delete
  
 Else
      On Error GoTo ExempleErreur

Dim NouveauDossierAvecSousDossiers As String
    NouveauDossierAvecSousDossiers = ThisWorkbook.Path & "\" & "Factures_déménagement_annulées_" & Range("annee").Value
    CreerDossier (NouveauDossierAvecSousDossiers)
Exit Sub
ExempleErreur:
    MsgBox "Une erreur est survenue..."
    End If
End Sub



Sub Dossier_facture_DM_annulée()

Dim MonDossier As String
MonDossier = ThisWorkbook.Path & "\" & "Factures_déménagement_annulées_" & Range("annee").Value

Shell Environ("WINDIR") & "\explorer.exe " & MonDossier, vbNormalFocus
End Sub

ce code fonctionne très bien avant l'enregistrement en pdf .
je n'arrive pas à l'adapter pour qu'il fonctionne après l'enregistrement en PDF

Pour ta 1 ère proposition, je pense qu'il faudra la version payante d' Acrobat que je n'ai pas .
 
Dernière édition:

kiki29

XLDnaute Barbatruc
Salut, à toi de voir et appliquer : Développer avec Office 64 bits

Même Microsoft déconseille l'installation d'une version 64 bits d'Office.

Office 32 bits est recommandé pour la plupart des utilisateurs
Nous recommandons la version 32 bits d’Office pour la plupart des utilisateurs, car elle offre une plus grande compatibilité avec la plupart des autres applications, en particulier les compléments tiers. C’est la raison pour laquelle la version 32 bits d’Office était installée par défaut, même sur les systèmes d’exploitation Windows 64 bits. Sur ces systèmes, le client Office 32 bits est pris en charge en tant qu’installation Windows-32-on-Windows-64 (WOW64). WOW64 est l’émulateur x86 qui permet l’exécution de façon transparente des applications Windows 32 bits sur les systèmes Windows 64 bits. Cela permet aux utilisateurs de continuer à utiliser les contrôles ActiveX et les compléments COM Microsoft avec la version 32 bits d’Office.

Ton samigondis "corrigé" donne ceci, à toi d'œuvrer.
 

Pièces jointes

  • Essai.pdf
    196.4 KB · Affichages: 11
Dernière édition:

Discussions similaires

Réponses
3
Affichages
756

Statistiques des forums

Discussions
315 134
Messages
2 116 616
Membres
112 812
dernier inscrit
jocelyne86360