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 :

WorkBook_Open pas toujours appelé


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut WorkBook_Open pas toujours appelé
    Bonjour

    J'utilise le WorkBook_Open dans un ficher Excel, pour m'assurer que l'utilisateur est bien branché au réseau pour fin de sécurité.

    Cela fonctionne bien si j'ouvre Excel et que par la suite j'ouvre le fichier en question. WorkBook_Open est appelé et fait son travail.

    Si je ferme le fichier tout en laissant ouvert Excel et que j'ouvre un autre fichier utilisant aussi le même WorkBook_Open , il semble que la Private sub WorkBook_Open n'est pas appelé.

    Pourquoi ?
    Comment faire autrement ?

    Merci pour votre aide.

  2. #2
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Bonjour,

    Plutot étrange, n'as tu pas un "EnableEvent = false" quelque part dans ton code ?
    Si oui, i faut vérifier de bien le repasser à True à la finc de la procédure.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    J'ai placé un msgbox au début et il ne parait pas. Comme je mentionnais cela n'arrive pas tout le temps. Le plus souvent c'est lorsque je laisse Excel ouvert et que j'ouvre un nouveau fichier. C'est comme si Excel garde un registre qui simule la présence du fichier même si celui-ci est fermé.

    Voici mon script de WorkBook_Open

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Private Sub Workbook_Open()
    Sheets("Ouverture").Select
    On Error GoTo errorhandler:
    Application.EnableCancelKey = xlErrorHandler
     
    Dim Domaine As String
    Dim Keylogger As String
    Dim NbLigne As Integer
    Dim Name As String
    Dim Ok As Boolean
    Dim Serveur As String
     
    Name = Environ("UserName")
    Domaine = Environ("USERDOMAIN")
    Serveur = Environ("LOGONSERVER")
    MsgBox "allo" 'Pour test
                                 'Binary Compare USER, DOMAIN and SER
    If ((StrComp("jojo", Name, 0) = 0) Or (StrComp("jiji", Name, 0) = 0) Or (StrComp("juju", Name, 0) = 0)) And _
       (StrComp("KIKI", Domaine, 0) = 0) And (StrComp("\\KIKISERVER", Serveur, 0) = 0) Then
       GoTo 10:
    Else                          'L'utilisateur n'est pas raccordé au serveur
       Keylogger = InputBox("Ce logiciel appartient à KIKI inc.  Vous n'avez pas l'autorisation de l'utiliser." & vbCr & vbCr & _
                             "Demandez à l'administrateur réseau de KIKI inc. pour avoir accès au fichier.", " Accès par administrateur")
       If Keylogger = "BLA-BLA" Then ' Autorisation administrateur
          GoTo 10:
       Else
          Sheets("E_G").Cells(6, 17) = ""
          ThisWorkbook.Saved = True
          ActiveWorkbook.Close
       End If
    End If
     
    10:
                             'L'utilisateur est validé autoriser à l'ouverture des macros
    Sheets("E_G").Cells(6, 17) = "CHEVAL"
                             'Valider s'il y a des employés inscris au fichier
    Worksheets("C_P").Select
    NbLigne = Cells(Rows.Count, 2).End(xlUp).Row - 13
    Sheets("C_P").Cells(10, 3) = NbLigne
     
    Application.EnableEvents = False
    If DateValue(Worksheets("E_G").Cells(1, 17)) < Date And NbLigne > 0 Then
       Ok = True
       Sheets("E_G").Cells(9, 17) = 1
       Call MAN(Ok) 
       Sheets("E_G").Cells(9, 17) = 0
    End If
    Ok = False
    Application.EnableEvents = True
     
    GoTo 20:
     
    errorhandler: 'Une CancelKey a été capturée
    If Err.Number = 18 Then
       Sheets("Etendu_Garantie").Cells(6, 17) = ""
       ThisWorkbook.Saved = True
       ActiveWorkbook.Close
    Else
       Sheets("Etendu_Garantie").Cells(6, 17) = ""
       ThisWorkbook.Saved = True
       ActiveWorkbook.Close
    End If
    20:
    End Sub

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir Bugzy, salut Frédéric.

    Il y a eu une discussion récente sur un sujet semblable, malheureusement restée sans franche conclusion.

    Question : as-tu dans ton classeur une MFC qui utilise une fonction personnalisée?

    Cordialement,

    PGZ

  5. #5
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,

    Le post dont fait référence PGZ (salut )ne me dit rien mais moi je me méfie de la ligne au début:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    On Error GoTo errorhandler:
    Si une erreur se produit dans la partie ou les events sont désactivés (si c'est possible), tu as la solution à ton problème car tu n'as pas de réactivation des events dans ton errorhandler.

    A+

    Edit: Ajout de mots manquants

  6. #6
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Frédéric, bien vu le pb du traitement d'erreurs. Cela pourrait bien être cela...
    Pour info, ici la discussion que j'évoquais, sujet toujours ouvert.

    COrdialement,

    PGZ

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Désolé j'ai touché à une mauvaise touche.

    J'Ai enlevé le errorhandler et le Enableevents et cela ne change rien

    PGZ j'ai été voir la discussion proposé ce que j'en retire c'est qu'il y a un problème avec le WorkBook_Open.

  8. #8
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    Oui, il y a un pb avéré mais pas élucidé.
    Dans ton cas il serait intéressant de savoir si tu as des MFC avec fonction perso, ce qui confirmerait le pb identifié, ou si c'est autre chose...

    Cordialement,

    PGZ

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    BONjour

    Je n'ai pas de fonction seulement des des Sub.

    Cependant pourrais-tu m'indiquer ce que veut dire MFC ?

    Merci

  10. #10
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Bugzy1963 Voir le message
    Cependant pourrais-tu m'indiquer ce que veut dire MFC ?
    Merci
    Je pense que c'est "mise en forme conditionnelle"

    L'ouverture de ton fichier se fait manuellement ou lui même par une macro ?

    l'utilisation de Application.EnableEvents = False
    est perverse si tu oublies de la remettre à true en quittant (soit à la fin normale de ta macro ou lors d'une sortie à cause d'une erreur) l'option reste pour les ouvertures suivantes de EXCEL.

    tu devrais la mettre en dessous de errorhandler:
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Merci Oliv

    Pour faire simple, j'ai éliminé le errorhandler et le Enableevents et la situation reste pareil.

    Je viens de trouver sur le web des situations similaires où le problème survient selon ces conditions qui sont aussi le miennes:

    1- j'ouvre excel
    2- j'ouvre un classeur manuellement (Le workbook_open est activé)
    3- Je ferme le classeur avec un enregistré tout en laissant excel ouvert
    4- j'ouvre un autre classeur (Le workbook_open n'est pas activé)

    J'ai placé un msgbox au haut du sub et rien ne s'affiche.

    Je suis sans possibilité.

  12. #12
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    ton Workbook_Open () est bien dans thisworkbook ?

    edit : les macro sont bien activées ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2009
    Messages : 104
    Par défaut
    Absolument

Discussions similaires

  1. [sortable_elements] L'appel AJAX n'est pas toujours fait
    Par Miles Raymond dans le forum Ruby on Rails
    Réponses: 2
    Dernier message: 07/09/2009, 08h29
  2. [Framework] [AOP] L'advice n'est pas toujours appelé
    Par elitost dans le forum Spring
    Réponses: 2
    Dernier message: 22/01/2009, 23h11
  3. Evènement dans UserControl pas toujours appelé
    Par Ishizaki dans le forum ASP.NET
    Réponses: 4
    Dernier message: 05/05/2008, 14h53
  4. Coinitialize n'a pas été appelé
    Par nazimb dans le forum Bases de données
    Réponses: 6
    Dernier message: 20/04/2007, 15h39
  5. [VB6] [Validate et CausesValidation] Ca marche pas toujours !!!
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 16/12/2003, 22h09

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