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 :

Activer certaines feuilles excel en fonction choix liste déroulante


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut Activer certaines feuilles excel en fonction choix liste déroulante
    Bonjour,

    je souhaite créer un classeur excel qui lorsqu'il s'ouvre ne comporte qu'un simple userform avec une liste déroulante.
    J'aimerais qu'en fonction des choix dans la liste déroulante, il y ait uniquement l'affichage et l'activation des feuilles correspondantes.

    j'ai ainsi crée une liste de trigrammes de A2 à A170. Ces trigrammes sont récupérés dans une liste déroulante.
    Dans mon fichier d'exemple, si par exemple je choisis ABP dans la liste déroulante, je souhaiterais ouvrir la Feuil1 "ABP".

    Cela paraît tout simple et pourtant je rame (je débute).

    Merci par avance si une bonne âme pouvait me consacrer un peu de son temps ! ...

    AllInclusive.xlsm

  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
    Déjà, je ne suis pas sûr qu'il soit possible de désactiver tous les onglets d'un fichier xlsm comme tu souhaites le faire à l'ouverture.

    Ensuite, je ne vois pas bien comment se passe ton truc en pratique.
    Imaginons qu'au départ tu n'ais que ton userform, tu sélectionnes la feuille que tu veux et elle apparait.
    Mais ensuite, comment souhaites-tu faire réapparaitre le userform pour changer de sélection ? Un bouton dans la barre d'outil d'accès rapide ?

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut
    Hello
    Si tu veux commencer par masquer tout ton classeur, tu peux utiliser la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(ThisWorkbook.Name).Visible = False
    Que tu passes en true avant d’afficher les feuilles que tu veux.

  4. #4
    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
    Mais si son userform est dans le même fichier, il disparaitra aussi.
    Je ne suis pas sûr que ce soit l'effet souhaité.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut
    J’utilise cette fonction dans un UserForm_Initialize que j’ai préalablement lancer avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        UserForm.Show 0
    End Sub
    Et cela fonctionne très bien. Mon classeur est invisible et pas mon userform.

  6. #6
    Nouveau candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Août 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Août 2016
    Messages : 2
    Par défaut
    En fait je souhaite utiliser les éléments de ma colonne A2:A171 dans une liste déroulante.
    Si cela est possible, j'aimerais que le userform reste uniquement lié à la feuille Menu. Si par la suite je veux ajouter un trigramme je retourne sur la feuille "Menu" et je le sélectionne, si je n'ai plus besoin d'une feuille sélectionnée précédemment dans la liste déroulante, je la supprime d'un clic droit et "masquer".
    J'aurais aimé faire cela sans userform, mais je ne sais pas comment cela est possible...



    Citation Envoyé par Menhir Voir le message
    Déjà, je ne suis pas sûr qu'il soit possible de désactiver tous les onglets d'un fichier xlsm comme tu souhaites le faire à l'ouverture.

    Ensuite, je ne vois pas bien comment se passe ton truc en pratique.
    Imaginons qu'au départ tu n'ais que ton userform, tu sélectionnes la feuille que tu veux et elle apparait.
    Mais ensuite, comment souhaites-tu faire réapparaitre le userform pour changer de sélection ? Un bouton dans la barre d'outil d'accès rapide ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Par défaut
    Test Affichage Feuilles.xlsm
    Petit exemple pour ce que je disais plus haut

  8. #8
    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 wonderfulife37 Voir le message
    En fait je souhaite utiliser les éléments de ma colonne A2:A171 dans une liste déroulante.
    Si cela est possible, j'aimerais que le userform reste uniquement lié à la feuille Menu. Si par la suite je veux ajouter un trigramme je retourne sur la feuille "Menu" et je le sélectionne, si je n'ai plus besoin d'une feuille sélectionnée précédemment dans la liste déroulante, je la supprime d'un clic droit et "masquer".
    J'aurais aimé faire cela sans userform, mais je ne sais pas comment cela est possible...
    Bin... il suffit de mettre une liste déroulante dans ta feuille de calcul.

    Par exemple, si tu veux mettre cette liste en C2.
    Sélectionne C2 > Ruban Données > Icone Validation de données > Validation de données > Autoriser = Liste
    Dans le champ Source, tu mets :
    Tu valides avec Ok.

    Ensuite, dans l'éditeur VBA, tu sélectionnes dans l'éditeur de projet la Feuille correspondant à ton onglet "Menu" et, dedans, tu mets la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address(False, False) <> "C2" Then Exit Sub
     
    Dim WS As Worksheet
    For Each WS In Worksheets
        If WS.Name <> "Menu" And WS.Name <> Worsheets("Menu").Range("C2") Then WS.Visible = False
    Next WS
     
    End Sub

Discussions similaires

  1. Activer une feuille excel sans l'ouvrir
    Par amiralbhar dans le forum Général VBA
    Réponses: 2
    Dernier message: 22/02/2016, 10h20
  2. [SP-2013] Import d'une feuille Excel dans une Custom List
    Par Jean-Jacques Engels dans le forum SharePoint
    Réponses: 2
    Dernier message: 22/01/2016, 15h01
  3. Créer des feuilles excel à partir d'une liste+données
    Par sof_011 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/11/2013, 15h14
  4. [MySQL] fonction include selon choix liste déroulante
    Par ghyosmik dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/12/2007, 16h34
  5. Problème fonction affichage listes déroulantes
    Par JLDR69 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/09/2006, 19h06

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