Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

imprimante PDF

1 réponse
Avatar
Fuentes Mickael
Bonjour à tous,
je viens de faire une petite macro en VBA sous excel97 qui consiste à creer
un fichier PDF grace à un bouton et non pas en passant par fichier imprimer.
Tout fonctionne bien, je regle mes marges et toute la mise en page
automatiquement.
sur ma machine j'ai installé le logiciel "cutePDF writer" mais je voudrais
faire disparaitre le bouton de creation PDF si l'imprimante n'ai pas
presente sur les futures machines qui vont recevoir cet programme.

Merci d'avance.
Micky

1 réponse

Avatar
stéphane
Bonjour,

en adaptant le code du lien ci-dessous (merci à l'auteur)
http://www.excelabo.net/excel/imprimervba.php#piloterimprimante


la fonction Imprimantes(nom de l'imprimante) renvoi VRAI si l'imprimante
existe



Private Declare Function EnumPrintersA Lib "Winspool.drv" (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

Private Declare Function lstrlenA Lib "Kernel32" _
(ByVal lpString As Any) As Long

Private Declare Function lstrcpyA Lib "Kernel32" (ByVal lpString1 As String,
ByVal lpString2 As Long) As Long


Function Imprimantes(StrNomPrinter As String) As Boolean

Dim PrinterEnum() As Long, Impr() As String
Dim Needed As Long, Returned As Long, I As Integer
Dim Resultat As Boolean

Resultat = False
EnumPrintersA 2, vbNullString, 5, 0, 0, Needed, 0
If Needed = 0 Then Exit Function
ReDim PrinterEnum(Needed / 4)
EnumPrintersA 2, vbNullString, 5, PrinterEnum(0), Needed, Needed, Returned
ReDim Impr(1 To Returned)
For I = 1 To Returned
Impr(I) = Space$(lstrlenA(PrinterEnum(I * 5 - 5)))
lstrcpyA Impr(I), PrinterEnum(I * 5 - 5)

If Impr(I) = StrNomPrinter Then Resultat = Resultat Or True

Next I

Imprimantes = Resultat

End Function

Sub test()
MsgBox (Imprimantes("cutePDF writer"))
End Sub


Stéphane



"Fuentes Mickael" a écrit dans le message de news:

Bonjour à tous,
je viens de faire une petite macro en VBA sous excel97 qui consiste à
creer
un fichier PDF grace à un bouton et non pas en passant par fichier
imprimer.
Tout fonctionne bien, je regle mes marges et toute la mise en page
automatiquement.
sur ma machine j'ai installé le logiciel "cutePDF writer" mais je voudrais
faire disparaitre le bouton de creation PDF si l'imprimante n'ai pas
presente sur les futures machines qui vont recevoir cet programme.

Merci d'avance.
Micky