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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <mickael_fuentes@pgep.fr> a écrit dans le message de news:
eV4hPQ5yIHA.4912@TK2MSFTNGP03.phx.gbl...
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.
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.