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 :

Démarrage automatique d'une macro à l'ouverture d'un classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut Démarrage automatique d'une macro à l'ouverture d'un classeur
    Salut les amis,

    bon, je suis entrain de devenir de plus en plus fou !

    Nous avons un grand nombre de fichiers Excel 2003 avec un macro qui s'exécute automatiquement à l'ouverture du classeur, mais nous devons passer le tout sous Excel 2010 et là, c'est le drame !

    A chaque fois j'ai l'erreur "Erreur d'exécution 91 : Variable objet ou variable de bloc With non définie" sur l'instruction "ActiveWorkbook.Sheets("COMMENTAIRES").Select" ???

    Je ne comprends du tout ce qui provoque ça.

    J'ai bien créé le fonction Workboook_Open dans ThisWorkbook

    Code Excel : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
        Auto_Open
    End Sub

    Et dans le module1, il y a :
    Code Excel : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Sub Auto_Open()
        Call Ouverture_Form
    End Sub
     
    Sub Ouverture_Form()
        Call Initialisation
     
        If G_SUITE Then
            FORM_ChgFic_QFU_LFPB.Lib_Machine = G_MACHINE
            FORM_ChgFic_QFU_LFPB.Show (0) '0 pour ne pas avoir de MODAL
            FORM_ChgFic_QFU_LFPB.C_Annee.SetFocus
        End If
    End Sub

    La procédure Initialisation est dans un autre module que j'ai appelé "FONCTIONS_COMMUNES"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Initialisation()
    
        ActiveWorkbook.Sheets("COMMENTAIRES").Select
        WLigVersion = 47 'LIGNE DU MOT "HISTORIQUE"
    L'erreur se produit donc sur la ligne rouge.

    Merci d'avance pour votre aide si précieuse...

  2. #2
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    Il y a paut être confusion quand tu mets "Auto_Open" dans "Workbook_Open", ces deux macros s'exécutant automatiquement à l'ouverture.
    Mets plutôt :

    Private Sub Workbook_Open()
    Ouverture_Form
    End Sub
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Initialisation()
     
        ThisWorkbook.Sheets("COMMENTAIRES").Select

  3. #3
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Utilises plutôt une instruction avec le CodeName de ta sheet "Commentaires" et un "Activate" plutôt qu'un "Select".

    Le CodeName est le nom qui apparait dans la liste des objets Excel dans la partie développeur.

    Tu aurais plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Commentaires.activate
    'ou
    Feuil1.activate ' Si tu n'as pas modifié le codename
    (Fonctionne sous 2013)

    Cordialement,

  4. #4
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Bonjour,

    @ Gado2600 : Quelle différence fais-tu entre "Select" et "Activate" quand il s'agit d'une feuille ?

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Bon, j'ai suivi vos 2 recommandation sans plus de succès.

    Maintenant, j'ai une erreur "Erreur d'exécution 424 : Objet requis" sur "COMMENTAIRES.Activate"

    et si je mets : "ThisWorkbook.Sheets("COMMENTAIRES").Select", j'ai l'erreur ""Erreur d'exécution 1004 : La méthode Select de la classe Worksheet a échoué"

    Boudiou d'boudiou d'boudiou, je vais craquer

  6. #6
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Enlève le "ThisWorkbook" à tout hasard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("COMMENTAIRES").Select

  7. #7
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Même résultat...

    J'en perds mes cheveux... lol

  8. #8
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Est-ce que tu peux mettre ton classeur en pièce jointe, même sans données ?

  9. #9
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Voila...
    Et merci d'avance pour ton aide et surtout ta patience
    Fichiers attachés Fichiers attachés

  10. #10
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    Ca fonctionne, ici. le code plante plus loin normalement dans la macro "Supp_LOGetALERTE".

    Peut-être, dans ton classeur, la feuille est-elle masquée? Sinon, redémarre ton ordi. On est souvent surpris...

  11. #11
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Rien à faire !
    Ca fonctionne avec Excel 2003 mais pas du tout avec Excel 2010 !

    Pour info, comme j'ai les 2 excel sur ma machine, je lance Excel 2010 et je double-clique sur le fichier XLS pour l'exécuter.

    Je ne sais plus du tout quoi faire...

  12. #12
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    J'ai également ces deux versions sur mon ordi. Essaie de démarrer le classeur avec Fichier, Ouvrir.

  13. #13
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    @ Gado2600 : Quelle différence fais-tu entre "Select" et "Activate" quand il s'agit d'une feuille ?
    Bonjour,

    Le select est plus pour la sélection de l'objet alors que l'activate va afficher l'objet.
    Tout dépend de l'utilité que tu as derrière mais j'ai pensé à cela de suite car à l'ouverture d'un fichier Excel, je ne vois pas à quoi servirait de sélectionner une sheet (il y a peut-être une raison, je ne sais pas) car, pour moi, sur une sheet, on ne peut que l'activer, la copier, la supprimer, la dupliquer, la renommer ou la changer de place. Dans tous ces cas, la sélection de celle-ci n'est pas forcément utile. Mais, il y a peut être une autre raison.

    Cordialement,

  14. #14
    Expert éminent sénior
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 203
    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 203
    Points : 14 354
    Points
    14 354
    Par défaut
    A mon ses, la seule différence que je peux voir est que "Select" permet de sélectionner plusieurs objets et que "Activate" rend actif l'un de ces éléments ("Activecell" ou "Activesheet" par exemple). Si un seul objet est concerné, les deux méthodes sont, sauf erreur, équivalentes.

Discussions similaires

  1. [XL-2013] Lancer une macro à l'ouverture d'un classeur Excel
    Par CoyotteDundee dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/06/2014, 15h33
  2. [Toutes versions] execution automatique d'une macro à l'ouverture
    Par loic072 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/11/2011, 14h10
  3. Exécuter une macro à l'ouverture d'un classeur
    Par possible924 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/01/2011, 07h54
  4. lancer une macro à l'ouverture d'un classeur
    Par niro75 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/02/2008, 22h09
  5. Réponses: 1
    Dernier message: 04/05/2007, 11h59

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