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 :

Generer PDF sous VBA Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2019
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2019
    Messages : 65
    Par défaut Generer PDF sous VBA Excel
    Bonjour

    Je souhaiterais enregistrer dans un fichier pdf un range de cellule.
    J'ai trouvé ce code que j'ai adapté mais ça ne fait pas mon pdf à l'endroit indiqué.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    sRep = "C:\Temp"
    sFilename = "toto"&"-"&Now&"." & "pdf"     ' Nom du fichier
     Range("B2:G16").Select
    Selection.ExportAsFixedFormat _
                         Type:=xlTypePDF, _
                         Filename:=sRep & SFilename, _
                         Quality:=xlQualityStandard, _
                         IncludeDocProperties:=True, _
                         IgnorePrintAreas:=False, _
                         OpenAfterPublish:=True
    Autre question, je souhaiterais que le nom du fichier porte la date + heure d'impression ( 'Now') mais visiblement ca ne plait psa à VBA:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sFilename = "toto"&"-"&Now&"." & "pdf"
    Merci de l'aide .

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cocopops78 Voir le message
    Bonjour,

    Une solution possible. A vous de réorganiser la fonction si l'ordre année, mois, jour ne vous convient pas. Mais si vous avez plusieurs fichiers du même nom, la recherche en est plus facile dans un répertoire.
    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
     
    Option Explicit
     
    Function GroupeDateHeure() As String
     
    Dim MaDate As Variant
    Dim HeureEnCours As Variant
     
        MaDate = Split(CStr(Date), "/")
        HeureEnCours = Split(Time, ":")
        GroupeDateHeure = MaDate(2) & "-" & MaDate(1) & "-" & MaDate(0) & " H " & Join(HeureEnCours, "-")
     
    End Function
     
     
    Sub Essai()
     
    Dim SRep As String, SFilename As String
     
    'SRep = ActiveWorkbook.Path
    SRep = "C:\Temp"
    SFilename = "toto" & " " & GroupeDateHeure & "." & "pdf"     ' Nom du fichier
    Range("B2:G16").ExportAsFixedFormat _
                         Type:=xlTypePDF, _
                         Filename:=SRep & "\" & SFilename, _
                         Quality:=xlQualityStandard, _
                         IncludeDocProperties:=True, _
                         IgnorePrintAreas:=False, _
                         OpenAfterPublish:=True
     
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2019
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2019
    Messages : 65
    Par défaut
    Super ça marche nickel !

  4. #4
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2019
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2019
    Messages : 65
    Par défaut
    Citation Envoyé par cocopops78 Voir le message
    Super ça marche nickel !
    Dans mon esprit je pensais que créer un PDF nécessitait de passer par un logiciel type PDFCREATOR; qu'il fallait donc faire une passerelle entre VBA et PDF pour générer le pdf.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonsoir Eriic et cocopops78

    il y a un moyen plus simple avec format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function GroupeDateHeure() As String
        GroupeDateHeure = Format(Now(), "yyyy-mm-dd ""H"" hh-nn-ss")
    End Function
    Sub test()
        MsgBox GroupeDateHeure
    End Sub
    le "H" a la base pour format devrait être un caractère en trop et en temps normal pris pour l'unité des heures ,alors on le met entre doublequotes c'est magique

    un exemple qui va peut être mieux vous parler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub tests()
    MsgBox Format(78, """cocopops""00")
    End Sub
    pratique pour la création de référence plutôt que la concaténation de split
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par cocopops78 Voir le message
    Dans mon esprit je pensais que créer un PDF nécessitait de passer par un logiciel type PDFCREATOR; qu'il fallait donc faire une passerelle entre VBA et PDF pour générer le pdf.
    Cela dépend de la version d'Office. Cela a été rendu possible entre Office 2007 et Office 2010. Pour Office 2007, il faut soit avoir ajouté la mise à jour, (gratuite sur le site de MS), soit avoir acheté une version qui incluait déjà la mise à jour. Pour Office 2010 et après c'est "automatique".

Discussions similaires

  1. [XL-2010] Numériser des documents au format PDF sous VBA excel
    Par cco86260 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/01/2014, 11h14
  2. Fusionner plusieurs PDF en un seul sous vba excel
    Par Kutoh dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/08/2013, 17h09
  3. [XL-2003] Fusionner plusieurs PDF en un seul sous vba excel
    Par olivier45fr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/03/2012, 14h51
  4. Arc de cercle sous VBA excel?
    Par fredieuric dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/11/2006, 13h58
  5. ptit probleme combobox sous vba/excel
    Par bandito dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/10/2006, 09h34

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