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

VBScript Discussion :

Error #1A8 Objet requis


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Dr Byby'San
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2009
    Messages : 146
    Par défaut Error #1A8 Objet requis
    Bonjour,

    J'ai un VBScript chargé d'ouvrir Word et d'exécuter des Applications Stockées SAS et d'enregistrer le résultat. J'ai besoin d'éxécuter ce script toutes les 15 minutes (Par le planificateur de tâches).

    Lancé à la main, ce VBScript fonctionne parfaitement.
    Via le planificateur de tâches, j'ai un message d'erreur dans ma log

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Error #1A8
    In Function Documents.Open
    Objet requis
    J'ai testé avec Wscript, avec Cscript, en mode Administrateur, avec un contrôle total du dossier ... Mais toujours le même résultat.

    Merci par avance de votre aide.

    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    Option Explicit
    Dim word
    Dim document
    Dim AddinObj
    Dim strErrorMsg
    strErrorMsg = ""
     
    Call DoWork
     
    ' Write the log to disk
    Call WriteLogFile  ' (Comment out this line if you don't want a log file to be written.)
     
    Set AddinObj = Nothing
     
    ' Close the document
    document.Close
    set document = Nothing
     
    ' Shut down Microsoft Word
    word.Quit
    set word = Nothing
     
    Sub DoWork()
        On Error Resume Next
     
        '----
        ' Start up Microsoft Word
        '----
        Set word = wscript.CreateObject("Word.Application")
        If CheckError("CreateObject") = True Then
            Exit Sub
        End If
        Word.visible  = false
        word.DisplayAlerts = 0
     
        '-----
        ' open the document
        '-----
        Dim collection
        Set collection = word.Documents
        Set document = collection.Open("C:\Modele.doc")
        Set collection = Nothing
        If CheckError("Documents.Open") = True Then
            Exit Sub
        End If
     
        '-----
        ' get ahold of the SAS Addin COM object
        '-----
        Dim SASAddin
        Set SASAddin = word.COMAddIns("SAS.OfficeAddin.Loader.ConnectProxy")
        Set AddinObj = SASAddin.Object
        Set SASAddin = Nothing
     
        '-----
        ' refresh the document
        '-----
        AddinObj.Refresh( document )
        If CheckError("Addin.Refresh") = True Then
            Exit Sub
        End If
     
        'Lancement de la macro
        word.Run  " 'Modele_Corevih.doc'!Legende"
        '-----
        ' Save the newly refreshed document
        '-----
        'document.Save
        'If CheckError("document.Save") = True Then
        '    Exit Sub
        'End If
     
        '-----
        ' Email the newly refreshed document to the designated recipients
        '-----
        Call SendEmail
        If Checkerror("AddinObj.SendMail") = True Then
            Exit Sub
        End If
     
        '-----
        ' Perform SaveAs action as specified in delivery options.
        '-----
        Call SaveToFile
        If Checkerror("document.SaveAs") = True Then
            Exit Sub
        End If
    End Sub
     
    Sub WriteLogFile()
        Dim fileName
        Dim dateTime
     
        dateTime = Replace( FormatDateTime(Now(), vbShortDate), "/", "-" ) + " " + Replace( FormatDateTime(Now(), vbShortTime), ":", "" )
     
        filename = "C:\Log " + dateTime + ".txt"
     
        Dim fsObj
        Dim log
        Set fsObj = CreateObject("Scripting.FileSystemObject")
        Set log = fsObj.CreateTextFile(filename, True)
     
        If strErrorMsg <> "" then
            log.WriteLine( strErrorMsg )
            log.WriteBlankLines(2)
        End If
     
        If AddinObj.Log <> "" Then
            log.Write( AddinObj.Log )
        End If
    End Sub
     
    Function CheckError(fnName)
        CheckError = False
     
        Dim errNum
     
        If Err.Number <> 0 Then
            strErrorMsg = "Error #" & Hex(Err.Number) & vbCrLf & "In Function " & fnName & vbCrLf & Err.Description
            'MsgBox strErrorMsg  'Uncomment this line if you want to be notified via MessageBox of Errors in the script.
            CheckError = True
        End If
     
    End Function
     
    Sub SendEmail()
        Dim recipients
        recipients = "byby@yahoo.fr"
        Dim subject
        subject = "Rapport Word Généré"
        Dim message
        message = "Veuillez trouver ci-joint le rapport généré"
        AddinObj.SendMail document, recipients, "", subject, message
    End Sub
     
    Sub SaveToFile()
        Dim filename
        filename = "C:\Rapport.doc"
        document.SaveAs( filename )
    End Sub

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    à vue de nez, j'aurais envie de dire qu'il ne trouve pas le fichier "C:\Modele.doc" ou que celui-ci est inaccessible lorsque le script est lancé par le scheduler
    je ferais un test en plaçant le fichier dans le répertoire mes documents de l'utilisateur
    et je supprimerais la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set collection = Nothing
    parfaitement inutile et étrangement placée avant le test d'erreur...
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre confirmé Avatar de Dr Byby'San
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Novembre 2009
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2009
    Messages : 146
    Par défaut
    J'ai trouvé la clé du problème ...

    La tache planifiée avait comme option de se lancer même si la session de l'utilisateur était fermée.
    En testant session ouverte, session fermée, j'ai pu voir que cela fonctionnait uniquement quand la session de l'utilisateur (qui n'est pas forcément la mienne) était ouverte.

    Affaire résolue !
    Merci !

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

Discussions similaires

  1. Error 424 Objet requis pour un simple copier/coller la cellule au-dessus ?
    Par ubuntu666 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/05/2015, 16h38
  2. [XL-2003] Création de TCD à partir de Macro ; Error : Objet requis + Total en Somme
    Par Axi91 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/04/2013, 14h50
  3. Error: objet requis : "Server"
    Par catadanna dans le forum VBScript
    Réponses: 1
    Dernier message: 29/07/2009, 10h22
  4. Erreur Objet requis : 'this' --> Comprend pas!!
    Par Grozeil dans le forum ASP
    Réponses: 3
    Dernier message: 30/03/2005, 09h46
  5. Erreur "Objet requis"
    Par cindaille dans le forum Access
    Réponses: 5
    Dernier message: 26/10/2004, 00h59

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