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 lier deux listes déroulantes crées en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité de passage
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut Comment lier deux listes déroulantes crées en VBA
    Bonjour,
    Je n'arrive pas à lier ces deux listes crées par une macro en VBA Excel 2007

    J'ai cherché sur le forum sans trouver ma solution
    Merci pour votre aide

    Liaison par exemple :
    Dépenses : Courses Alimentaires, Transport Ou Revenus : Salaires, Remboursement
    Voici mon code :


    ' Ajouter la liste déroulante transaction dans la plage
    rng.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="Dépenses;Revenus;Frais Fixes;Epargne et Investissements;Crédits Dettes"
    rng.Validation.IgnoreBlank = True
    rng.Validation.InCellDropdown = True
    rng.Validation.ShowInput = True
    rng.Validation.ShowError = True
    'Mise d une valeur par defaut
    rng.Value = "Choisissez"

    '++++++++++++ FIN LISTE DEROULANTE TRANSACTION ++++++++++

    '++++++++++++ LISTE DEROULANTE CATEGORIE ++++++++++

    ' Trouver la dernière ligne remplie dans la colonne A à partir de la ligne 11
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    If lastRow < 11 Then lastRow = 11

    ' Définir la plage dans la colonne E de E11 à E dernière ligne
    Set rng = ws.Range("E11:E" & lastRow)

    ' Supprimer toute validation existante dans cette plage
    rng.Validation.Delete

    ' Ajouter la liste déroulante catégorie dans la plage
    rng.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
    Operator:=xlBetween, Formula1:="Courses Alimentaires,Sorties et Restaurants,Transports,Dettes, Salaire, Remboursement"
    rng.Validation.IgnoreBlank = True
    rng.Validation.InCellDropdown = True
    rng.Validation.ShowInput = True
    rng.Validation.ShowError = True

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Hello,

    Premier point:
    Utilise la balise [Code] (le bouton qui ressemble à "#") pour poster tes codes sources.

    Ensuite:
    Peux-tu poster un classeur avec des données d'exemple (anonyme de préférence) ?
    Car un code source sans les données, c'est coton pour te répondre.

    Egalement:
    Utilise autant que possible les tableaux structurés, ils embarquent de nombreux attributs (dont leurs taille), tous ce que l'on peut faire avec, c'est magique.

  3. #3
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 516
    Par défaut
    Bonjour à tous,
    Je n'arrive pas à lier ces deux listes crées par une macro en VBA Excel 2007
    Apparemment vous parlez de liste de validation de données sur une feuille, d'après les codes fournis. C'est exact ?
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en :resolu: Vous avez aimé la discussion alors un :plusser: fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  4. #4
    Invité de passage
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut Précision sur ma demande..
    Citation Envoyé par Valtrase Voir le message
    Bonjour à tous,

    Apparemment vous parlez de liste de validation de données sur une feuille, d'après les codes fournis. C'est exact ?
    Bonjour, je transforme un fichier Excel pour l'intégrer dans une application de gestion de budget.
    Cette appli a deux colonne de cellules qui ont des listes déroulantes.
    J'arrive à créer ces listes (cf mon code) mais pas à les lier tel que défini dans ma demande.
    Je joins un fichier du résultat obtenu après mon traitement avec en colonne B la liste mère et colonne E celle qui devrait être dépendante.
    J'espère avoir été suffisamment clair et merci de votre aide.
    Modele fichier Développer.xlsx

  5. #5
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 516
    Par défaut
    Re
    Dans un premier temps je vous conseille de travailler sur des tableaux structurés, ce sera plus efficace.
    Ensuite vous devez utiliser INDIRECT dans vos validations de données
    Sur une feuille (Feuil2) créer divers tableaux

    Ensuite nommer vos tableaux vt_Catégories, vt_Dépenses, vt_Crédits, vt_Dettes, etc.
    Puis vous créer des zones de noms en sélectionnant chaque DataBodyrange de chaque tableau qui porterons le même nom des entrées du tableau vt_Catégories. (Dépenses;Dettes;etc.)

    ceci fait vous sélectionner la colonne catégorie de votre tableau principal.

    Et dans la source de la validation de données indiquez le champ nommé : =vr_Catégories pour mon exemple
    Puis sélectionnez la colonne sous- catégories et faites de même en indiquant pour la source "=INDIRECT(C3) dans mon exemple (la première ligne du tableau et la colonne catégories)

    Voilà vous pouvez faire un test maintenant.
    Pièce jointe 670440
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en :resolu: Vous avez aimé la discussion alors un :plusser: fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  6. #6
    Invité de passage
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 3
    Par défaut
    Citation Envoyé par Valtrase Voir le message
    Re
    Dans un premier temps je vous conseille de travailler sur des tableaux structurés, ce sera plus efficace.
    Ensuite vous devez utiliser INDIRECT dans vos validations de données
    Sur une feuille (Feuil2) créer divers tableaux

    Ensuite nommer vos tableaux vt_Catégories, vt_Dépenses, vt_Crédits, vt_Dettes, etc.
    Puis vous créer des zones de noms en sélectionnant chaque DataBodyrange de chaque tableau qui porterons le même nom des entrées du tableau vt_Catégories. (Dépenses;Dettes;etc.)

    ceci fait vous sélectionner la colonne catégorie de votre tableau principal.

    Et dans la source de la validation de données indiquez le champ nommé : =vr_Catégories pour mon exemple
    Puis sélectionnez la colonne sous- catégories et faites de même en indiquant pour la source "=INDIRECT(C3) dans mon exemple (la première ligne du tableau et la colonne catégories)

    Voilà vous pouvez faire un test maintenant.
    Pièce jointe 670440
    Bonjour,
    Je n'arrive pas à ouvrir ta pièce jointe.

Discussions similaires

  1. Réponses: 3
    Dernier message: 27/09/2016, 09h39
  2. [CS3] Comment lier deux listes entre elles ?
    Par linaress dans le forum Dreamweaver
    Réponses: 2
    Dernier message: 01/12/2014, 12h48
  3. [FAQ] Les formulaires (partie 2) Comment lier deux listes déroulantes entre elles ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 15
    Dernier message: 18/12/2013, 11h15
  4. [Javascript] Comment lier deux liste de sélection
    Par orleans dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/04/2006, 07h12
  5. comment lier deux tables?????
    Par baboune dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/03/2004, 14h45

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