Impression en pdf

Bonjour à tous,

Lors des impressions automatique par macro, serait-il possible par ce chemin de pouvoir demander d'imprimer en PDF?

Un joyeux Noel à tous

Amicalement

Noel

Salut le forum

Regarde du côté des imprimantes virtuelles style PrimoPDF

Mytå

Bonjour à tous,

Bonjour Myta,

J'espère que tu as passé de joyeuses fêtes de Noel surtout si je me souviens tu résides au Canada.

Pour ce qui est de l'impression PDF j'ai ce module mais ce que je recherche c'est que j'ai crée un mailling avec une macro pour l'impression il m'envoie directement sur l'imprimante par défaut.

J'aurai souhaité qu'il me donne la possibilité de choisir une imprimante en l'occurence le PDF.

J'ai essayé de mettre l'imprimante PDF par défaut mais il imprime normalement mais je ne sais pas où il l'enregistre.

Pourras-tu m'aider

Merci d'avance

Amicalement

Noel

Bonjour

Voici un petit fichier, avec un USF qui gere les imprimantes, les feuilles,

Je ne sais plus qui l'a réalisé ( je pense à Vériti ou Thierry).

Moi j'utilise PDFcréator qui est gratuit

http://telechargement.journaldunet.com/fiche/5331/2/pdfcreator/index.html

90usfimpression.zip (14.03 Ko)

Re,

CB60, J'ai du mal m'expliquer. Je ne cherche pas à télécharger une imprimante virtuelle, je cherche surtout à imprimer un mailling dans mon projet qui gère très bien le courrier mais lors de l'impression ce que je désire c'est que lors de l'impression, il m'affiche la fenêtre pour le choix de mon imprimante et à ce moment là, je choisirai l'imprimante PDF avin de sauvegarder l'impression en PDF, et qui me permettra de les imprimer par la suite.

Alors qu'en ce moment quand je clique sur impression(macro) :

Sub MAIL_ReADH()
'lettre_divers Macro
Dim c As Range
Sheets(34).Select
For Each c In Range("a8:a" & Range("a65536").End(xlUp).Row)
With Sheets(7)
.Range("A1") = c.Offset
 .Range("B7") = c.Offset(0, 9) 'N° Adh
 .Range("E10") = c.Offset(0, 5) 'NOM & Prénoms
 .Range("E11") = c.Offset(0, 6) ' Adresse1
 .Range("E12") = c.Offset(0, 7) 'Adresse2
 .Range("E13") = c.Offset(0, 8) ''CP-Ville
  .Range("a14") = c.Offset(0, 10) 'Cher
Sheets(7).PrintOut Copies:=1, Collate:=True
End With
Next
 Sheets("tcd").Select
    With ActiveWindow
        .Width = 1024
        .Height = 750
    End With
     Application.Run "'GestionProg UFC (version 5).xls'!programme"
    Range("A5").Select
End Sub

Cette macro envoie l'impression directement sur mon imprimante par défaut sans pour autant pouvoir visualiser ce que je vais imprimer.

Peut-être que c'est impossible ce que je demande.

Merci de ton aide

Amicalement

Noel

Bonjour noel, forum,

Pour choisir l'imprimante, tu modifies l'argument "ActivePrinter" de la méthode "PrintOut"

Dans ton cas ce serait :

Sheets(7).PrintOut Copies:=1, ActivePrinter:="XXXXXXXXXX", Collate:=True

Pour connaître le nom complet de ton imprimante PDF, mets cette imprimante par défaut dans Fichier->Imprimer puis lance le code suivant :

MsgBox Application.ActivePrinter

Note ensuite le nom qui s'affiche dans la boîte de dialogue puis mets ce nom dans l'argument ActivePrinter à la place de XXXXXXXXXX.

Bonjour,

Je pense, au vu de tes messages, avoir compris que tu veux afficher la boite d'impression et là choisir l'impression ssur imprimante ou vers *.pdf.

Dans ton code utilise cette instruction puis clique sur PDF pour imprimer dans ce format.

Application.Dialogs(xlDialogPrint).Show

Amicalement et joyeux Noël également.

Dan

Re,

Bonjour Dan et CB60,

Désolé j'ai essayé les 2 propositions

Proposition 1 de CB60

S

heets(7).PrintOut Copies:=1, ActivePrinter:="XXXXXXXXXX", Collate:=True
    MsgBox Application.ActivePrinter

se bug sur le code PrintOut. Il n'arrive pas au code MsgBox

Proposition 2 de Dan

Application.Dialogs(xlDialogPrint).Show

après plusieurs emplacements j'ai fini par trouver où le placer mais au moment de l'impression il me donne que le dernier mailling tout en Ayant sélectionné 7 adhérents, qui plus est dans la liste d'attente d'impression il n'y a pas de document à imprimer mais par contre il me met un seul fichier PDF sur mon bureau c'est le dernier.

Je vous remercie de votre aide

Amicalement

Noel

cfn3cfn a écrit :

Désolé j'ai essayé les 2 propositions

Proposition 1 de CB60

S

heets(7).PrintOut Copies:=1, ActivePrinter:="XXXXXXXXXX", Collate:=True
    MsgBox Application.ActivePrinter

se bug sur le code PrintOut. Il n'arrive pas au code MsgBox

Pour ma part, c'est vba-new mon pseudo

Comme je l'ai mis dans mon message, tu dois remplacer le "XXXXXXXXXX" par le nom de ton imprimante PDF.

Suis les instructions de la 2è partie de mon précédent message.

Re

VBA-new Je m'excuse pour ton pseudo CB60 est déjà intervenu dans ce fil c'est pour ça que je me suis trompé.

Le nom mon imprimante PDF c'est Adobe PDF 7.0

Je l'ai remplacé "XXXXXXXXXX" mais ça bug toujours même en plaçant par défaut l'imprimante citée.

MsgBox Application.ActivePrinter e code j'ai essayé de le placer avant il me donne le message suivant :

IMPRIMANTE INCONNUE (CONSULTEZ LE CENTRE D'IMPRESSION).

Peux-tu me renvoyer la macro complète avec les 2 codes à leur emplacement exacte.

Merci d'avance

Amicalement Noel

Bon, voici les étapes à suivre :

1. Dans Fichier->Imprimer sélectionne ton imprimante PDF puis ferme la fenêtre comme suit :

imag1

2. Ensuite exécute le code suivant :

Sub Macro1()
    MsgBox Application.ActivePrinter
End Sub

Tu obtiens le nom exacte de ton imprimante PDF :

imag2

Dans mon cas le nom exact est "Adobe PDF sur Ne09:".

3. Mets ensuite le nom exact de ton imprimante PDF dans le code que tu as donné. Pour moi, ça ferait ça :

Sub MAIL_ReADH()
'lettre_divers Macro
Dim c As Range
Sheets(34).Select
For Each c In Range("a8:a" & Range("a65536").End(xlUp).Row)
With Sheets(7)
.Range("A1") = c.Offset
.Range("B7") = c.Offset(0, 9) 'N° Adh
.Range("E10") = c.Offset(0, 5) 'NOM & Prénoms
.Range("E11") = c.Offset(0, 6) ' Adresse1
.Range("E12") = c.Offset(0, 7) 'Adresse2
.Range("E13") = c.Offset(0, 8) ''CP-Ville
  .Range("a14") = c.Offset(0, 10) 'Cher
Sheets(7).PrintOut Copies:=1, ActivePrinter:="Adobe PDF sur Ne09:", Collate:=True
End With
Next
Sheets("tcd").Select
    With ActiveWindow
        .Width = 1024
        .Height = 750
    End With
     Application.Run "'GestionProg UFC (version 5).xls'!programme"
    Range("A5").Select
End Sub

Ça devrait marcher en théorie

Re,

Il y a un souci c'est que peut-être je suis sous MAC

MsgBox Application.ActivePrinter

me donne toujours le même message

IMPRIMANTE INCONNUE (CONSULTEZ LE CENTRE D'IMPRESSION).

Peut-être que DAN a la solution puisqu'il est sous MAC lui aussi.

Si tu arrives à contacter DAN tu lui poseras la question.

Je te remercie de ta patience pour la journée de Noel.

Je te souhaite de joyeuses fêtes pour la fin de l'année qui approche ainsi qu''à tous les forumeurs et toutes leurs familles.

Amicalement

Noel

Aïe! Je ne connais pas du tout le code pour MAC.

As-tu un enregistreur de macro? Si oui, essaie d'enregistrer l'action de modification de ton imprimante par défaut pour voir le code que cela donne et poste le code ici.

Pas sûr de pouvoir t'aider plus!

Bonjour à tous,

Bonjour vba-new,

J'espère que tu as passé de bonnes fêtes.

voici le code qu'il me donne pour le choix de l'imprimante

Sub PDF()
'
' PDF Macro
' Macro enregistrée le 26/12/2009 par Utilisateur de la version d'évaluation de Office 2004
'

'
    ActiveWindow.SmallScroll Down:=1
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
    ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
End Sub

Ne travaillant pas sous PC sous MAC je suis obligé d'arriver jusqu'à l'impression car je n'ai par loe bouton fermer j'ai soit : ANNULER ou IMPRIMER.

Merci de te donner autant de mal pendant les fêtes.

Amicalement

Noel

6classeur1.xlsm (26.36 Ko)

Noel,

le code que je t'ai donné te met la fenetre te permettant de cliquer sur l'option PDF. Toutefois ce que tu dois savoir, c'est que le pdf ne s'effectue que sur une feuille et non sur le fichier complet.

Par rapport à ton code, j'essayerais de remplacer :

Sheets(7).PrintOut Copies:=1, Collate:=True

par

.activate
Application.Dialogs(xlDialogPrint).Show

De là tu as le choix de cliquer sur PDF pour sauvegarder.

Pour VBA-NEW : il faut que tu saches que l'option d'imprimer en PDF est une option fournie de base avec tout ordinateur MAC. Donc pas besoin d'acheter ou installer quoique ce soit.

Pour le code, l'enregistreur de macro donnera exactement la même chose que sous windows et le choix du PDF ne se fait pas comme tu l'as montré dans les photos ci-avant mais en cliquant sur le bouton PDF qui est préinstallé

Amicalement

Dan

Re,

Bonjour Dan, Je te remercie pour le code . Je l'ai remplacé ça marche page par page qui sauvegarder c'est un peu fastidieux surtout quand on à 250 expéditions. Mais ça vaut la peine de le connaître

J'espère que tu as passé de bonne fêtes et je profite du moment pour te souhaiter une bonne et heureuse année à tous les tiens.

Qu'il en est de même pour vba-new, CB60 ainsi tous que tous les forumeurs que k'année 2010 soit pour tous une excellllllente.

Avec mes amitiés, la chaleur de la Réunion ainsi que le soleil et les flamboyants.

Amicalement

Noel

Rechercher des sujets similaires à "impression pdf"