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 :

Execution macro a l'ouverture d'un fichier Excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut Execution macro a l'ouverture d'un fichier Excel
    Bonjour a tous,

    J'ai un fichier Excel utilisé par de nombreux collaborateurs intitulé "Fichier CO"

    Pour m'assurer que tous le monde utilise ce fichier correctement, j'active la macro au démarrage.

    Sauf que :

    Cas n° 1 : s'il n'y a pas de classeur Excel ouvert au moment ou ils ouvrent le "Fichier CO" = Pas de problème, la macro exécute à l'ouverture comme prévue et l'ensemble de la Macro marche super bien.
    Cas n° 2 : Si il y a déjà un classeur Excel ouvert au moment ou ils ouvrent le "Fichier CO", la macro ne s’exécute pas au démarrage rendant le fichier inutilisable, et la je piges pas pourquoi.

    Quelqu'un aurait une idée ?

    Merci d'avance.

    Agd

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonsoir Agd, bonsoir le forum,

    Et si tu nous donnais le code ? On pourrais peut-être mieux comprendre...
    Normalement il devrait se trouver dans le composant ThisWorkbook :

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

  3. #3
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Bonsoir Thautheme,

    Mon code se trouve effectivement dans le composant This Workbook sinon le cas n°1 ne marcherais pas non plus.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Workbook_Open()
    'ton code
    End Sub
    Voici mon code (simplifié) :

    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
     
    Private Sub Workbook_Open()
     
    ThisWorkbook.Unprotect ("SAFCOT")
     
    Application.ScreenUpdating = False
       For Each Sh In Sheets
         Sh.Visible = True
       Next Sh
    Sheets(1).Visible = xlVeryHidden
    'Vérification si fichier initialisé ou non
    INIT_FICHIER = Worksheets("ADMIN").Range("B2").Value
     
    If INIT_FICHIER = "Non" Then 'Demande d'initialisation du fichier
        Call DATA_MANAGER
        Call INIT
    Else 'Démarrage normal
        Worksheets("Business").Select
        Application.ScreenUpdating = False
        Call BUSINESS_NBLIGNE
        Call BUSINESS_NBCOLONNE
        Call BUSINESS_COLONNE
        Call BUSINESS_FILTRE
        Call BUSINESS_TXVALUE
        Call BUSINESS_SOUSTOTAL
        Call BUSINESS_MASQUE
        Call BUSINESS_DATEJOUR
        Call FONCTION_ENREGISTREMENT
        Call CANDIDAT_SORTANT
        Call FILTRE_PRACTICE
        Call FILTRE_MANAGER
        Application.ScreenUpdating = False
        ThisWorkbook.Unprotect ("SAFCOT")
        Sheets("DATA").Visible = False
        Sheets("ADMIN").Visible = False
        Sheets("USERS").Visible = False
        Application.EnableEvents = False
        Worksheets("Business").Range("D2").Value = Worksheets("ADMIN").Range("B3").Value
        Worksheets("Suivi Candidat").Range("D3").Value = Worksheets("ADMIN").Range("B3").Value
        Worksheets("Suivi Collab").Range("C3").Value = Worksheets("ADMIN").Range("B3").Value
        Worksheets("RDV Candidat").Range("C2").Value = Worksheets("ADMIN").Range("B3").Value
        Application.EnableEvents = True
        Worksheets("Business").Select
        Cells(LIGNEMAX, 1).Select
        ThisWorkbook.Protect ("SAFCOT")
        Sheets("Business").Protect ("SAFCOT"), AllowFiltering:=True
        Application.ScreenUpdating = True
    End If
    End Sub

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2015
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur commercial

    Informations forums :
    Inscription : Février 2015
    Messages : 118
    Points : 178
    Points
    178
    Par défaut
    Bonjour,

    Je n'ai pas réussi à reproduire ton problème.
    Peut être en utilisant ThisWorkbook.Activate en début de code ?

  5. #5
    Membre à l'essai
    Profil pro
    Ingenieur Projet
    Inscrit en
    Février 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur Projet
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2012
    Messages : 29
    Points : 24
    Points
    24
    Par défaut
    Bonsoir OBO29,

    En faite, je suppose que c'est un problème lié a Excel et non pas a mon code en particulier.

    Voici les opération que j’exécute dans l'ordre.
    Essai de les reproduires de ton coté.

    1 - J'ouvre un fichier Excel quelconque sans macro
    2 - Directement depuis Excel j'ouvre un autre fichier qui contient ma macro (en utilisant les documents récents : clic en haut a gauche sur le bouton rond office)
    3 - La mon fichier s'ouvre mais la macro ne s’exécute pas du fait de l'avertissement de sécurité qui me dis que les macros sont désactivés. => Comportement normal
    4 - Je clique sur le bouton d'option pour activer les macros.
    5 - Ma macro s'active. => Comportement normal
    6 - je n'enregistre rien sur ce fichier, je vérifie la présence d'une info, et je quitte la macro. (je ne quitte pas Excel, je quitte juste la macro en utilisant la petite croix en dessous de la croix rouge en haut a droite d'excel.)
    7 - Ca me renvoi sur le fichier Excel quelconque ouvert en premier.
    8 - je réouvre mon fichier contenant ma macro,
    9 - Idem point 3 - La mon fichier s'ouvre mais la macro ne s’exécute pas du fait de l'avertissement de sécurité qui me dis que les macros sont désactivés. => Comportement normal
    10 - je reclique sur le bouton "option" pour activer les macros
    11 - Mon second fichier est ouvert, activé mais la macro ne s'est pas éxécuté. => et la ce n'est pas normal.

    pour faire simple, a partir du moment ou je quitte le fichier Excel mais pas l'application. (petite croix au lieu de la crosse croix rouge)
    et si j'essai de réouvrir ma macro en utilisant les document récent d'excel, la macro ne s'éxécute pas.

  6. #6
    Membre éclairé Avatar de Nico Chg
    Homme Profil pro
    Apprenti ingénieur Business Development
    Inscrit en
    Juillet 2014
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur Business Development
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juillet 2014
    Messages : 352
    Points : 758
    Points
    758
    Par défaut
    Bonjour,

    Est ce que tu peux essayer de rajouter Thisworkbook devant chaque feuille que tu va appeler ?

    Je pense que les feuilles que tu appelles dans ton code sont liée à ActiveWorkbook par défaut, il faut donc préciser a quelle classeur elles appartiennent ?

    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
     
    Private Sub Workbook_Open()
     
    ThisWorkbook.Unprotect ("SAFCOT")
     
    Application.ScreenUpdating = False
       For Each Sh In ThisWorkbook.Sheets
         Sh.Visible = True
       Next Sh
    ThisWorkbook.Sheets(1).Visible = xlVeryHidden
    'Vérification si fichier initialisé ou non
    INIT_FICHIER = ThisWorkbook.Worksheets("ADMIN").Range("B2").Value
     
     
    '...
    'Faire pareil pour la suite ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/04/2012, 17h01
  2. [AC-2007] Execution Macro a l'ouverture
    Par LaPanic dans le forum IHM
    Réponses: 4
    Dernier message: 08/06/2011, 17h20
  3. [AC-2003] Ouverture d'un fichier excel + macro excel
    Par novice06 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/01/2010, 08h31
  4. ouverture d'un fichier excel par une macro
    Par gaihdriah dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/02/2009, 12h16
  5. Réponses: 2
    Dernier message: 22/07/2002, 12h13

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