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 :

Erreur 1004 methode sheets de l'objet_global a echoué [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut Erreur 1004 methode sheets de l'objet_global a echoué
    Bonjour à tous,

    Je reviens vers vous car depuis hier je me bloque la tête sur un bug de ma macro :

    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
    Sub auto_open()
     
    Dim bilan As Worksheet
     
    Set bilan = Sheets("Niv de réal")
    bilan.Select
     
    If IsEmpty(bilan.Cells(1, 9)) = True Then
    continuer = MsgBox("Merci de renseigner l'identité de votre caisse et les éléments de mutualisations avant de remplir ce document", vbOKCancel)
        If continuer = vbOK Then
        nom_caisse.Show
        End If
    End If
     
    End Sub
    En effet je souhaite ouvrir le fichier mais en l'ouvrant j'ai un bug sur cette ligne avec l'erreur 1004 méthode sheets de l'objet_global a echoué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set bilan = Sheets("Niv de réal")
    Si besoin je peux joindre le fichier.

    Merci à vous tous pour votre aide.

    Loumi.

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il me semble que le classeur que tu ouvres ne deviens le classeur actif qu'à la fin de la procédure auto_open

    tu peux tester deux pistes :

    - préciser le nom du classeur devant ton objet Sheets (via le nom du classeur ou via Thisworkbook)
    - déporter ce traitement dans une autre procédure qui se lancera après le Exit Sub du Auto_Open OU déporter le traitement dans une procédure dédiée (dans un module standard) que tu appelles depuis ton Auto_Open

  3. #3
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Oui il doit m'ouvrir une boite de dialogue.
    J'ai préciser le nom du classeur avec un thisworkbook mais j'ai eu le même problème.
    Je vais donc tester la deuxième partie merci pour ton aide.

  4. #4
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bonjour,

    Autre piste, remplacer la macro Auto_open par la macro évènementielle Workbook_Open la procédure étant stockée directement dans le code de l'objet ThisWorkbook le problème ne devrait plus exister.

    Toute fois je dois avouer ne pas connaitre la différence en Workbook_Open dans ThisWorkbook et Auto_Open dans un module standard.

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Il y a pas mal de différences entre les deux.

    Déjà, Auto_Open est plutôt conservé aujourd'hui pour des raisons de compatibilité avec les versions les plus anciennes d'excel.
    Il fait partie de la catégorie des "Auto_Evt" tels Auto_Close, Auto_Deactivate... qui existaient avant la gestion évènementielle telle qu'on la connait aujourd'hui, du temps d'excel 97 et 2000 et même avant (Macro4) (je crois que c'est la version 2003 qui a provoqué l'évolution)

    quelques différences :
    - Auto_Open n'est pas affecté par Application.EnableEvents placé à False, contrairement à WorkBook_Open
    - Workbook_Open s'exécute quand une classeur est ouvert par macro, contrairement à Auto_Open qui ne sera pas exécuté
    - en cas d'utilisation des deux procédés, c'est Workbook_open qui passe en premier, ensuite c'est auto_open
    - Workbook_Open est à placer dans le module Thisworkbook, Auto_Open est à placer dans un module standard
    - Auto_open est muni d'une méthode "RunAutoMacros" (parenté à l'objet Workbook) pour l'appeler en dehors de son contexte classique

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut

    Citation Envoyé par antonysansh Voir le message
    [...]Toute fois je dois avouer ne pas connaitre la différence en Workbook_Open dans ThisWorkbook et Auto_Open dans un module standard.
    Dans la chronologie des événements, Workbook_Open est détecté avant Auto_Open.

    De plus:
    • Workbook_Open est déclenché à l'ouverture du classeur, quelle que soit la méthode d'ouverture (manuelle ou par VBA);
    • Auto_Open n'est déclenché que lors de l'ouverture manuelle. Ca permet à un classeur d'être ouvert par VBA sans déclencher le code à l'ouverture.


    [EDI] Arggl... Coiffé par Joe [EDIT]
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Je ne faisait que lire un poste en voulant y apporter une piste de réflexion et voila que j'apprends des choses. C'est cool !!!

    Je crois que c'est pour ça que je passe autant de temps sur le forum de DVP.

    @Joe.levrai @Pierre Fauconnier merci à vous deux

  8. #8
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 58
    Par défaut
    Merci à vous tous pour votre temps.
    j'ai essayé plusieurs méthode mais je pense que mon fichier a vraiment un gros bug car je n'arrive même plus à l'ouvrir en neutralisant la macro.

  9. #9
    Invité
    Invité(e)
    Par défaut
    bonjour,
    c'est comme l'avion, tu ne peux en descendre qu’après 'arrêt complet de l'appareil!

    ajoute un module standard à ton projet,place l'intégralité de ton code dedans en renommant ta sub!

    Code Module1 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Subauto_open() 
    Dim bilan As Worksheet
     
    Set bilan = Sheets("Niv de réal")
    bilan.Select
     
    If IsEmpty(bilan.Cells(1, 9)) = True Then
    continuer = MsgBox("Merci de renseigner l'identité de votre caisse et les éléments de mutualisations avant de remplir ce document", vbOKCancel)
        If continuer = vbOK Then
        nom_caisse.Show
        End If
    End If
      EndSub

    et enfin appel ta sub dans auto_open!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub auto_open()
    Subauto_open
    End Sub
    je pense que c'est ce que voilait dire Joe!


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

Discussions similaires

  1. [XL-2010] erreur 1004 methode delete classe range échouée
    Par emi81 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 13/03/2013, 17h50
  2. [AC-2003] Erreur 1004 Methode echoué
    Par Misha dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/09/2009, 17h56
  3. Erreur 1004 pendant le 20° Sheets.Add Before
    Par jldancet dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/04/2008, 08h45
  4. Erreur 1004 La methode copy de la classe Worksheet a echoué
    Par Bernard67 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 09/04/2008, 16h39
  5. Erreur 1004, methode Paste de l'objet Range.
    Par asxasx dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 20/08/2007, 11h05

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