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 :

Imprimer en PDF [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 318
    Par défaut Imprimer en PDF
    Salut,

    J'ai fait un bouton pour imprimer en PDF directement un onglet mais je n'arrive pas à enlever l'extension .xlsm du nom du fichier pdf :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Export_en_pdf()
    Dim CheminPDF As Variant
     
    CheminPDF = ThisWorkbook.Path & "\" & ThisWorkbook.Name & ".pdf"
     
    Worksheets("Devis").ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=CheminPDF, _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
     
    End Sub
    Et peut-on aussi lors de l'exportation en PDF, choisir les onglets que l'on veut ?

    Merci par avance
    @+

  2. #2
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 230
    Par défaut
    Hello,

    ThisWorkbook.Name renvoi le nom du fichier AVEC l'extension

    ce bout de code renvoi le nom du fichier SANS l'extension, mais il y a plusieurs autres solutions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminPDF = ThisWorkbook.Path & "\" & CreateObject("Scripting.FileSystemObject").GetBaseName(ThisWorkbook.Name) & ".pdf"
    Pour imprimer plusieurs onglets il faut une boucle ou créer un groupe d'onglet

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 178
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 178
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et peut-on aussi lors de l'exportation en PDF, choisir les onglets que l'on veut ?
    Un exemple dans ce billet, VBA Excel : Copiez et personnalisez l'ordre de vos feuilles pour Imprimer et Exporter en PDF
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 318
    Par défaut
    Merci à vous ! cela fonctionne parfaitement !

    Autre dernière question :
    J'ai 2 écrans. Peut-on faire en sorte que le Userform se mette la où est le bouton de commande sur la feuille excel ?

    Merci par avance
    @+

  5. #5
    Membre chevronné
    Homme Profil pro
    CIP
    Inscrit en
    Avril 2024
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 207
    Par défaut re
    bonjour
    pour afficher ton userform au niveau de l’écran ou se trouve l'application il te faut paramétrer le startupposition
    Nom : Capture.JPG
Affichages : 93
Taille : 34,9 Ko

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 318
    Par défaut
    Salut,

    J'ai fait ça et cela fonctionne bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Activate()
        Me.Top = Application.Top
        Me.Left = Application.Left
     
        Me.Top = Application.Top + (Application.UsableHeight / 2.5)
        Me.Left = Application.Left + (Application.UsableWidth / 2.5)
    End Sub
    Vous pouvez modifier les 2.5 pour être plus précis sur le centrage

    Merci

    @+

  7. #7
    Membre chevronné
    Homme Profil pro
    CIP
    Inscrit en
    Avril 2024
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 207
    Par défaut re
    Bonjour
    plutot que d'utiliser un coeff(2.5) arbitraire qu'il faudra changer sur chaque pc ou le fichier excel sera utilisé
    je te propose de faire ce petit calcul automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Activate()
        Me.Top = Application.Top
        Me.Left = Application.Left
     
        Me.Top = Application.Top + ((Application.Height - Me.Height) / 2)
        Me.Left = Application.Left + ((Application.Width - Me.Width) / 2)
    End Sub
    là tu aura vraiment ton userform centré au milieu de l'application excel
    bonne continuation

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 318
    Par défaut
    Citation Envoyé par patmeziere Voir le message
    Bonjour
    plutot que d'utiliser un coeff(2.5) arbitraire qu'il faudra changer sur chaque pc ou le fichier excel sera utilisé
    je te propose de faire ce petit calcul automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub UserForm_Activate()
        Me.Top = Application.Top
        Me.Left = Application.Left
     
        Me.Top = Application.Top + ((Application.Height - Me.Height) / 2)
        Me.Left = Application.Left + ((Application.Width - Me.Width) / 2)
    End Sub
    là tu aura vraiment ton userform centré au milieu de l'application excel
    bonne continuation
    Merci, c'est vrai que c'est mieux
    Comment peut-on faire la même chose avec les msgbox ?

    Merci par avance
    @+

  9. #9
    Membre chevronné
    Homme Profil pro
    CIP
    Inscrit en
    Avril 2024
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : CIP
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2024
    Messages : 207
    Par défaut re
    re
    les msgbox son modal on ne peut donc pas les bouger une fois qu'il sont affichés
    il faut anticiper
    pour cela perso j'utilise une fonction passerelle appeler avant le show du message
    et j'utilise l api settimer qui va m'appeler une sub et avec l'api findwindow je capte son hadle
    et avec l'api setwindowPos je n'ai plus qu'a replacer le msgbox


    cela dit il y a plus simple
    c'est de faire son propre msgbox avec un userform
    si tu m'en dit plus sur ce msgbox et ce qu'il est sensé faire je pourrait t'aider éventuellement a le faire

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

Discussions similaires

  1. [WebForms][2.0] Imprimer un pdf
    Par fix105 dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 05/06/2006, 15h11
  2. Imprimer un PDF directement avec PHP
    Par King_T dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/05/2006, 01h02
  3. Imprimer un PDF en javascript
    Par shoushinye dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/10/2005, 09h48
  4. VBA/Word/Excel97/Imprimer un pdf sans ouvrir acrobat
    Par ouskel'n'or dans le forum VBA Word
    Réponses: 2
    Dernier message: 28/09/2005, 21h40
  5. [PDF] Imprimer un pdf
    Par Magguy dans le forum Documents
    Réponses: 3
    Dernier message: 21/01/2005, 09h08

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