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 une page en pdf


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Par défaut enregistrer une page en pdf
    Bonjour,

    je souhaiterais enregistrer un onglet de mon fichier en pdf . Sachant que le fichier excel se trouve quelque part sur le pc, je souhaiterais faire une macro qui enregistre le pdf dans un sous dossier "bon de commandePDF" là où l'utilisateur a stocké le classeur excel.

    voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Sub pdf()
    Dim Dossier As String
    Dim Path_name As String
    Dim NomFichier As String
    NomFichier = "bon de commande_" & ActiveSheet.Range("I3").Value & "_" & ActiveSheet.Range("I6").Value ' & ".pdf"
    Path_name = ThisWorkbook.Path
    Dossier = Path_name & "\Bon de commandePDF"
     
        If DossierExiste(Dossier) = True Then
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & "\" & NomFichier & ".pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=True
        Else
             MkDir (Path_name & "\Bon de commandePDF")
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & "\" & NomFichier & ".pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=True
     
        End If
    End Sub

    j'ai vérifié chaque étape et ce qui ne va pas c'est le active.Sheet.ExportAsFixedFormat.... mais je ne sais pas où est le problème
    Quelqu'un pourrait il m'aider svp?

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour et bienvenue sur le Forum,

    2 remarques au préalable
    - Pour reporter un code dans une discussion, afin de le rendre plus lisible, tu peux le borner par les balises #.
    - Quant à l'architecture de la procédure, afin de la simplifier, tu peux créer un sous-répertoire si celui-ci n'existe pas.
    Après la fin de condition, la méthode d'export doit être placée (donc une seule fois).

    Je pense qu'il y a des caractères "parasites".
    T peux commencer par contrôler les valeurs des cellules I3 et I6 de la feuille active.
    Procède à l' affichage de la fenêtre des variables locales (menu "Affichage" de l'éditeur VBE) puis à une exécution en pas à pas.
    Rapporte ainsi dans la discussion les valeurs affichées de ces variables.

    Un bon point, si je peux me permettre, quant à l'utilisation de variables qui permettent un contrôle efficace de la procédure.

    A plus tard.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Par défaut
    Bonjour,

    Merci beaucoup pour votre réponse. Concernant votre 2eme remarque sur créer un répertoire pour simplifier le code je n'ai pas bien compris...
    sinon concernant les cellules; une a un format "nombre" et l'autre un format "date".

    voici la fenêtre des variables locales (image)Nom : code.PNG
Affichages : 687
Taille : 31,1 Ko

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2020
    Messages : 8
    Par défaut
    pardon je me suis trompée d'image

    Nom : variables.PNG
Affichages : 600
Taille : 8,3 Ko

  5. #5
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Jour22pluie, Bonjour le Forum,

    En fait, je pense que l'anomalie provient du répertoire d'enregistrement (le bureau).
    Je viens de tester et j'ai aussi une erreur.

    D'autre part, pour tester et/ou créer un répertoire, mieux vaut utiliser les requêtes Fso

    Pour ce faire

    Après avoir enregistré le classeur principal dans un répertoire "classique"
    - Active la référence "Microsoft Scripting.RunTime" (Menu Outils\Références de l'éditeur VBE)
    - Adapte ce code épuré

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Option Explicit
     
    Sub pdf()
     
    Dim Dossier As String
    Dim Path_name As String
    Dim NomFichier As String
     
    NomFichier = "bon de commande_" & ActiveSheet.Range("I3").Value & "_" & ActiveSheet.Range("I6").Value ' & ".pdf"
    Path_name = ThisWorkbook.Path
    Dossier = Path_name & "\Bon de commandePDF"
     
    Call Test_chemin(Dossier)
     
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dossier & "\" & NomFichier & ".pdf"
     
    End Sub
     
    Sub Test_chemin(lechemin As String)
    'Activer la Référence Miscrosoft Scripting runtime
    'Crée un chemin s'il n'existe pas
     
    Dim fso As FileSystemObject
    Dim fsoMonDossier As Folder
     
    Set fso = New FileSystemObject
     
    If Not fso.FolderExists(lechemin) Then
      Set fsoMonDossier = fso.CreateFolder(lechemin)
    End If
     
    If Not fsoMonDossier Is Nothing Then Set fsoMonDossier = Nothing
     
    Set fso = Nothing
     
    End Sub

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Au temps pour moi, la création de sous-répertoire dans "Bureau" est possible.
    (Testé avec mon dernier code.)

    Cela dit, je ne suis pas fan.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Enregistrer une page aspx sous forme de pdf
    Par iltcha dans le forum ASP.NET
    Réponses: 4
    Dernier message: 23/11/2015, 11h16
  2. Enregistrer une page web en pdf ?
    Par jmulans dans le forum Général Conception Web
    Réponses: 6
    Dernier message: 01/05/2007, 20h39
  3. enregistrer une page web entiere
    Par aaron4444 dans le forum Dépannage et Assistance
    Réponses: 2
    Dernier message: 13/06/2006, 15h04
  4. Télécharger et enregistrer une page web
    Par bous_saad317 dans le forum Entrée/Sortie
    Réponses: 8
    Dernier message: 24/02/2006, 17h35
  5. enregistrer une page asp
    Par car dans le forum ASP
    Réponses: 5
    Dernier message: 17/08/2005, 09h56

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