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 :

VBA Excel - Automatisation fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2024
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2024
    Messages : 1
    Par défaut VBA Excel - Automatisation fichier
    Bonjour, je souhaiterais créer une macro qui me permette, à partir d'un fichier excel de 28 onglets de :

    -Créer un fichier pdf par onglet qui soit ajusté au format A4 au niveau de la taille en mode paysage (car servira à l'impression)
    - De nommer chaque pdf ainsi créé avec le nom de l'onglet excel associé
    - D'enregistrer chaque pdf dans un dossier de mon choix (le même pour les 28 fichiers)
    - De demander à l'utilisateur s'il souhaite imprimer les fichiers, si oui imprimer les 28 fichiers pdf créés en une seule fois

    Je suis assez nouveau dans le codage et j'ai codé la macro ci-dessous. J'ai rencontré plusieurs problèmes quand je la lance notamment :
    - Il n'y a que le premier onglet excel qui est enregistré (je pense qu'il y a un problème dans la boucle)
    - Le nom reste Feuil1 même si je chance le nom de l'onglet
    - Les autres onglets à partir du 2 ne s'enregistrent pas

    Pourriez-vous m'aider ?

    En vous remerciant,

    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
    Sub Automatisation()
        Dim ws As Worksheet
        Dim pdfName As String
        Dim savePath As String
        Dim confirmation As VbMsgBoxResult
     
        ' Spécifiez le dossier d'enregistrement des fichiers PDF
        ' Il faut mettre le chemin correct ici
        savePath = "C:\Chemin\Vers\Le\Dossier\PDFs\"
     
        ' Demande à l'utilisateur s'il souhaite imprimer les fichiers PDF
        confirmation = MsgBox("Voulez-vous imprimer les fichiers PDF?", vbYesNo + vbQuestion, "Imprimer PDF")
     
        ' Boucle à travers chaque onglet
        For Each ws In ThisWorkbook.Sheets
            ' Crée le nom du PDF basé sur le nom de l'onglet
            pdfName = ws.Name & ".pdf"
     
            ' Ajuste la taille de l'onglet pour un format A4 en mode paysage
            With ws.PageSetup
                .PaperSize = xlPaperA4
                .Orientation = xlLandscape
            End With
     
            ' Exporte l'onglet en PDF
            ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=savePath & pdfName, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     
            ' Si l'utilisateur a répondu Oui, imprime le fichier PDF
            If confirmation = vbYes Then
                ' Imprime le fichier PDF
                Shell "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe /t """ & savePath & pdfName & """"
            End If
        Next ws
    End Sub

  2. #2
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2015
    Messages : 24
    Par défaut
    Bonjour

    J'ai testé ton code, je n'observe pas les problèmes que tu mentionnes... Cela génère bien un fichier pdf nommé avec le nom de l'onglet Excel correspondant.
    J'ai noté (à tout hasard si cela peut aider) que la fonction 'ExportAsFixedFormat' plante si l'onglet est vide.

    Je n'ai pas testé l'impression , mais les PDF se générant bien je me dis que ton pb est ailleurs.

    As-tu essayé sans imprimer, histoire de voir si tes pdf se génèrent bien ?

    Quelle est ta version d'Excel ?

Discussions similaires

  1. [VBA-Excel] Automatiser une recherche de valeurs cibles
    Par Alqualonde dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/04/2012, 23h13
  2. [VBA-EXCEL] Copie Fichier sur un serveur
    Par daniel_gre dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/05/2007, 10h25
  3. [VBA-Excel] Liste fichier de repertoire selon critere
    Par Kaiba dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 09/02/2007, 13h07
  4. [VBA-Excel] Ouverture fichier
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/08/2006, 16h28
  5. [VBA-Excel,VB6,Fichier texte]enregistrer un classeur excel..
    Par Tarul dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/01/2005, 13h09

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