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 2 zones de liste


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut Comment lier 2 zones de liste
    Bonjour,
    J'aurais voulu savoir comment créer des liens entre 2 zones de liste. Je m'explique. Je possède une liste de date allant du 1er janvier au 30 avril. Je voudrais que lorsque l'utilisateur saisi, par exemple, le 3 février dans la première liste, il n'ai plus le choix qu'entre les dates allant du 4 février au 30 avril sur la seconde.
    Je sais pas si c'est faisable mais j'imagine que oui.
    Par avance, merci !

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    elles sont "remplies" comment tes liste ..?

  3. #3
    Membre chevronné Avatar de La Praline
    Inscrit en
    Mars 2007
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2007
    Messages : 592
    Par défaut
    Bonjour,

    En effet cela n'a pas l'air de défier les lois de la programmation.

    Cependant en lisant ton post je me pose une seule question: As-tu ne serait-ce qu'essayé de le faire ???


    Non je demande ça parce que ca ressemble à une idée que tu as eu et que tu voudrais bien ajouter à ton programme sans qu'il n'y est un gros travail de développement (au moins pour toi...).

    En gros j'ai l'impression que tu demandes le code tout fait qui va bien...


    Si je me trompe, il serait profitable de voir ton code afin de t'aiguiller dans ton developpement...


    Cordialement

  4. #4
    Membre averti
    Inscrit en
    Mai 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 25
    Par défaut
    Je vais décrire mon problème. Je n'ai pas de grosses connaissances en Visual Basic. Pour remplir mes listes, j'utilise le menu Données / Validation... et je créé une zone de liste.
    Dans un premier temps, je disposais d'une liste de date sur une autre feuille excel pour créer la première zone de liste. Par la suite, à l'aide de tests, je n'ai copié dans une deuxième colonne que les dates qui étaient postérieures à la date saisie dans ma première zone de liste. J'ai ainsi pu créer la deuxième zone de liste. Le problème étant que même en cochant la case "ignorer si vide", les cases vide s'affichent quand même dans ma zone de liste et j'ai ainsi une zone de liste de 65536 lignes avec mes 120 dates et 65416 blancs. C'est pas très propre. Je me suis donc dit qu'avec un programme Visual Basic, ce serait plus lisible. Le problème, c'est que je ne sais pas encore comment remplir une zone de liste.

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    Tu n'as pas besoin de macro pour faire ça:

    Si par exemple les dates sont dans la Feuil2, à partir de la cellule A1:


    Menu Insertion/Nom/Définir
    Tu spécifies un nom (NomPlage)
    Dans le champ "Fait référence à:", tu indiques:
    =DECALER(Feuil2!$A$1;EQUIV(Feuil2!$D$4;Feuil2!$A:$A);0;NB(Feuil2!$A:$A))
    Tu cliques sur le bouton Ajouter, puis sur OK pour valider

    Feuil2!$D$4 correspond à la cellule qui contient la premiere liste de validation (la liste totale des dates de la colonne A).



    Sélectionne la cellule qui va contenir la deuxieme liste de validation (dans la même feuille pour cet exemple)
    Menu données/Validation
    dans le champ Autoriser:, tu sélectionnnes "Liste".
    dans le champ "Source", tu saisies =NomPlage
    Clique sur le bouton OK pour valider


    michel

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu peux aussi faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub ListBox1_Click()
    ListBox2.Clear
    UneDate = CDbl(CDate(ListBox1.List(ListBox1.ListIndex + 1) & "/" & Year(Now)))
    For LaDate = UneDate To For LaDate = UneDate To CDbl(CDate("30/04/" & Year(Now)))
     
        ListBox2.AddItem Format(LaDate, "dd mmmm")
    Next
     
    End Sub
     
    Private Sub UserForm_Initialize()
     
    For LaDate = CDbl(CDate("01/01/" & CStr(Year(Now)))) To CDbl(CDate("30/04/" & CStr(Year(Now))))
        ListBox1.AddItem Format(LaDate, "dd mmmm")
    Next
    End Sub
    Listes placés dans un userform

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

Discussions similaires

  1. Comment lier des zones de liste via VBA ?
    Par Jordel dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2007, 16h38
  2. Réponses: 45
    Dernier message: 06/03/2007, 16h30
  3. Réponses: 6
    Dernier message: 14/08/2006, 08h58
  4. Comment imprimer une zone de liste?
    Par Dnx dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/01/2006, 13h24
  5. Lier une zone de liste au filtre d'un formulaire
    Par antier dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 20h13

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