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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 72
    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 : 72
    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

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