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 :

MAJ automatique de listes déroulantes en cascades sur plusieurs onglets


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Référent Nouvelles Technologies
    Inscrit en
    Mars 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Référent Nouvelles Technologies
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut MAJ automatique de listes déroulantes en cascades sur plusieurs onglets
    Bonjour à toutes et tous!

    J'ai une liste déroulante sur le premier onglet de mon fichier qui me propose un choix.

    Ce choix est répercuté dans un autre onglet (Feuil2) en case B1 pour mémoire sous forme d'un simple :

    Dans cet onglet-ci, une seconde liste déroulante (fonction de la valeur B1) dans la case C1 doit me donner une autre liste de choix.

    Jusqu'ici tout est bon.

    Sauf que lorsque je sélectionne dans "Feuil1", la valeur dans la liste et que je me rend dans la Feuil2, par défaut il complète la case C1 par une valeur du choix précédent. Il faut que je clique sur la flèche déroulante pour me proposer les bonnes valeurs.

    Cela peut être une source d'erreur, et je souhaiterais par défaut mettre une valeur "null" dans la seconde liste pour éviter les confusions.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Référent Nouvelles Technologies
    Inscrit en
    Mars 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Référent Nouvelles Technologies
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Je me permets un petit up pour voir si certains n'auraient pas de tips

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut
    Bonjour,

    Je pense que tu peux passer par une macro évènementielle worksheet.change sur ta cellule A1 pour remettre les autres listes a null a chaque changement de valeur en A1

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Référent Nouvelles Technologies
    Inscrit en
    Mars 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Référent Nouvelles Technologies
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Pour le coup c'est une idée intéressante mais n'étant pas familier avec cette fonction

    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 Excel.Range) 
        If Target.Column = 1 Then 
            ThisRow = Target.Row 
            If Target.Value > 100 Then 
                Range("B" & ThisRow).Interior.ColorIndex = 3 
            Else 
                Range("B" & ThisRow).Interior.ColorIndex = xlColorIndexNone 
            End If 
        End If 
    End Sub
    J'ai trouvé ce "tuto" ci-dessus m'expliquant les tenants et les aboutissants de celle-ci. Mais je ne comprends pas comment influée sur ma seconde liste déroulante car elle découle d'une fonction indirect voici mon fichier :

    Sur "Onglet1", j'ai une première liste déroulante qui a pour plage de données un tableau d'une seule colonne

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
     =ETABLISSEMENTS

    Cette liste me permet de faire une sélection et reportée ma sélection pour une seconde liste ayant comme plage de donnée dans mon onglet2 :

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
     =INDIRECT('Onglet1'!$K$7)

    Qui me renvoi en fonction du choix initiale une liste différente. Le problème c'est lorsque je choisi une valeur sur l'onglet1 différente, la valeur par défaut de la liste sur l' onglet2 reste sur une des valeurs de la liste précédente mais elle m'affiche bien par contre la liste en dessous correcte

    Je souhaiterais : au mieux faire afficher une valeur présent dans la bonne liste au pire une case vierge au changement de sélection dans la première liste.

    Merci d'avance

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 665
    Points : 5 804
    Points
    5 804
    Par défaut
    D'après ton premier message, la liste initiale sur trouve sur la Feuil1 cellule A1 et la cellule a remettre a vide est sur la feuil2 en C1, donc il faut placer ta macro évènementielle sur la feuil1 et target doit correspondre a ta cellule A1, ensuite tu lui demande changer la valeur de C1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
        If Target = range("A1") Then sheets("feuil2").range("C1")="" 
    End Sub

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Référent Nouvelles Technologies
    Inscrit en
    Mars 2021
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Référent Nouvelles Technologies
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2021
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Magnifique, c'est exactement ce dont j'avais besoin

    merci même si je pense que cela ai été mainte maintes fois indiqués

    Vous souhaitant une excellente journée!!

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/12/2020, 17h11
  2. [WD-2010] Listes déroulantes en cascade sur WORD
    Par mira7 dans le forum VBA Word
    Réponses: 1
    Dernier message: 10/03/2019, 04h25
  3. [AC-2016] Listes déroulantes en cascades sur formulaire continu
    Par Pierre Dumas dans le forum Access
    Réponses: 5
    Dernier message: 17/05/2016, 17h31
  4. [AC-2010] Liste déroulante en cascade basée sur requête
    Par John Parker dans le forum IHM
    Réponses: 4
    Dernier message: 20/11/2015, 15h35
  5. [XL-2003] Liste déroulante avec image sur plusieurs colonnes
    Par mimi62 dans le forum Excel
    Réponses: 3
    Dernier message: 27/09/2010, 22h05

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