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 qui marche seulement en mode debug [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Par défaut Macro qui marche seulement en mode debug
    Bonjour,

    J'ai écrit la macro suivante qui crée un fichier pdf (par l'intermédiaire de PDFCreator en mode autosave c'est-à-dire sans l'intervention de l'utilisateur). Le fichier pdf a le même nom que la feuille Excel et est sauvegardé dans le même répertoire que la feuille Excel.

    Le problème est que la macro marche quand je suis en mode édition debug en lançant la macro pas à pas. Par contre en mode normal, elle ne marche pas.

    Pouvez-vous m'aider à régler ceci ?

    Merci
    Nicolas

    Voici la macro en question:

    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
    Private Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
     
    Sub ToPdf()
     
      Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
      NomExcel = ActiveWorkbook.Name
      NomPdf = Left(NomExcel, Len(NomExcel) - 4)
      With pdfjob
      If .cStart("/NoProcessingAtStartup") = False Then 
           MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
           Exit Sub
      End If
     
      .cOption("UseAutosave") = 1
      .cOption("UseAutisaveDirectory") = 1
      .cOption("AutosaveDirectory") = ActiveWorkbook.Path
      .cOption("AutosaveFilename") = NomPdf
      .cOption("AutosaveFormat") = 0            ' 0 = pdf
      .cClearCache
      End With
      ActiveWorkbook.Sheets("TABLE").PrintOut Copies:=1, ActivePrinter:="PDFCreator"
     
      Do Until pdfjob.cCountOfPrintjobs = 1
          DoEvents
          Sleep 1000
      Loop
     
      With pdfjob
      .cDefaultprinter = DefaultPrinter
      .cClearCache
      .cClose
      End With
      Set pdfjob = Nothing
     
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Y a-t-il une erreur; si oui, laquelle ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Par défaut Personne n'a d'idée sur la question ?
    Je ne comprends vraiment pas pourquoi cela ne marche pas en mode normal. Quelqu'un pourrait au moins essayer la macro en modes debug et normal pour me confirmer qu'il y a un problème !! Peut-être le problème vient de ma configuration système.

    Nicolas

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    C'est beau les monologues... réponds au moins aux questions qu'on te pose ! Perso, je ne peux pas tester faute de PdfCreator.

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, ceci fonctionne chez moi
    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
    Option Explicit
     
    Sub ToPdf()
    Dim pdfjob As Object
    Dim NomExcel As String
    Dim NomPdf As String
     
        Set pdfjob = CreateObject("PDFCreator.clsPDFCreator")
        NomExcel = ThisWorkbook.Name
        NomPdf = Left$(NomExcel, Len(NomExcel) - 4) & ".pdf"
     
        With pdfjob
            If .cStart("/NoProcessingAtStartup") = False Then
                MsgBox "Can't initialize PDFCreator.", vbCritical + vbOKOnly, "PrtPDFCreator"
                Exit Sub
            End If
     
            .cOption("UseAutosave") = 1
            .cOption("UseAutisaveDirectory") = 1
            .cOption("AutosaveDirectory") = ThisWorkbook.Path & "\"
            .cOption("AutosaveFilename") = NomPdf
            .cOption("AutosaveFormat") = 0
            .cClearCache
        End With
     
        ThisWorkbook.Sheets("TABLE").PrintOut Copies:=1, ActivePrinter:="PDFCreator"
     
        Do Until pdfjob.cCountOfPrintjobs = 1
            DoEvents
        Loop
        pdfjob.cPrinterStop = False
     
        Do Until pdfjob.cCountOfPrintjobs = 0
            DoEvents
        Loop
     
        pdfjob.cClose
        Set pdfjob = Nothing
     
    End Sub
    Il peut être judicieux d'avoir également ceci sous la main

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub KillPDFCreator()
    Dim RetVal As Long
        RetVal = Shell("Taskkill /im PDFCreator.exe /f", 0)
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2012
    Messages : 4
    Par défaut
    Daniel, je veux bien répondre à ta question "y a-t-il une erreur ?": oui, il y a une erreur vu que cela ne marche pas. Par contre si j'ai posté, c'est d'une que je n'ai pas trouvé l'erreur et de deux, que je n'ai pas trouvé de réponse à mon problème en faisant des recherches sur internet.

    Et ni ma réponse ni ta 1ère question ne font avancer le schmilblick. La question plus générale serait: y a-t-il un paramètre qui change entre le mode debug et le mode normal sachant que j'ai mis une fonction sleep pour régler les problèmes de temps d'attente du programme pdf creator.

    Merci quand même pour ta contribution hautement résolutive.
    Nicolas

    Merci kiki29. Je testerai cela demain au travail (je n'ai pas de licence office chez moi). Je reviendrai pour dire si cela marche correctement.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour

    On sait qu'il y a une erreur, mais lorsqu'il y en a une, il y a en général un message qui donne des indications. C'est cela que l'on te demande.

    Philippe

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/05/2015, 22h14
  2. [XL-2003] J'ai une partie de macro qui marche pas
    Par Alexandra 01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/10/2010, 14h29
  3. Macro qui marche sur un poste et pas sur les autres
    Par INeedHelp dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2008, 08h58
  4. Macro qui marche qu'une fois
    Par baski dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/06/2007, 22h55
  5. [debug VBA]Message erreur 2499 seulement en mode debug
    Par manujuggler dans le forum Access
    Réponses: 4
    Dernier message: 05/01/2006, 22h17

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