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

Excel Discussion :

Pb. de liste déroulante dans une cellule [XL-2007]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Pb. de liste déroulante dans une cellule
    Bonjour à tous,

    J'ai cherché vainement presque toute l'après midi d'hier sur le net une réponse à un problème de liste déroulante dans une cellule. J'ai bien trouvé des exemples, mais rien qui ne corresponde vraiment à ma recherche. Je me tourne une fois encore vers vous pour rechercher une solution.
    J'ai créer un exemple simplifié à partir de ma base de données Excel que je joint à cette discussion.

    Je cherche en fait à créer une liste déroulante dans l'onglet "Paiements" à partir de la cellule A6, qui afficherait tous les Patronymes de l'onglet "Actifs" colonne E de E6 à E? et qui donnerait à la cellule A de l'onglet "Paiements" le N° RG (colonne A de l'onglet"Actifs") correspondant au Patronyme choisi.
    En clair, comme on ne connait pas tous les numéros de clients par coeur, je cherche à le récupérer en affichant les noms des clients!

    Un des problèmes auquel je me heurte, c'est aussi la taille de l'onglet "Actifs".
    En effet, dans l'exemple j'ai mis 11 actifs, mais il peut très bien y en avoir 5 ou 50. Donc pas possible de nommer une plage de cellules.

    Dans l'application réelle, on passe d'un onglet à l'autre par procédure. L'onglet "Actifs" sera toujours trié par Patronyme croissant, et je pense qu'il est possible de copier et de déterminer le nombre d'enregistrements de l'onglet "Actifs" dans la macro qui ouvre l'onglet "Paiements".

    Merci de votre aide.
    Joseph
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Pas certain d'avoir tout compris, mais il me semble que c'est la définition de ta plage nommée qui te pose souci dans ton procéssus.
    Voici un code qui adapte la plage pour la zone nommée en fonction de la dernière ligne renseignée dans la colonne E de la feuille "Actifs".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub DefListe()
     
    Dim derCel As Long
     
    'On récupère le numéro de la ligne de la dernière cellule remplie en colonne E
    derCel = Sheets("Actifs").Cells(Columns(5).Cells.Count, 5).End(xlUp).Row
    'On adapte la zone de référence de la plage nommée avec la variable
    ActiveWorkbook.Names.Add Name:="Patronyme", RefersToR1C1:="=Actifs!R6C5:R" & derCel & "C5"
    End Sub
    Bonne continuation

    A+

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    salut
    je te joint ton fichier avec des formules plus simples a mettre en place qu'une macro.
    tu nomme ta liste de patronyme avec une formule type décaler pour qu'elle soit dynamique
    tu utilise la validation de donnée pour creer tes liste dans ton tableau
    tu place une formule pour rechercher ta valeur dans la premiere colone.
    si ça te conviens et que ça te parait compliqué pour l'adapter, n'hésite pas a demander

  4. #4
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous et merci de vos réponse.

    Je cherchais effectivement une solution par le biais de formules et non pas via VBA. (mais je retiens l'exemple!)
    Voilà la solution transmise que j'ai appliquée.

    La liste déroulante a été mise en colonne B et non en colonne A.
    J'ai nommé la liste des noms et prénoms des actifs par : Nom - Insertion - Définir - Nom : Liste_actifs - et qui fait référence à :

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =DECALER(Actifs!$E$5;1;0;NBVAL(Actifs!$E$6:$E$100))

    Ensuite, onglet Paiements, sélection B6:B100, puis Données - Validation - Autoriser ; Liste - Source : =Liste_actifs

    En A6, pour retrouver le n° de l'actif, cette formule :

    Code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(Actifs!$E$6:$E$100;Paiements!$B6)=0;"";INDEX(Actifs!$A$6:$A$100;EQUIV(Paiements!$B6;Actifs!$E$6:$E$100)))
    Voilà, cette solution fonctionne du tonnerre.

    Je vous remercie infiniment pour le temps que vous avez pris pour m'aider et pour les solutions que vous m'avez apportées.

    Cordialement
    Joseph

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

Discussions similaires

  1. [XL-2007] Créer une liste déroulante dans une cellule avec vba
    Par destroyed dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/07/2014, 09h19
  2. Réponses: 5
    Dernier message: 21/06/2012, 14h22
  3. [XL-2010] Liste déroulante dans une cellule
    Par superloupiot dans le forum Excel
    Réponses: 9
    Dernier message: 17/01/2012, 17h46
  4. [VB6]Créer une liste déroulante dans une dataGrid
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/05/2006, 09h32
  5. [EXCEL] Insertion liste déroulante dans une cellule
    Par the java lover dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 02/11/2005, 18h30

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