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 :

Ouverture Excel depuis autre Excel : Excel a cessé de fonctionner


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut Ouverture Excel depuis autre Excel : Excel a cessé de fonctionner
    Bonjour,
    J'ai un 1er fichier Excel sur lequel j'active les macros et une fenêtre avec liste déroulante s'ouvre (pour choisir son fichier) et code utilisateur et mot de passe (pour n'ouvrir que certains onglets et être en lecture ou écriture). Cela ouvre alors le bon fichier et ferme celui qui sert de connexion.
    Cela fonctionne en règle générale.
    Mais de manière aléatoire, parfois les utilisateurs rencontrent le cas ci-dessous :
    Ils ouvrent bien le 1er fichier, rentrent le code et mot de passe et au moment de cliquer sur valider, le 2ème fichier tente de s'ouvrir mais s'affiche alors le fameux "Excel a cessé de fonctionner..."
    Et à ce moment s'il réessaye dans la foulée rien de mieux, il faut attendre plusieurs heures ou un redémarrage de la machine..., bref çà n'indique pas une solution, car attendre ou redémarrer ne fonctionne pas parfois

    De quoi cela peut-il venir ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu bloques pendant plusieurs heures, cela signifie que tu as une instance d'Excel qui reste ouvert.

    En fait il faudrait ton code pour savoir ce qui se passe lors de la fermeture d'Excel après avoir ouvert l'autre, c'est peut-être juste une histoire de temporisation, à bien intercaler lors d'une succession d’événements.

    Par exemple tu veux fermer l'instance alors que l'autre n'est pas encore ouverte.

    Le mieux serait d'ouvrir un classeur et d'enfermer un autre , et ne pas toucher à l'instance d'Excel.

    En fait tout dépend de ton code.

    Philippe

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Où puis-je mettre le code, je ne souhaite pas qu'il soit à la vu de tous ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Juste un bout de code suffit, pas tout l'ensemble.

    Ce qu'il faut c'est comment tu ouvres ton deuxième Excel (avec les déclarations de variables etc...)

    Il suffit de le coller dans l'éditeur en utilisant le # pour baliser celui-ci, on ne veut pas le classeur en entier.

    Philippe

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2006
    Messages
    1 220
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 220
    Par défaut
    Ceci suffit-il ?

    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
    Private Sub CommandButton1_Click()
    Dim WB_Accueil As Workbook
    Dim WB_Planning As Workbook
     
    Dim Planning As Worksheet
    Dim BDD As Worksheet
    Dim Jour_Travail As Worksheet
    Dim Actualiser As Worksheet
    Dim SynthèseORDO As Worksheet
    Application.ScreenUpdating = False
     
    If TextBoxUtilisateur.Value = "user" And TextBoxMotPasse.Value = "test" Then 'mot de passe pour l'ordo 1
        Call Ouvrir_Planning
        UserForm.Hide
        Set WB_Planning = ActiveWorkbook
        Set Actualiser = WB_Planning.Worksheets("actualiser le planning")
        Set SynthèseORDO = WB_Planning.Worksheets("Synthèse")
        Set Jour_Travail = WB_Planning.Worksheets("liste jour travaillé")
        Set BDD = WB_Planning.Worksheets("BDD")
        BDD.Visible = xlSheetVeryHidden
        Jour_Travail.Visible = xlSheetVeryHidden
        SynthèseORDO.Unprotect
        SynthèseORDO.Visible = 1
        Actualiser.Unprotect
        Actualiser.Visible = 1
        Workbooks("Accueil planning.xlsm").Close False
     
     
    End If '1
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Qu'y a-t-il dans la routine Ouvrir_Planning ?

    Ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set WB_Planning = ActiveWorkbook
    Mets plutôt le nom du classeur que le nom du ActiveWorkbook, car tu ne sais pas si c'est l'ancien qui est encore actif ou le nouveau.

    Philippe

Discussions similaires

  1. Réponses: 307
    Dernier message: 29/06/2017, 17h44
  2. SetFocus après ouverture d'un autre tableur Excel
    Par Ravens dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 02/05/2013, 19h52
  3. test ouverture classeur sous autre instance excel
    Par AgnesK dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2010, 19h30
  4. Faire appel à un autre fichier excel depuis une feuille excel
    Par dammswell dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/10/2009, 09h24
  5. Accéder à la valeur d'une cellule d'un autre fichier excel depuis VBA
    Par guillaume7501 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/09/2008, 20h38

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