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 :

Macro en VBA : Je génère des fichiers Excel corrompus ! :( [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Macro en VBA : Je génère des fichiers Excel corrompus ! :(
    Bonjour à toute la communauté !

    Je suis nouveau sur le forum, enchanté tout le monde.

    Je vais essayer de vous décrire mon problème de la manière la plus simple.
    Je précise que mes connaissances du VBA sont assez limitées (je ne suis pas débutant, mais moyen quand même).

    Alors, j'effectue des opérations sur un fichier Excel comportant plusieurs feuilles.
    Après traitement, je génère deux PDFS (qui correspondent à deux feuilles de mon fichier Excel) et je joint ces deux PDF dans un mail.

    Cette opération est répétée pour une cinquantaine de mail.

    Lorsque je lance la macro, tout se passe nickel, pas de messages d'erreurs. J'ai bien tous mes mails de générés, sauf que lorsque j'ouvre les PDF, c'est le drame !!!!
    =====> Adobe reader affiche un message me disant que les fichiers sont endommagés ou corrompus !!!

    Je précise que ces fichiers ne sont pas vides.

    Voici le code utilisé pour l'impression des documents en PDF (je ne vous mets pas el reste, c'est très long et surement pas pertinent dans mon cas) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      'impression des courriers en .pdf
            Sheets("COURRIER").Activate
            FileTiff1 = ActiveWorkbook.Path & "\" & "COURRIER" & "-" & codesite & ".pdf" 'chemin d'enregistrement
            '---------------------------------------------------------------------------
            Application.ActivePrinter = "PDFCreator sur ne02:"
     
            Sheets("COURRIER").PrintOut Copies:=1, Preview:=False, Collate:=True, PrToFileName:=FileTiff1     'impression suivant le chemin spécifié
     
            Sheets("ETIQUETTES").Activate
            '---------------------------------------------------------------------------
            FileTiff2 = ActiveWorkbook.Path & "\" & "ETIQUETTES" & "-" & codesite & ".pdf" 'chemin d'enregistrement
            Application.ActivePrinter = "PDFCreator sur ne02:"
            Sheets("ETIQUETTES").PrintOut Copies:=1, Preview:=False, Collate:=True, PrToFileName:=FileTiff2    'impression suivant le chemin spécifié
    Avez-vous une idée de la source du problème ?

    Bien à vous,

    Ces

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    SAlut,

    en 2013 tu peux directement enregistrer ton fichier au format PDF, pas la peine de passer par Adobe:
    https://support.office.com/fr-fr/art...rs=fr-FR&ad=FR
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Bonsoir Jean-Philippe,

    Merci de ta réponse rapide.

    Tu entends par là que la ligne de code suivante où j'utilise PDF Creator nest pas nécessaire ?

    Application.ActivePrinter = "PDFCreator sur ne02:"

    Lorsque je la supprime, le code s'exécute en effet normalement, sans message d'erreur.
    Toutefois, les fichiers PDF générés sont toujours corrompus.

    Bien à toi,

    Cés

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    Non, ici il s'aigirait de faire un code proche de celui ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "tondossier" & strTonNom & ".pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Février 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Février 2018
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Merci jean-Philippe,

    J'avais certaines lignes de codes qui parasitaient les lignes de codes que tu m'a donné.

    Ca marche maintenant, merci beaucoup à toi !!!

    Cés

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2014, 17h20
  2. rechercher des fichier excel en vba
    Par isis1be dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2007, 20h19
  3. [VBA]comment masquer des fichiers excel au démarrage d'une macro?
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/04/2007, 15h33
  4. Réponses: 7
    Dernier message: 15/06/2006, 17h36
  5. Gestion en vba des fichiers excel en mode multiutilisateurs
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/12/2005, 16h06

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