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

Excel Discussion :

Problème avec thisworkbook.activate


Sujet :

Excel

  1. #1
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut Problème avec thisworkbook.activate
    Bonjour tout le monde,

    comme indiqué dans l'intitulé de mon message j'ai un problème avec "ThisWorkbook.activate" qui ne fonctionne pas si le fichier dans lequel se trouve mon code n'est pas ouvert en premier par rapport à d'autres fichiers Excel. Curieusement, le Thisworkbook.activate, m'active un des autres fichiers, et non pas THISWORKBOOK ! Une histoire de fou ! Je m'arrache le peu de cheveux qui me reste à trouver la solution...

    Voici le code de mon fichier exemple :

    dans "Thisworkbook" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Static Sub Workbook_Open()
        Frm_Accueil_.Show
    End Sub

    dans le formulaire FRM_Accueil (j'ai 2 bouton, un pour aller sur la feuille "XXX" et l'autre pour fermer ce fichier Excel) :
    voici le code de ce formulaire :

    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
     
    Private Sub Bt_Go_Click()
        Unload Me
        Application.Visible = True
        ThisWorkbook.Activate
        Sheets("XXX").Select        'la j'obtiens un message d'erreur car c'est un autre fichier qui est activé !!!
        Range("H6").Select
    End Sub
     
    Private Sub CommandButton1_Click()
        'quitter
        Application.Visible = True
        ThisWorkbook.Close
    End Sub
     
    Private Sub UserForm_Initialize()
        Application.Visible = False
    End Sub
    Merci d'avance pour votre aide !

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par leblesois Voir le message
    Ca, ce n'est vraiment pas une bonne idée.
    Ca s'appelle "scier la branche sur laquelle on est assis".

  3. #3
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Ca, ce n'est vraiment pas une bonne idée.
    Ca s'appelle "scier la branche sur laquelle on est assis".
    Merci pour votre réponse, mais mon problème n'est pas au moment ou je quitte mon fichier en cliquant sur le bouton, mais lorsque je clique sur l'autre pour refaire "apparaitre" le fichier Excel et en allant sur la feuille "XXX".

    En plus, je ne comprends pas votre remarque. Quel code mettez-vous dans un formulaire pour fermer le fichier qui est en cours d'utilisation ?

    MErci pour votre aide

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En plus, je ne comprends pas votre remarque. Quel code mettez-vous dans un formulaire pour fermer le fichier qui est en cours d'utilisation ?
    ThisWorkbook est l"objet Workbook dans lequel se trouve le code VBA alors que le classeur actif est l'objet ActiveWorkbook
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par leblesois Voir le message
    Quel code mettez-vous dans un formulaire pour fermer le fichier qui est en cours d'utilisation ?
    Aucune chance que je mette une telle chose un jour dans un code.
    Je ne vais un Close sur un fichier uniquement si c'est LA MEME macro qui a ouvert le fichier.

  6. #6
    Membre averti
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2014
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2014
    Messages : 52
    Par défaut
    Citation Envoyé par Menhir Voir le message
    Aucune chance que je mette une telle chose un jour dans un code.
    Je ne vais un Close sur un fichier uniquement si c'est LA MEME macro qui a ouvert le fichier.
    Merci, mais cela ne répond pas à mon problème...

    Vous, comment faites-vous pour fermer un fichier par un formulaire de ce fichier ?

    Et pourquoi le thisworkbook.activate ou même le workbooks(thisworkbook.name).activate ne fonctionnent pas ?

    Merci d'avance pour votre réponse.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par leblesois Voir le message
    Vous, comment faites-vous pour fermer un fichier par un formulaire de ce fichier ?
    Je le dis pour la troisième fois : je ne fais jamais ça.
    Utiliser une macro pour fermer un fichier dans lequel se trouve cette même macro, c'est contre nature.
    C'est comme dans cette vieille blague "accroche-toi au pinceau, j'enlève l'échelle" : le fichier c'est l'échelle et macro c'est à la fois le peintre et celui qui retire l'échelle.

    Et pourquoi le thisworkbook.activate ou même le workbooks(thisworkbook.name).activate ne fonctionne pas ?
    Essaye de remplacer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        ThisWorkbook.Activate
        Sheets("XXX").Select
        Range("H6").Select
    Par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        ThisWorkbook.Sheets("XXX").Range("H6").Activate

  8. #8
    Membre extrêmement actif Avatar de mjpmjp
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2012
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2012
    Messages : 1 133
    Par défaut
    bonjour,

    je pense a quelque chose comme workbooks(monbook).activate,

    le focus étant sur un autre book

    @+JP
    Caractéristiques (WEB) phpMyAdmin 4-74 , PHP 5-631 , Apache 2-427 , MySQL 5-719
    Présentation NAS DS-3615xs + 20Go , DSM 6.1.6-15266 Up1 , 12 * WD 4To WD4000F9YZ (10 raid 6+ )+(2 raid 1+) , LinkSys comutateur-switch lgs528p-eu , Onduleur UPS 720W Power Boxx Lcd (4*UPS + 4*MOD)
    Mes contributions (EXCEL) Form GRAPHIQUE: Gestion des boutons , Liste Onglet dynamique...GESTION de FILM

  9. #9
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par leblesois Voir le message

    Vous, comment faites-vous pour fermer un fichier par un formulaire de ce fichier ?


    Merci d'avance pour votre réponse.
    Dès que le fichier est fermé, aucune macro de ce fichier ne peut fonctionner. C'est comme chercher un fuite de gaz en allumant un briquet, même si des fois ça marche.

Discussions similaires

  1. problème avec pour activer Innodb sur Mysql
    Par jarode2 dans le forum MySQL
    Réponses: 2
    Dernier message: 28/09/2009, 18h21
  2. Problème avec ListObject active/non active
    Par skorpio dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/06/2007, 19h44
  3. problème avec IdUDPServer1.Active:=false
    Par korntex5 dans le forum Delphi
    Réponses: 1
    Dernier message: 18/08/2006, 15h54
  4. Réponses: 21
    Dernier message: 02/10/2005, 19h05

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