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

VB 6 et antérieur Discussion :

Erreur "La méthode ~ de l'objet ~ a échoué"


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut Erreur "La méthode ~ de l'objet ~ a échoué"
    Bonjour, voici mon problème :

    j'ai un programme VB6 qui tourne correctement sur un PC, mais affiche une erreur sur un autre PC
    Erreur d'exécution -10737418196 (c0000005) la méthode ~ de l'objet ~ a échoué
    J'ai listé (en utilisant DLL Show) les DLL utilisées par ce programme sur les 2 PC et il s'avère que certaines DLL sont absentes du "Module dependency list" sur le PC à problème :
    MSCTF.DLL
    MSVCP60.DLL
    OLEACC.DLL
    SXS.DLL

    Les DLL sont bien présentes sur le PC, mais je ne sais pas comment les "incorporer" à mon projet (via Projet / références ?).

    Est-ce que cette erreur est liée aux écarts de DLL ?
    Sinon d'où peut provenir l'erreur ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    oui c'est ça ton problème.

    D'où proviennent des DLL ? Où sont elles stockées sur le pc défaillant ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Ce sont des DLL Microsoft. Elles sont stockées sur c:\winnt\system32 (ce qui me semble normal)

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Donc elles existent bien sur le pc qui déconne.

    Dans ce cas, leur version n'est peut-être plus bonne.

    Dans quel environnement de développement (os) l'appli a-t-elle été conçue ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    OS = XP Pro SP1
    Les versions des DLL sont identiques sur les 2 PC.

    Y a-t-il un moyen de dire à VB6 : "inclure MSCTF.DLL (par ex) dans le projet" ?

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    c'est forcément déjà fait, sinon le programme ne marcherait pas sur le pc d'origine ...

    Bon par contre, ton erreur tu l'as en mode "sources" ? ou en éxécution des binaireS ?

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Les 2.

    En mode source, l'erreur devient "la méthode 'replacement' de l'objet 'find' a échoué".
    Voici un extrait du code qui pourrait aider (l'erreur a lieu sur la dernière ligne, Selection.Find.Replacement.ClearFormatting) :

    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
    Global docword As Object
     
    Public Sub generate_doc(ByVal Text As String)
    ' remplacement des valeurs des variables dans le doc
    ' variables en entree
    '         Text         = nom du template à utiliser
     
    ' Doc word is being created
    On Error Resume Next
    Set docword = GetObject(, "Word.Basic")
    If Err.number <> 0 Then
    Set docword = CreateObject("Word.Basic")
    End If
    On Error GoTo 0
     
    docword.fileopen repertory & "Template\" & Text
     
    Call replace_results(ByVal "*V_tkox*", ByVal Str(FormatNumber(V_tkox, i)), ByVal i)
     
    End Sub
     
    Public Sub replace_results(ByVal stringresults As String, ByVal valueresults As String, ByVal j As Integer)
     
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
     
    End Sub

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    et quand tu fais contrôle + F5 pour lancer ton programme, tu as des avertissements avant exécution ?

    Sinon, je ne vois pas où est déclaré "Selection", qu'est-ce que c'est ?

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Non, aucun avertissement.

    Selection : l'objet est initialisé par Selection.Find

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    non mais, si c'est un object, il est déclaré quelque part ... "Public Selection as ..."

    c'est ça qui m'intéresse

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Non : selection n'est déclaré nulle part.

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    est-ce que tu as coché "déclaration obligatoire des variables" ? ...

    Sinon, ajoute ceci :

    "Option Explicit" en tout début de chaque module, form, classe, puis compile et revient ici pour qu'on puisse travailler.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    J'ai coché la case "déclaration obligatoire des variables", recompilé mon projet : aucun message particulier.
    Par contre à l'exécution : même message d'erreur qu'avant.

    En utilisant le debugger et un espion sur Selection, je note que le type est défini (Object/Selection) à l'instant de l'appel de replace_results.

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Citation Envoyé par Vld44
    "Option Explicit" en tout début de chaque module, form, classe, puis compile
    Aussi ?

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Oui, pareil.

    Selection n'est-il pas défini "par défaut" ? Lors de la définition du type à l'appel de replace_results, je vois (dans l'espion) une structure complexe pour cet objet : elle renvoie à des objets spécifiques à Windows.
    Toute macro Word utilise également l'objet Selection pour toute recherche / remplacement.

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Ta source là, celle que tu nous montres, elle est dans quel type de module ? Classe, form ?

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Ce sont des modules.

  18. #18
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    je suis désolé mais sans info supplémentaire sur ce que c'est que cette "selection" (dll de provenance, type d'instanciation ...) je ne peux pas t'aider.

    Fais F2 !

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 1
    Points
    1
    Par défaut
    Bonne idée ...

    Class Selection : membre de Word (MSWORD9.OLB)
    Property Find : membre de Word Selection

    Class Replacement : membre de Word (MSWORD9.OLB)
    Sub ClearFormatting() : membre de Word Replacement

    Les 2 PC font référence à la même version MSWORD9.OLB 9.0.0.2717

  20. #20
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Argentine

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 173
    Points : 1 418
    Points
    1 418
    Par défaut
    Rassure moi, t'es bien sous VB6, pas sous word en train d'éditer une macro là ?

    Sinon y'a un truc que je pige pas, comment VB sait de quel document tu cherches la sélection ?

    Tu ne précises pas la source ... En tout cas pas dans le code que tu nous montres.

    D'habitude on voit plutot "document.selection" enfin tu vois, une méthode ou propriété est toujours appelée à partir de son objet ...

    Désolé, j'essaye de ne pas (trop) être incompétent mais là ... j'y arrive pas !

Discussions similaires

  1. [AC-2000] Un grand classique : erreur '1004' la methode de l'objet a échoué
    Par _Drama dans le forum VBA Access
    Réponses: 3
    Dernier message: 02/06/2010, 10h36
  2. Réponses: 3
    Dernier message: 16/11/2008, 00h30
  3. Erreur 1004: La méthode "Range" de l'objet "_global" a échoué
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 18/09/2008, 23h05
  4. Erreur:Propriété ou méthode non gérée par cet objet.
    Par nodogeid dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/05/2007, 17h08
  5. Réponses: 3
    Dernier message: 08/09/2006, 08h18

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