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 :

Excel Erreur 429 sur la version 97 mais pas 2002


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut Excel Erreur 429 sur la version 97 mais pas 2002
    Bonjour à tous,

    J’ai créé une macro sous Excel 2002, mais apparemment à l’exécution ça ne convient pas.

    Voici l'extrait du code qui gêne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Source As Workbooks
    Dim Onglet_Courant As Object
    Dim Classeur_Courant As Workbook
    Dim Fichier As String, Chemin As String
    Dim Shell As Object, GetDossier As Object, Dossier As Object
     
     
    Set SEM = ThisWorkbook.Worksheets("SEM")
    Set MOIS = ThisWorkbook.Worksheets("MOIS")
     
    'Initialisation de l'explorateur
    Set Shell = CreateObject("Shell.Application")
    'Boîte de dialogue pour la sélection du dossier
    Set GetDossier = Shell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
    qui sous version 97 bloque ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Shell = CreateObject("Shell.Application")
    .

    Le CreateObject ne fonctionne pas et j’obtiens cette erreur 429.
    Sous 97 la référence Microsoft Object 8.00 Library est activée, et sous mon Excel 2002 (version qui fonctionne) c’est la version 10 : mon problème viendrait-il de là ? Si oui est-il possible de contourner cela?
    Je suis débutant et je découvre ce genre de subtilités.

    Merci pour vos réponses.
    Cordialement,
    M

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    a chaud

    en essayant avec getobject plutot?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Shell = getobject("Shell.Application")

  3. #3
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut
    Salut,
    je n'ai pas essayé sur la version 97 mais en modifiant comme ceci ça ne marche plus sur ma version 2002.
    Cetaines fonctions ne sont en fait pas disponibles sur les verisons antérieures?

  4. #4
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    ça aurait été trop beaux lol

    les méthode create object fonctionne différemment je sais
    mais ouf...97 c'est loin ça!
    lol

    je jete un oeil

    mais au fait pour ta prmière erreur, il renvoie quoi?

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Pour moi Shell est un mot clé, donc je ne l'utiliserais déjà pas ici...
    J'ai ça sur 2003, sur 2007, je ne sais pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
    Dim Dossier As Object, Rep As Object, Chemin As String
        Set Dossier = CreateObject("Shell.Application")
     
        'Ouvre la boîte de dialogue
        Set Rep = Dossier.BrowseForFolder(&H0&, "Sélectionner un répertoire", &H1&)
        If Not Rep Is Nothing Then
            Set Rep = Rep.Items.Item
            Chemin = Rep.Path
            MsgBox Chemin
        End If
    End Sub

  6. #6
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    pour info:

    jete un oeil ICI

    la réponse s'y trouve

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Malheureusement l'url que tu passes ne traite que des applications Office. (J'ai demandé qu'ils ajoutent des indications sur les autres applis pouvant provoquer cette même erreur mais si elles sont ajoutées un jour, j'envisage entre 6 et 12 mois de délai )

  8. #8
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    certes, mais
    Citation Envoyé par support microsoft
    Lorsque vous utilisez l'opérateur New ou la fonction CreateObject dans Microsoft Visual Basic pour créer une instance d'une application Microsoft Office, le message d'erreur suivant peut s'afficher :
    Erreur d'exécution "429" : Le composant ActiveX ne peut pas créer l'objet
    Cette erreur se produit quand l'objet Automation demandé n'a pas pu être créé par COM, et qu'il n'est par conséquent pas disponible dans Visual Basic. Cette erreur se manifeste sur certains ordinateurs mais pas sur d'autres.
    ça veux déjà tout dire non?

  9. #9
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Pour moi Shell est un mot clé, donc je ne l'utiliserais déjà pas ici...
    J'ai ça sur 2003, sur 2007, je ne sais pas...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Test()
    Dim Dossier As Object, Rep As Object, Chemin As String
        Set Dossier = CreateObject("Shell.Application")
     
        'Ouvre la boîte de dialogue
        Set Rep = Dossier.BrowseForFolder(&H0&, "Sélectionner un répertoire", &H1&)
        If Not Rep Is Nothing Then
            Set Rep = Rep.Items.Item
            Chemin = Rep.Path
            MsgBox Chemin
        End If
    End Sub

    Merci je vais déjà effectivement changer le nom et ne pas utiliser Shell (ça fait longtemps que je ne suis pas allé en cours je n'ai pas gardé tous les bons réflexes lol).

    @mayekeul: c'est loin mais toujours utilisé dans certaines grosses boîtes ;-)
    Je vais regarder ton lien,merci, c'est bien ce message d'erreur mais ça a l'air un peu hasardeux comme méthode.

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Aurais-tu oublié ce "détail" ?
    pour créer une instance d'une application Microsoft Office
    que tu ne l'as pas mis en rouge ?

    Edit
    @Mayekeul : Sur le fond, tu as sans doute raison

  11. #11
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    LOL le nez dans le caca!

    j'avais pas relevé effectivement.

    mais bon sans rire, je pense que nous pouvons en déduire que cela se passe au niveau des librairies qui sont soit manquantes ou endommagées non?

    Ou un probleme de version....

  12. #12
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    217
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 217
    Points : 66
    Points
    66
    Par défaut
    Le souci étant que je n'ai absolument pas la main sur les actions de type réinstallation etc.. ça ne m'arrange pas.
    Merci pour votre aide tout de même.
    M

  13. #13
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Quelles sont les références validées dans ton projet ?

Discussions similaires

  1. [XL-2010] VBA Excel "Erreur 429 un composant ActiveX ne peut pas créer d'objet"
    Par esimo dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/09/2014, 18h32
  2. [XL-2007] [VBA-Excel] Erreur 1004 sur utilisation de Cells
    Par hergios dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2012, 12h55
  3. Erreur 429 sur création
    Par olimpio dans le forum Installation, Déploiement et Sécurité
    Réponses: 1
    Dernier message: 13/09/2008, 02h36
  4. Réponses: 8
    Dernier message: 30/05/2008, 17h43
  5. Problème sur un left join en version 4 mais pas en 5 !
    Par Christophe Charron dans le forum Requêtes
    Réponses: 1
    Dernier message: 04/05/2007, 20h45

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