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 :

Masquer des feuilles de calculs et exécuter des macros


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut Masquer des feuilles de calculs et exécuter des macros
    Bonjour à tous,
    Je viens de faire mon petit fichier Excel avec les macros en VBA qui vont bien, mais maintenant, je souhaiterai cacher plusieurs feuilles de calcul. Le problème que je rencontre est que certaines macros utilisent ces feuilles. Lorsque la macro appelle une feuille masquée, j'ai un message d'erreur :
    Erreur d'exécution '1004':
    La méthode Select de la classe Worksheet a échoué.
    Comme dois-je procéder pour palier à ce problème ?

    Dois-je afficher la page le temps de la macro puis la masquer à nouveau ?
    Si oui, comment-dois-je faire pour cela ?

    Je vous remercie par avance.
    A bientôt.

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    tu n'es pas obligé d'afficher des feuilles pour y travailler avec des macros.

    par contre, il te faut retirer tous les selects et tous les activates et tu verras en plus que ton code sera beaucoup plus lisible
    un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Feuil1").select
    range("A1").select
    selection = "Essai"
    devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Feuil1").range("A1") = "Essai"
    cela fait longtemps que j'ai banni tous les selects seule une particularité d'excel ne me permet pas de le faire (quand je travaille sur les formatconditions)

    Bon courrage

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut
    ok, merci, je vois ça ce matin pour modifier mes macros.

  4. #4
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut
    J'ai trouvé une autre solution, celle de masquer tout simplement les onglets sous Excel.
    J'ai insérer la ligne de commande dans le fichier et ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.DisplayWorkbookTabs = False
    Encore merci pour le coup de main.
    A+

    Citation Envoyé par Gorfael Voir le message
    Salut cynoq et le forumComme dit wilfried_42, pourquoi appeler une feuille ? Mais par exemple, un tri demande à être fait sur la feuille active et là...
    Application.ScreenUpDating = False/True
    Permet de ne pas rafraîchir l'écran.
    Mais si on avait ton code (oui, je sais, le divulger risque de compromettre la sécurité nationale), on pourrait peut-être l'accélérer et résoudre ton problème, non ?
    A+
    Le rafraichissement d'écran est déjà désactivé au départ de la macro.
    Ce que je ne voulais pas est que les utilisateurs du fichier puisse accéder aux différents onglets via l'interface Excel.

    Il n'y a pas de secret d'Etat concernant le code, d'autant qu'il n'est pas des plus complexes c'est juste que je voulais un principe de fonctionnement que du code proprement dit, histoire de faire fonctionner un peu mes méninges

    Encore merci à vous

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut cynoq et le forum
    Lorsque la macro appelle une feuille masquée, j'ai un message d'erreur :
    Comme dit wilfried_42, pourquoi appeler une feuille ? Mais par exemple, un tri demande à être fait sur la feuille active et là...
    Application.ScreenUpDating = False/True
    Permet de ne pas rafraîchir l'écran.
    Mais si on avait ton code (oui, je sais, le divulger risque de compromettre la sécurité nationale), on pourrait peut-être l'accélérer et résoudre ton problème, non ?
    A+

  6. #6
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re: bonjour Gorfael

    cynoq : c'est un pansement que tu mets là, il va y rester des cicatrices : (lenteur du code), ce n'est pas parce que l'on ne voit pas que çà ne ce fait pas.
    m'enfin c'est ton choix!!!

  7. #7
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Sans préjuger de l’opportunité de la chose :

    Cacher les onglets :
    N’empêche en rien d’utiliser les CTRL + page-up ou Down (raccourcis pour le moins bien connu d’utilisateurs de base ici visés)…
    N’empêche pas de les réactiver via Options…
    Peut se révéler au contraire provocateur pour les curieux…

    Donc tant qu'à faire dans les cas présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Toto").Visible = True
    Worksheets("Toto").Visible = False
    en début et fin des procédures incriminées fera l'affaire..
    cordialement,

    Didier

  8. #8
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    une feuille masquée avec l'option xlveryhidden devient très difficile à accéder sans le VBA, pour un utilisateur lambda voire impossible

  9. #9
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2007
    Messages : 218
    Par défaut
    Citation Envoyé par wilfried_42 Voir le message
    re: bonjour Gorfael

    cynoq : c'est un pansement que tu mets là, il va y rester des cicatrices : (lenteur du code), ce n'est pas parce que l'on ne voit pas que çà ne ce fait pas.
    m'enfin c'est ton choix!!!
    je vais voir pour corriger mon code de toute façon et veiller à le simplifier
    Merci encore

    Citation Envoyé par Ormonth Voir le message
    Bonjour,

    Sans préjuger de l’opportunité de la chose :

    Cacher les onglets :
    N’empêche en rien d’utiliser les CTRL + page-up ou Down (raccourcis pour le moins bien connu d’utilisateurs de base ici visés)…
    N’empêche pas de les réactiver via Options…
    Peut se révéler au contraire provocateur pour les curieux…

    Donc tant qu'à faire dans les cas présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Toto").Visible = True
    Worksheets("Toto").Visible = False
    en début et fin des procédures incriminées fera l'affaire..
    cordialement,

    Didier
    Je ne me fais pas trop de soucis concernant la curiosité des personnes amenées à utiliser le fichier, et encore moins pour ce qui concerne les raccourcis.

    toutefois merci

    A bientôt.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/12/2011, 10h31
  2. [XL-2007] Boucles For Each Next: problème de défilement des feuilles avec lenteur d'exécution
    Par camelia.w dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/12/2011, 20h08
  3. [XL-2007] Comparer 2 feuilles Excel et afiicher dans des feuilles résultats
    Par OniSILVER dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 25/11/2009, 12h03
  4. comment cacher les onglets des feuilles de calculs ?
    Par arkorrigan dans le forum Excel
    Réponses: 7
    Dernier message: 30/05/2008, 12h57
  5. Réponses: 2
    Dernier message: 16/07/2007, 14h54

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