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 :

Comment cacher des onglets tout en les utilisant


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut Comment cacher des onglets tout en les utilisant
    Bonjour à tous,

    Je voudrais être capable d'exécuter mes macros qui sélectionne des onglets mais je voudrais cacher ces mêmes onglets.

    Voici un exemple de code qui utilise un onglet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    For month = 11 To 22
                        With .Range("A1:X65536")
                        .AutoFilter field:=16, Criteria1:="*" & month & "*"
                        .Range("M:M").Copy
     
                        Sheets("PO").Select
                        End With
                        i = i + 1
                        Cells(j, i).Select
                        ActiveSheet.Paste
    Je voudrais pouvoir cacher l'onglet PO par exemple...comment faire?

    J'ai essayé cacher les onglets mais ma macro ne fonctionne pas lorsque la macro doit sélectionner l'onglet PO...problème!!!

    Merci de l'aide

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    attention aux termes employés, on parle de feuille Excel, les onglets, c'est autre chose

    Concernant ton problème, tu peux cacher une feuille avec par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a.Visible = xlsheethidden
    mais l'utilisation des Select n'est pas pertinent (tu ne peux pas sélectionner une feuille cachée manuellement )

    tu simplifieras ton code sans passer par les select, en utilisant le .paste en direct
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut
    Est-ce que c'est possible de cacher une feuille mais de modifier le code pour ne pas avoir de select. et de quand même être capable de rouler une macro qui travail avec toutes les onglets cachés?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Oui,
    exemple (foireux, mais tu saisiras l'idée) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim a as worksheet
    set a = Worksheets("Piou")
    a.Select
    activesheet.Range("A1").Copy
    peut se faire directement avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim a as worksheet
    set a = Worksheets("Piou")
    a.Range("A1").Copy
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut
    Ah d'accord excellent je comprends bien...donc en appliquant ces changements je pourrai cacher les feuilles et quand même faire rouler la macro sans problème.

    Merci de l'aide

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu
    Bonjour sherman

    On vient de te répondre que oui, à condition que tu n'utilise pas de Select ou Activate sur tes feuilles cachées.

    Exemple :
    Ta feuille 1 est cachée, ce code ne marche pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sheets("feuil1").activate
    range("a1").select 
    range("a1")= "me voici"
    alors que ce code marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sheets("feuil1").range("a1")="mevoici"
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2012
    Messages : 114
    Par défaut
    @patricktoulon: Merci de la réponse...c'était la question qui me fallait

    Merci à vous deux

    Je n'arrive pas à raccourcir cette partir de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
                    For month = 11 To 22
                        With .Range("A1:X65536")
                        .AutoFilter field:=16, Criteria1:="*" & month & "*"
                        .Range("M:M").Copy
     
                        Sheets("PO").Select
                        End With
                        i = i + 1
                        Cells(j, i).Select
                        ActiveSheet.Paste
                    Next
    J'ai essayé d'écrire Sheets("PO").Cells(j, i).Paste

    Mais je reçois un code d'erreur 438

    Pourquoi ça ne fonctionne pas?

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonsoir

    le end with déjà est mal placé quand au critère je suppose que c'est une date

    c'est dangereux de jouer avec le joker "*"

    et j et i je vois pas trop a quoi ils correspondent

    sachant que ta boucle se fait sur "month"

    d'autant plus que les select et activate a tout va font ramer la machine

    enfin j'ai beau tourner ton code dans tout les sens je ne sais pas ce que tu veux faire
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 13/11/2014, 16h12
  2. Comment insérer des onglets dans les pages ASP.NET ?
    Par insane_80 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/02/2007, 16h32
  3. Comment créer des onglets "glissants"
    Par miniil dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/06/2005, 22h24
  4. [C#] Cacher des onglet(s)
    Par Jfrancois57 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/04/2004, 23h17
  5. Comment cacher des propriétés dans un nouvel objet ?
    Par Pedro dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/10/2003, 18h53

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