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 :

Empecher l'ouverture d'un classeur [XL-97]


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
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Par défaut Empecher l'ouverture d'un classeur
    Bonjour,

    Dans un 1er temps je souhaite empecher l'ouverture d'un classeur X lorsqu'une session excel est déja ouverte. Ensuite lorsque X est ouvert je ne veux plus qu'une nouvelle session excel s'ouvre.

    A savoir que mon classeur X dispose du code et qu'un classeur Y dispose des donnees.


    Merci
    Eric

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Empècher d'ouvrir une autre instance d'excel, je ne pense pas que ce soit possible.
    Ou alors j'ai pas bien compris ton problème,
    Tu veux ouvrir le classeur X s'il n'est pas ouvert et éviter l'erreur s'il est ouvert et que l'ont veux de nouveau l'ouvrir ?
    Explique un peu mieux.
    A+

  3. #3
    Membre confirmé
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Par défaut processus en cours
    Merci tout d'abord

    Je ne retrouve plus le code qui permettait en VBA d'analyser les processus en cours. Je construirai une boucle sur les processus et les analyserai dans workbook open. Si le processus excel.exe est découvert j'empecherai le classeur X de s'ouvrir.

    je recherche le code et le met à disposition


    Cordialement

    A+
    Eric

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    ceci devrait répondre à ton problème, quel que soit l'endroit d'où aurait pu être ouvert Excel :

    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
    Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As Long) As Long
    Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
    '================optionnel (si tu veux en plus détruire la fenêtre éventuellement trouvée =====
    Private Declare Function DestroyWindow Lib "user32" (ByVal hwnd As Long) As Long
    ' ====================================================
     
    Private Sub Command1_Click()
      MsgBox Exceltourne
    End Sub
    Private Function Exceltourne() As Boolean
      Const WM_USER = 1024
      Dim hwnd As Long
      hwnd = FindWindow("XLMAIN", 0)
      If hwnd = 0 Then
        Exceltourne = False
      Else
        Exceltourne = True
        Dim mystr As String
        mystr = String(100, Chr$(0))
        GetWindowText hwnd, mystr, 100
        mystr = Left$(mystr, InStr(mystr, Chr$(0)) - 1)
        MsgBox mystr 'optionnel (te permet de connaître le classeur trouvé)
      End If
    End Function
    Tu trouveras par ailleurs le code qui permet de savoir si un fichier particulier (excel ou non) est déjà ouvert (depuis ton application ou depuis ailleurs)...

  5. #5
    Membre confirmé
    Profil pro
    Pôle Etude et Automatisation
    Inscrit en
    Avril 2007
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pôle Etude et Automatisation
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2007
    Messages : 166
    Par défaut
    Cela correspond exactement à mes besoins.

    Il me reste à découvrir comment détecter l'ouverture d'un classeur quand mes classeurs X et Y sont en cours d'utilisation. Il me semble qu'avec un module de classe il est possible de détecter des évenements au niveau application.

    Eric

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435

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

Discussions similaires

  1. Empecher l ouverture avec la touche maj
    Par mavean dans le forum Access
    Réponses: 20
    Dernier message: 09/08/2006, 09h44
  2. empecher l'ouverture de la fenetre DOS sous windows
    Par fairlight dans le forum Windows
    Réponses: 3
    Dernier message: 04/08/2006, 14h13
  3. [VBA-E] ouverture d'un classeur
    Par sophie447 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/06/2006, 21h18
  4. [excel] Empecher l'ouverture du classeur
    Par maketossss dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/12/2005, 13h03
  5. Empêcher l'ouverture d'une nouvelle fenêtre
    Par bartmarley dans le forum Gnome
    Réponses: 2
    Dernier message: 29/04/2005, 14h10

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