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 :

Problème d'ouverture de fichiers en série pour impression en pdf


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut Problème d'ouverture de fichiers en série pour impression en pdf
    Bonjour,

    J'ai fait une petite procédure pour imprimer (ou plutôt exporter) une série de fichier xlsx en pdf.

    Je la teste sur une série de 88 fichiers.

    Dans le principe elle fonctionne plutôt bien, seulement parfois et de façon aléatoire elle s'arrête en me générant un message:

    Erreur d'exécution '1004':
    La méthode 'Open' de l'objet 'Workbooks' a échoué
    Le débogueur me surligne la ligne 39: Set wb = Workbooks.Open(chemin & "\" & fichier).

    Je n'arrive pas à comprendre pourquoi.

    J'ai même tenté de mettre une temporisation (Sleep (100) ligne 45) en me disant que le précédant fichier n'avait peut-être pas eu le temps de se refermer correctement mais ça ne change rien (j'ai essayé jusqu'à 2s)

    Elle a fonctionné de bout en bout qu'une seule fois.

    Une Idée?

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Option Explicit
    Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
     
    'Ouvre et imprime des fichiers xlsx d'un dossier choisi en pdf dans un sous dossier "PDF"
    Public Sub ImprimerFeuilles()
        Dim wb          As Workbook
        Dim fichier     As String
        Dim chemin      As String
        Dim compteur    As Integer
     
        If ThisWorkbook.Path = chemin Then
          MsgBox "Ne pas mettre le classeur contenant le programme dans le dossier " & chemin
          Exit Sub
        End If
     
        MsgBox "Sélectinnez le dossier ou se trouvent les fichiers à imprimer"
     
        'Ouverture d'un explorateur de dossier pour sélectionner le dossier
        With Application.FileDialog(msoFileDialogFolderPicker)
            .Show
            If .SelectedItems.Count > 0 Then
            chemin = .SelectedItems(1)
            End If
        End With
     
        'Test si sous-dossier PDF existe; si non le créer
        If Len(Dir(chemin & "\PDF", vbDirectory)) <= 0 Then
           MkDir (chemin & "\PDF")
        End If
     
        fichier = Dir(chemin & "\*.xlsx")
     
        With Application
            .DisplayAlerts = False
            .ScreenUpdating = False
        End With
     
        Do While fichier <> ""
            Set wb = Workbooks.Open(chemin & "\" & fichier)
            wb.Sheets(1).ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin & "\PDF\" & fichier & ".pdf"
            wb.Close
            Set wb = Nothing
            compteur = compteur + 1
            fichier = Dir
            Sleep (100)
        Loop
     
        With Application
            .DisplayAlerts = True
            .ScreenUpdating = True
        End With
     
        MsgBox compteur & " Fichiers ont été traités"
    End Sub

  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 586
    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 586
    Points : 34 255
    Points
    34 255
    Par défaut
    Salut,

    que te donne exactement chemin & "\" & fichier ?

    ajoute un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print chemin & "\" & fichier
    et commence par vérifier que le chemin est correct.
    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
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2015
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2015
    Messages : 51
    Points : 47
    Points
    47
    Par défaut
    Bonjour Jean-Philippe,

    je viens de terminer toute un série de tests sur les chemins et noms de fichiers.

    Les noms des chemins\fichiers de ceux qui plantent ne différent pas des autres.

    J'ai raccourci les chemins, au lieu de tester depuis le bureau avec l'imbrication de tous les sous-dossiers je me suis mis directement sur C:

    Cela a eu l'air de fonctionné une fois puis ça a replanté toutes les fois suivantes.

    J'ai analyser les noms des chemins et fichiers en hexa, des fois qu'un caractère non imprimable se soit glissé dedans --> rien.

    Puis je me suis intéressé à la documentation de la fonction Dir que j'utilise sans spécialement la connaitre.
    https://docs.microsoft.com/fr-fr/off...6)%26rd%3Dtrue

    Et là je ne suis pas optimiste en lisant l'extrait ci-après même si je suis sous Windows 10 avec office 2019!

    Avec Excel pour Mac 2016, l’appel de la fonctionDir initiale réussit. Toutefois, les appels ultérieurs à itérer dans le répertoire spécifié entraînent une erreur. Il s’agit malheureusement d’un bogue connu.

Discussions similaires

  1. [VBA - Excel] Problème d'ouverture de fichier
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 11h55
  2. [Système] Problème d'ouverture de fichier
    Par Neii Mad dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2006, 01h11
  3. Problème à l'ouverture de fichiers Word
    Par Asdorve dans le forum Word
    Réponses: 8
    Dernier message: 19/05/2006, 13h03
  4. Réponses: 5
    Dernier message: 05/05/2006, 16h08
  5. Réponses: 2
    Dernier message: 20/04/2006, 23h12

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