IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Enregistrer en PDF pages sélectionnées


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Enregistrer en PDF pages sélectionnées
    Bonjour à tous,

    Je débute en Macro et je butte sur un point.
    J'ai un gros fichier Excel avec beaucoup d'onglets, et dans chaque onglet, une dizaine de pages.
    J'ai besoin quotidiennement d'enregistrer en PDF certaines de ces pages, et la sélection des pages à imprimer change tous les jours.
    Jusqu'à présent, j'utilisais la fonction enregistrer sous...en PDF, en sélectionnant les pages à enregistrer (de 1 à xx...).
    Bref, je perds un temps fou.

    Ce que je cherche à faire : avoir un onglet spécifique à l'impression des pages, et dans cet onglet, pouvoir sélectionner les pages à enregistrer en PDF.
    Je veux ensuite cliquer sur un bouton, et le fichier s'enregistre à la racine du fichier (utilisateurs multiples sur différents PC du fichier), avec un nom puisé dans une cellule. Un seul fichier PDF pour un onglet.

    Je vous joins un fichier exemple ultra simplifié, pour un fichier contenant juste une feuille.

    http://www.cjoint.com/c/FEdnEVcsjAk

    Ce que j'ai réussi à faire pour le moment sur ce fichier test avec un code bidouillé, l'enregistreur de macro et les différents forums : enregistrer l'onglet actif en PDF, enregistrer des pages fixes d'un autre onglet en PDF, et gérer leurs noms.

    Mon code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub printbdc()
    Sheets("Feuil2").Select
    chemin = ThisWorkbook.Path & "\" & myfile
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & Sheets("Feuil2").Range("G5") & ".pdf" _
    , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, From:=2, To:=3, _
    OpenAfterPublish:=False
    Sheets("Feuil1").Select
    End Sub
    Il me manque le plus compliqué : la gestion de la sélection des pages.

    Merci d'avance pour votre précieuse aide !

    Fred
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir Impression/Fusion de certains onglets d'un classeur en PDF, à adapter à ton contexte.

    P.-S. : Balise ton code
    Images attachées Images attachées  

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Merci beaucoup pour le retour !
    Déjà, ce fichier, c'est énorme !
    Ca se rapproche pas mal de ce que je veux, et pourrai déjà peut-être en adapter une partie à mon fichier final.
    Par contre, là où ça bloque, c'est que ça enregistre toute la feuille à chaque fois.
    Ce que je voudrais dans l'idéal, c'est une sélection, pour chaque feuille, d'une ou plusieurs pages.
    Cf exemple en PJ.
    Je ne sais pas si c'est possible ?

    http://www.cjoint.com/c/FEdp4RS0cbk

    Merci d'avance,

    Fred

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, si tous les onglets se déclinent en n pages dans des plages uniformes ( par exemple A1:G65 A66:G130 A131:G195 etc ) cela reste imaginable via l'appli fournie. Cependant il faudra y adjoindre qqs procédures
    pour ne sélectionner que les pages désirées.

    Sinon, à priori, il faut :
    • Générer l'ensemble des feuilles sélectionnées en PDF.
    Puis via Acrobat ( pas le Reader ) ou PDFCreator
    • Supprimer pour chacun des fichiers générés les feuilles inutiles.
    • Réaliser la fusion de ces fichiers.

    Tout cela restant à écrire et tester .....

    via PDFCreator utiliser :
    RemovePageFromPDFFile(sourceFilename As String, _
    destinationFilename As String, _
    pageNumber As Integer) As Integer

    MergePDFFiles_2 ( ByRef sourceFilenames As Object(), _
    destinationFilename As String, _
    filenamesAsBookmarks As Boolean )
    Images attachées Images attachées  

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,
    Merci pour le retour. Désolé pour la réponse tardive, d'autres choses à gérer en même temps !

    L'idée dans l'image jointe est tout à fait ce que je veux !

    Bon, par contre, si je comprends bien, pour un débutant, ça commence à devenir complexe...Surtout en cas d'utilisation sur plusieurs PC qui n'ont pas forcément tous PDF Creator...

    Je pensais à quelque chose du genre (aux détails de langage près !) :
    Si A2 = x, then enregistre page x
    etc etc...

    J'ai pas l'impression que ça se fasse en Macro.

    Ou alors dans la macro :

    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
    :=False, From:=2, To:=3, _
    Utiliser une variable qui remplacerait from 2 to 3 par from "La valeur dans A2" to "La valeur dans A3".

    Impossible donc ?

    Fred

Discussions similaires

  1. Réponses: 1
    Dernier message: 20/05/2011, 18h19
  2. [MySQL] Afficher une selection d'enregistrement sur plusieurs pages
    Par largolgd dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/03/2006, 22h20
  3. [SGBD] FPDF+enregistrer le pdf généré dans BDD MySQL
    Par Flushovsky dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 29/11/2005, 16h22
  4. interdir l'enregistrement de la page web
    Par adilou1981 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 23/02/2005, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo