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 :

Liste déroulante dépendantes (ex capitale pays)


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Liste déroulante dépendantes (ex capitale pays)
    Bonjour,

    Je viens vers vous parce que j'ai un problème mais qui à l'air très facile mais j'y arrive pas.
    Admettons que dans une feuille "source" je mette Pays en B2 et du coup le nom de tous les pays en verticale, et Capitale en C2 et le nom de chaque capitale. Je veux donc en feuille 1, que la case
    A3 me fasse une liste déroulante de tous les pays(du coup ok avec validation des donnés en definissant un nom a la plage de cellule)) et du coup qu'en B3 la capitale correspondante. (j'ai essayé indirect A3 mais ca ne amrceh pas (J'aimerais aussi la possibilité d'inserer moi même la capitale si le pays n'est pas mentionné)

  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
    Citation Envoyé par walido78 Voir le message
    du coup qu'en B3 la capitale correspondante. (j'ai essayé indirect A3 mais ca ne amrceh pas
    Utilise RECHERCHEV()
    https://support.office.com/fr-FR/art...8-93a18ad188a1

    J'aimerais aussi la possibilité d'inserer moi même la capitale si le pays n'est pas mentionné)
    Même si la cellule contient une fonction RECHERCHEV(), rien ne t'empêche de saisir autre chose manuellement.

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    j'ai essayé indirect A3 mais ca ne amrceh pas (J'aimerais aussi la possibilité d'inserer moi même la capitale si le pays n'est pas mentionné)
    Je suppose que tu as lu quelques part que l'on pouvait utiliser la fonction INDIRECT pour obtenir ainsi la référence à une plage de cellules pour la validation de données.

    Alors oui, c'est possible mais pour cela il faut au préalable nommer les plages.
    Ainsi si en A2, tu as une liste déroulante des continents et qu'après avoir sélectionné Europe, tu veuilles obtenir la liste déroulante de tous les pays d'Europe dans une liste en B2.
    Voici la méthode
    1. Créer une colonne (convertie en tableau structuré) par continent contenant la liste de tous les pays de celui-ci (par exemple colonne A, Europe, colonne C Afrique, colonne E Asie, etc.
    2. Nommer la liste des pays par le nom du continent
    3. Insérer en cellule B2 une validation de données-Liste et dans la zone de texte écrire
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup a vous !
    Je l'ai fait cela marche mais quand je l’intègre à une macro il me dit qu'il y'a une erreur dans l'application ou dans l'objet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Bouton135_Cliquer()
    Range("A4").Select
     Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
     With Range("A4:F4")
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
            .Borders(xlInsideVertical).LineStyle = xlContinuous
        End With
        Range("B4").Select
         ActiveCell.FormulaR1C1 = "=SI(ESTNA(RECHERCHEV(A4;Feuil3!B2:C47;2;FAUX));"";RECHERCHEV(A4;Feuil3!B2:C47;2;FAUX))"
    L'erreur est du coup dans la dernière ligne
    Dernière modification par Invité ; 22/05/2019 à 19h40. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)

  5. #5
    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 walido78 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         ActiveCell.FormulaR1C1 = "=SI(ESTNA(RECHERCHEV(A4;Feuil3!B2:C47;2;FAUX));"";RECHERCHEV(A4;Feuil3!B2:C47;2;FAUX))"
    Il y a deux erreurs dans cette ligne.
    D'abord, tu indiques que tu vas donner les références sous forme "R1C1" (c'est à dire en ligne et colonne) mais tu les donnes sous forme "A1".
    Ensuite, tu mets utilises des fonctions francophones alors que VBA, par défaut, utilise leur version anglophone.

    Il faudrait donc utiliser FormulaLocal.
    https://msdn.microsoft.com/fr-fr/lib...1(v=office.15)

    Petit détail : au lieux d'utiliser un SI() avec un ESTNA(), tu devrais utiliser une fonction SIERREUR().
    https://support.office.com/fr-FR/art...6-63f3e417f611

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci beaucoup Menhir,
    franchement le SIERREUR me simplifie la vie, mais j'ai mis
    cette ligne du coup:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaLocal = "=SIERREUR(RECHERCHEV(A3;Feuil3!B2:C47;2;FAUX);"")"
    Mais j'ai toujours la même erreur en fait
    Dernière modification par Invité ; 22/05/2019 à 19h41. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)

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

Discussions similaires

  1. Zone de liste déroulante dépendante et sous-formulaire
    Par Philosophine dans le forum Access
    Réponses: 6
    Dernier message: 24/10/2006, 22h41
  2. Réponses: 2
    Dernier message: 15/09/2006, 19h03
  3. Réponses: 3
    Dernier message: 30/06/2006, 22h56
  4. Réponses: 4
    Dernier message: 17/03/2006, 14h39
  5. Liste déroulante dépendante
    Par nanas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2005, 15h25

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