Masquer un seul classeur EXCEL via du VBA

bil_ly.16 Messages postés 10 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je suis actuellement entrain de me faire une petite application en VBA via Excel 2007 et je désirerai que lorsque je clique sur mon fichier excel ma macro se lance et que le classeur excel ne soit plus visible.

Actuellement, j'arrive très bien à le faire en utilisant ce code :

Private Sub Workbook_Open()

Application.Visible = False 'quand l'application se lance, le fichier excel devient invisible,

Accueil.Show 'et la boite de dialogue d'accueil apparait

End Sub

mais si j'ai un autre fichier excel d'ouvert en même temps il me le rend invisble aussi ce que je ne désire surtout pas !!

Si je n'ai pas été assez clair dite le moi et si vous avez la solution dite le moi aussi ^^

PS : Je débute en VBA depuis 1semaine !!

4 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Pour occulter ton classeur, il faut le préciser :

    Windows(ActiveWorkbook.Name).Visible = False


    Toujours zen
    2
  2. bil_ly.16 Messages postés 10 Statut Membre 1
     
    Toujours pas :(

    message d'erreur :

    Erreur d'exécution'91':
    Variable objet ou variable bloc With non définie

    A mon avis il faut que je déclare la variable name non ?
    du genre :

    Private Sub Workbook_Open()

    Name="Base de données.xls"
    Windows(ActiveWorkbook.Name).Visible = False

    Accueil.Show

    End Sub
    1
    1. bil_ly.16 Messages postés 10 Statut Membre 1
       
      Non même ça ne marche pas !
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Bonjour,

      Une autre possibilité serait d'utiliser la propriété isAddin du classeur.
      Regarde auparavant dans l'aide si les autres impacts ne sont pas gênants pour toi.

      eric
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Name="Base de données.xls"

      attention name est un nom réservé !

      avec
      nom = ActiveWorkbook.Name

      cela te donnera dans nom : "Base de données.xls"

      Windows(ActiveWorkbook.Name).Visible = False

      fonctionne chez moi aussi bien en 2003 qu'en 2007

      Variable objet ou variable bloc With non définie

      cela signifie que tu as des with ou des if non pairs et non fermés
      0
    4. bil_ly.16 Messages postés 10 Statut Membre 1
       
      est ce que je peux t'envoyer mon fichier pour que tu regarde ?
      0
    5. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Tu peux nous mettre un exemple de classeur, sans données identifiables et privées, mais avec la structure de tes données sur http://www.cijoint.fr/ puis nous mettre le lien généré ici.
      0
  3. bil_ly.16 Messages postés 10 Statut Membre 1
     
    Je viens d'essayer ton code, mais la réaction est toujours la même !

    Quand je lance mon fichier contenant ma macro (avec mes Userform), tout mes fichiers excel ouvert sont cachés par cette action :(

    Merci quand même !
    0
    1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      regardes j'ai modifié le code cela devrait fonctionner.
      0
  4. bil_ly.16 Messages postés 10 Statut Membre 1
     
    Alors, tu voit le problème ou pas ??
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Re,

      Je viens de tester, toute l'application est masquée en effet.
      Pour que ça marche il faudrait ouvrir ton classeur dans une nouvelle session excel en utilisant un classeur intermédiaire pour charger celui-ci.
      Jette un oeil sur cette discussion
      eric
      0
    2. bil_ly.16 Messages postés 10 Statut Membre 1
       
      Je vais essayer !
      Merci bien !
      0