Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Word > VBA Word
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2005, 11h14   #1
Membre actif
 
Inscription : novembre 2003
Messages : 529
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 529
Points : 152
Points : 152
Par défaut Word -> PDF

Bonjour a tous,

J'ai un petit problème, je dois créer des documents word en pdf. J'ai utiliser ce code afin de les créer, mais le problème c'est qu'il me demande le nom de fichier pour le document pdf a créer, il y a-t-il une solutions pour passer le nom en paramêtre?

Voici mon code

Code :
1
2
3
4
5
 
 
ActivePrinter = "Adobe PDF"
 
app.PrintOut FileName:="", outputfilename:="", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
Merci d'avance
krfa1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2005, 11h54   #2
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Salut,

Je galère aussi sur la conversion de word en PDF ...
Petite question -> tu as Adobe Writer d'installer sur ton PC ?

J'ai trouvé pas mal d'exemple pour convertir du word en pdf, mais cela nécéssite d'installer un tas de logiciel comme PDF Creator, ...
Contactes moi par MP, si tu veux que je te les envoie !

Dans mon cas, mon application doit être déployé sur différents postes dont je ne connais pas les composants ! Existe-il un moyen de vérifier quel type de logiciel est installé sur le poste client et ensuite d'utiliser avec du code générique le logiciel adéquat ?

Merci d'avance
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/07/2005, 12h30   #3
Membre actif
 
Inscription : novembre 2003
Messages : 529
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 529
Points : 152
Points : 152
Ouai j'ai adobe writer installé sur ma machine. Et mon programme tounera que sur ma machine.

Mais je sais pas trop comment faire, je peut pas trop t'aider...


Est-ce que quelqu'un pourrait NOUS aider???? lol
krfa1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2005, 19h43   #4
Membre habitué

 
Inscription : mai 2002
Messages : 143
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 143
Points : 133
Points : 133
tu as essayé de mettre quelque chose dans outputfilename:="" du style :

Code :
1
2
3
ActivePrinter = "Adobe PDF" 
 
app.PrintOut FileName:="", outputfilename:="c:\essai.pdf", Range:=wdPrintAllDocument, Item:=wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:=False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, PrintZoomPaperHeight:=0
__________________
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
(Albert Einstein)
bhaal76 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 10h03   #5
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Bonjour,

A tout hasard, est-ce que quelqu'un sait comment on peut vérifier si sur un poste utilisateur, une imprimante virtuelle (pour pdf) est installé ?

Merci d'avance pour votre aide !
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 10h35   #6
Membre actif
 
Inscription : novembre 2003
Messages : 529
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : novembre 2003
Messages : 529
Points : 152
Points : 152
J'avais déjà essyé ça mais il me fait une erreur lorsque je mets un valeur dans outputfilename. Je comprend rien
krfa1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 12h04   #7
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je ne peux que t'indiquer ce qu'il y a dans l'aide à PrintOut, n'ayant jamais eu à le pratiquer. Si tu ne l'as pas, tu demandes. Tu n'es pas sur MAC ?
Je penche vers une erreur dans l'affectation du nom de fichier. Affiche-le ou mets un point d'arrêt...
Désolé de n'être pas plus constructif.

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 13h34   #8
Futur Membre du Club
 
Inscription : mai 2005
Messages : 23
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 23
Points : 17
Points : 17
si tu est sur mac, ATTENTION les chemins ne s'écrivent pas de la même façon

HD:mondossier:monfichier

pour C:\\mondossier\monfichier.pdf


pas besoin de .pdf, sur mac, c'est inscript dans le fichier pas dans l'extention.

sur système X, tu peut ecrire les chemin façon Mac o Unix, il comprend

(unix comme PC mais / et pas \)


cordialement

XHY65
XHY65 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 15h48   #9
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Bonjour,

Escalon a écrit :
Citation:
En allant dans "imprimer", si une imprimante virtuelle est installée, elle apparaît dans la liste des imprimantes disponibles.
En fait, ce que je voulais dire, c'est comment le savoir par code VB pour que j'automatise ensuite ma génération de PDF en fonction du matériel installé.
Si je vois qu'il n'existe pas d'imprimante virtuelle, je ne propose pas la génération de document en PDF.

Dans tous les cas merci pour votre aide !

++
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 16h12   #10
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
essaie de voir ce que tu peux faire avec

Code :
    Application.Dialogs.Item(xlDialogPrint).Show
Dans Dialogs, tu as une quantité d'options dont je te donne la liste. Je n'en ai testé que quelques uns... mais pas celui que tu veux.

'xlDialogPrint range_num, from, to, copies, draft, preview, print_what, color, feed, quality, y_resolution, selection, printer_text, print_to_file, collate

Je ne suis pas sûr que ça te convienne mais je n'ai pas mieux

Malgré tout, j'essairais de désigner l'imprimante avec une gestion d'erreur, si ce n'est pas la bonne, tu fais ce que tu as à faire...

Code :
1
2
3
MonImprimante = "\\OLAN\CCACX010 sur Ne05:"
Application.ActivePrinter = MonImprimante
ActiveSheet.PrintOut
où "\\OLAN\CCACX010 sur Ne05:" est le nom d'une imprimante sur le réseau

Tu connais "Application.displayalerts"... pour éviter les messages intempestifs...

Bonne chance

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2005, 16h21   #11
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Je teste ça de suite et j'édite !

Encore merci !

Edité :
Ok, ça marche, mais j'ai eu du mal à récupérer toutes les imprimantes sur le posteutilisateurs !

J'ai par contre trouvé un autre source qui liste facilement toute les imprimantes installés en utilisant l'api EnumPrinters.
Si ça intéresse qq, faites moi signe.

Maintenant, la question est de savoir comment reconnaitre les imprimantes virtuelles pour PDF ...
Je pense qu'en faisant une recherche sur le mot PDF ou Adobe dans le libéllé de l'imprimante on devrait avoir déjà 80% des imprimantes PDF !
Y'a-t-il à ce sujet un moyen de le savoir ?

J'ai remarqué pour PDFMail que le port de l'imprimante est sur LOCAL.
Quand est-il pour les autres cas ?

Merci d'avance

++
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2005, 13h17   #12
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
J'ai enfin trouvé quelque chose !

Tout d'abord j'utilise ce code pour rechercher mes imprimante :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
Option Explicit
 
Const PRINTER_ENUM_CONNECTIONS = &H4
Const PRINTER_ENUM_LOCAL = &H2
 
Public Declare Function EnumPrinters Lib "winspool.drv" Alias "EnumPrintersA" _
        (ByVal flags As Long, ByVal name As String, ByVal Level As Long, _
        pPrinterEnum As Long, ByVal cdBuf As Long, pcbNeeded As Long, _
        pcReturned As Long) As Long
 
Public Declare Function PtrToStr Lib "kernel32" Alias "lstrcpyA" _
        (ByVal RetVal As String, ByVal Ptr As Long) As Long
 
Public Declare Function StrLen Lib "kernel32" Alias "lstrlenA" _
       (ByVal Ptr As Long) As Long
 
Public Function ListPrinters() As Variant
    Dim bSuccess As Boolean
    Dim iBufferRequired As Long
    Dim iBufferSize As Long
    Dim iBuffer() As Long
    Dim iEntries As Long
    Dim iIndex As Long
    Dim strPrinterName As String
    Dim iDummy As Long
    Dim iDriverBuffer() As Long
    Dim StrPrinters() As String
 
    iBufferSize = 3072
    ReDim iBuffer((iBufferSize \ 4) - 1) As Long
    'EnumPrinters will return a value False if the buffer is not big enough
    bSuccess = EnumPrinters(PRINTER_ENUM_CONNECTIONS Or PRINTER_ENUM_LOCAL, vbNullString, _
            1, iBuffer(0), iBufferSize, iBufferRequired, iEntries)
 
    If Not bSuccess Then
        If iBufferRequired > iBufferSize Then
            iBufferSize = iBufferRequired
            Debug.Print "iBuffer too small. Trying again with "; iBufferSize & " bytes."
            ReDim iBuffer(iBufferSize \ 4) As Long
        End If
        'Try again with new buffer
        bSuccess = EnumPrinters(PRINTER_ENUM_CONNECTIONS Or PRINTER_ENUM_LOCAL, vbNullString, _
                1, iBuffer(0), iBufferSize, iBufferRequired, iEntries)
    End If
 
    If Not bSuccess Then
        'Enumprinters returned False
        MsgBox "Error enumerating printers."
        Exit Function
    Else
        'Enumprinters returned True, use found printers to fill the array
        ReDim StrPrinters(iEntries - 1)
        For iIndex = 0 To iEntries - 1
            'Get the printername
            strPrinterName = Space$(StrLen(iBuffer(iIndex * 4 + 2)))
            iDummy = PtrToStr(strPrinterName, iBuffer(iIndex * 4 + 2))
            StrPrinters(iIndex) = strPrinterName
        Next iIndex
    End If
    ListPrinters = StrPrinters
 
End Function
 
Public Function IsBounded(vArray As Variant) As Boolean
    'If the variant passed to this function is an array, the function will return True;
    'otherwise it will return False
    On Error Resume Next
    IsBounded = IsNumeric(UBound(vArray))
 
End Function
 
Public sub Test()
    Dim StrPrinters As Variant, i As Long
    Dim bResult As Boolean
 
    Global_ImprimantePDF = "NO_PRINTERS"
    'Recherche des imprimantes présentes sur le poste utilisateur
    StrPrinters = ListPrinters
    'Vérifie s'il y a plusieurs imprimantes (tableau)
    If IsBounded(StrPrinters) Then
        For i = LBound(StrPrinters) To UBound(StrPrinters)
            'Debug.Print StrPrinters(i)
            If InStr(LCase(StrPrinters(i)), LCase("PDF")) > 0 Then
                'On prend la première imprimante PDF disponible
                Global_ImprimantePDF = StrPrinters(i)
                Exit For
            End If
        Next i
        'Recherche l'imprimante active
        Global_ImprimanteActive = Application.ActivePrinter
        bResult = False
        For i = LBound(StrPrinters) To UBound(StrPrinters)
            If InStr(LCase(Global_ImprimanteActive), LCase(StrPrinters(i))) > 0 Then
                'On prend la valeur correcte
                Global_ImprimanteActive = StrPrinters(i)
                bResult = True
                Exit For
            End If
        Next i
        If bResult = False Then
            Global_ImprimanteActive = "NO_PRINTERS"
            MsgBox ("Impossible de trouver l'imprimante active !")
        End If
    Else
        Debug.Print "No printers found"
        Global_ImprimanteActive = "NO_PRINTERS"
    End If
end sub
Ensuite j'utilise le code suivant pour utiliser l'imprimante PDF :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
' Déclaration d'un nouvel objet word application
Dim wdApp As New Word.Application
'Ouvre le fichier modèle à partir du chemin spécifié
wdApp.Documents.Open FileNameDestination
'Gestion des variables
wdApp.ActivePrinter = Global_ImprimantePDF
'on l'enregistre au format PDF
Dim FileNamePDF As String
FileNamePDF = left(FileNameDestination, Len(FileNameDestination) - 4) & ".pdf"
wdApp.DisplayAlerts = wdAlertsNone
wdApp.PrintOut , , , FileNamePDF, , , , , , , True
'Temporisation car sinon Pb
PauseTime = 4    ' Définit la durée de temporisation en secondes.
Start = Timer    ' Définit l'heure de début.
Do While Timer < Start + PauseTime
    EnCours = Timer    ' Définit l'heure actuelle.
    DoEvents    ' Donne le contrôle à d'autres processus.
Loop
wdApp.ActivePrinter = Global_ImprimanteActive
'Ferme le document, quitte et release
wdApp.ActiveDocument.Close
wdApp.Quit
Set wdApp = Nothing
Ca marche bien !
Le seul truc, c'est que Acrobat Reader s'ouvre sur le poste ....
Si vous savez comment on peut faire pour que l'on ne le voit pas s'afficher

Dernière question :
Je test si le libéllé "PDF" est présent dans le nom de l'imprimante ... ce qui n'est pas la meilleure solution !
De plus, faut-il également acrobat reader sur le poste utilisateur ?
Lorsqu'on installe une imprimante virtuelle PDF, est-ce qu'acrobat est installé de base ?

Merci d'avance pour toute vos réponses !
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2005, 15h34   #13
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
OK, je peux rajouter le test !

As-tu (ou avez vous) des solutions pour ne pas que acrobat s'ouvre ?

Merci d'avance !
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/07/2005, 23h22   #14
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Personne n'a une petite idée pour qu'acrobat reader travaille en arrière plan ?

Merci d'avance !
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 09h31   #15
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Attends, je ne comprends pas... Quand tu lances une "impression sur acrobat distiller, par exemple, le travail se fait bien en arrière plan... Rien ne t'empêche de continuer ton travail.
Maintenant, si tu veux le fermer depuis ton appli, as-tu essayer d'activer Acrobat (de l'appeler) avant de le désactiver, avec App. ...
Je ne sais pas si ça marche avec une appli qui ne fait pas partie d'Office mais tu peux essayer...
Ceci dit parce, pas plus que moi, personne n'a l'air d'avoir d'idée... Et il semblerait que les "savants" du forum sont déjà en congés...

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2005, 09h40   #16
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
En fait, je ne veux pas imprimer mes documents mais juste créer les fichiers pdf.
Donc quand je lance la génération de document pdf à partir de de document word, je voudrais que mon applicatif n'ouvre pas le fichier pdf généré.

Quand je dis tourne en "arrière plan", je veux dire en fait que cela ne ce voit pas !

Tu imagines bien que si l'utilisateur voit les fichiers pdf, s'ouvrir un après l'autre, ça ne va pas convenir.

Merci d'avance pour votre aide
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2005, 11h36   #17
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
Personne n'a une petite idée pour que acrobat s'éxécute en tâche de fond ?
Je n'ai pas trouvé cette propriété à la méthode PrintOut :

Code :
wdApp.PrintOut , , , FileNamePDF, , , , , , , True
Ce n'est d'ailleur surement pas à cette méthode que l'on peut déterminer si acrobat s'affiche ou pas.

Merci d'avance pour votre aide !
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2005, 11h47   #18
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Tu m'as donné une idée. Quand on lance une appli office depuis une autre, tu passes en paramètre le type d'affichage de l'appli appelée (Plein écran, redimensionné... etc)

Code :
1
2
    n = "WINWORD.EXE " + critère2
    DemWord = Shell(n, 3)
Dans cet exemple, 3 signifie ouvrir Word en plein écran.

Tu peux peut-être regarder de ce côté là... à défaut d'autre chose...

A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/07/2005, 12h28   #19
Membre habitué
 
Inscription : avril 2003
Messages : 284
Détails du profil
Informations personnelles :
Âge : 37

Informations forums :
Inscription : avril 2003
Messages : 284
Points : 124
Points : 124
Envoyer un message via MSN à marsup54 Envoyer un message via Skype™ à marsup54
C'est une idée à creuser effectivement !

Le hic, c'est que c'est la fonction PrintOut qui lance acrobat automatiquement ... et pas la fonction shell !

Je pense qu'il doit exister une autre méthode pour transformer du word en pdf ...
Il doit bien exister une dll qui fait ça tout seul .... sans même avoir une imprimante virtuelle PDF. :

Enfin, je crois que les utilisateurs se passeront du PDF ... ils le feront à la main ! LOL

++
marsup54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2005, 15h00   #20
Invité de passage
 
Inscription : juin 2005
Messages : 12
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 12
Points : 1
Points : 1
Par défaut Macro Word pour convertir en pdf et emailer AUTOMATIQUEMENT

essayer donc ça avec adobe acrobat 7 pro et M outlook !
Moi cela me fait ConvertPDFAndEmail

EUREKA !
MERCI AUX ANGLAIS !!
Version VBA pour les nuls (qui est mon cas !) !!

tu ouvres la fenetre VBA
De Word, onglet Outils, Macro, Visual Basic Editor
De cette fenetre Visual Basic Editor, Outils, References,
cocher AdobePDFMakerForOffice

Tester vos numero de COMAddIns avec un espion !
Code :
1
2
3
4
Sub B()
Dim PP
PP = Application.COMAddIns.Count
End Sub
Selon le nombre PP, tester jusqu'à faire apparaitre ce qui suit :
pour tous les commachins de 1 à PP (dans mon cas 2)

Code :
1
2
3
4
Sub B()
Dim ZZ
ZZ = Application.COMAddIns(1).Description
End Sub
ZZ = "Macro complémentaire Accessibilité Microsoft Office pour le dessin"
on zappe !
Code :
1
2
3
4
Sub B()
Dim ZZ
ZZ = Application.COMAddIns(2).Description
End Sub
Lorsque ZZ = "Acrobat PDFMaker Office COM Addin", là on garde !!!


Puis exécuter la macro qui suit :
dans mon cas avec un 2 pour identifier la méthode COMAddIns :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Option Explicit
Public pOptions As AdobePDFMakerForOffice.ISettings
 
Sub Pdf()
 
'Dim DefPrinter
 
    'DefPrinter = Application.ActivePrinter
    'ActivePrinter = "Adobe PDF"
    Set pOptions = Application.COMAddIns(2).Object.GetCurrentConversionSettings()
        pOptions.AddTags = False
        pOptions.AddLinks = True
        pOptions.OutputPDFFileName = "G:\titi.pdf"
        pOptions.ViewPDFFile = False
    Application.COMAddIns(2).Object.CreatePDFEx pOptions
    'ActivePrinter = DefPrinter
    Call Mail()
End Sub
Sub Mail()
 
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem
 
On Error Resume Next
 
'Get Outlook if it's running
Set oOutlookApp = GetObject(, "Outlook.Application")
If Err <> 0 Then
    'Outlook wasn't running, start it from code
    Set oOutlookApp = CreateObject("Outlook.Application")
    bStarted = True
End If
 
'Create a new mailitem
Set oItem = oOutlookApp.CreateItem(olMailItem)
 
With oItem
    'Set the recipient for the new email
   .To = "titi@huji.com"
    'Set the recipient for a copy
    '.CC = "recipient2@mail.com"
    'Set the subject
    .Subject = " "
    'The content of the document is used as the body for the email
    .Body = "Bonjour" & vbCrLf & "Veuillez trouver ci-joint le contrat demandé." & vbCrLf
    .Attachments.Add Source:="G:\titi.pdf"
    .Send
End With
 
If bStarted Then
    'If we started Outlook from code, then close it
    oOutlookApp.Quit
End If
 
'Clean up
Set oItem = Nothing
Set oOutlookApp = Nothing
 
End Sub

8)
a+
Lor
lorbond est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h13.


 
 
 
 
Partenaires

Hébergement Web