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 :

3 combo en cascades, la 3eme affiche seulement 10 noms [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut 3 combo en cascades, la 3eme affiche seulement 10 noms
    Bonjour le forum,
    J'ai 3 combo en cascade, les 2 premieres affichent bien les données. Par contre la 3 eme m'affiche seulement une 10 de noms. Selon les criteres choisis dans les 2 premieres, alors qu'il devrait y avoir une 30 de noms afficher dans la 3eme combo.
    Je ne trouve pas la solution a mon problème;
    Merci pour votre aide.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub ComboBox1_Change()
        Sheets("Codes").Activate
        ' Récupère le nombre de lignes de la colonne concernée
        Lgn = Cells(2, Me.ComboBox1.ListIndex + 1).End(xlDown).Row
     
        Me.ComboBox2.Clear
        With ComboBox2
            For i = 1 To Lgn - 1
                .AddItem Sheets("Codes").Cells(i + 1, Me.ComboBox1.ListIndex + 2)
            Next i
        End With
        Me.ComboBox2.ListIndex = 0
     
        Me.ComboBox3.Clear
        With ComboBox3
            For i = 1 To Lgn
                .AddItem Sheets("Codes").Cells(i + 1, Me.ComboBox1.ListIndex + 13)
            Next i
        End With
        Me.ComboBox3.ListIndex = 0
     
     
        Sheets("Menu").Activate
    End Sub

  2. #2
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Erreur de ma part,
    La combobox3 doit se réinitialiser par rapport au choix de la combobox1. Malgré la consultation du forum, je ne trouve pas la solution à ce problème.
    Merci pour l'aide

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    Bonjour

    à tous hasard

    dans cette ligne tu définis lng
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lgn = Cells(2, Me.ComboBox1.ListIndex + 1).End(xlDown).Row
    est-ce que ce nombre de lignes est valable pour les deux autres comboBox ou ne faudrait-il pas calculer le nombre de lignes suivant le nombre d'infos dans leur colonnes respective.

    pour comboBox2 : nb de ligne de la colonne "Me.ComboBox1.ListIndex + 2"

    pour comboBox3 : nb de ligne de la colonne "Me.ComboBox1.ListIndex + 13"

  4. #4
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Merci zyhack de te pencher sur mon problème.

    La combo1 cherche les données dans la colonne A
    La combo2 cherche les données de la colonne B à L par rapport à la combo1
    la combo3 cherche les données de la colonne M à W par rapport à la combo1

    le nombre de lignes de chaque colonne est variable.
    Je ne comprends pas le fait que seulement 10 lignes soient sélectionnées.

  5. #5
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    tu ne devrait pas mettre Lgn -1 pour la Combo 3 ? (comme pour la 2)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Me.ComboBox3.Clear
        With ComboBox3
            For i = 1 To Lgn
                .AddItem Sheets("Codes").Cells(i + 1, Me.ComboBox1.ListIndex + 13)
            Next i
        End With
        Me.ComboBox3.ListIndex = 0

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    633
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 633
    Points : 877
    Points
    877
    Par défaut
    re

    ce que je voulais dire c'est que ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        Me.ComboBox3.Clear
        With ComboBox3
            For i = 1 To Lgn
                .AddItem Sheets("Codes").Cells(i + 1, Me.ComboBox1.ListIndex + 13)
            Next i
        End With
    Remplie ton combobox avec les Lng valeurs de ta boucle et si lng = 10 alors ton problème viendrait de la.

    ne faudrait-il pas redéfinir le nombre de ligne à ajouter avant la boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        Lgn = Cells(2, Me.ComboBox1.ListIndex + 13).End(xlDown).Row
        Me.ComboBox3.Clear
        With ComboBox3
            For i = 1 To Lgn
                .AddItem Sheets("Codes").Cells(i + 1, Me.ComboBox1.ListIndex + 13)
            Next i
        End With

  7. #7
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2006
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2006
    Messages : 239
    Points : 105
    Points
    105
    Par défaut
    Merci zyhack ,

    Il fallait redefinir le nombre de ligne à ajouter avant la boucle, comme tu l'as dit.
    J'ai rajouté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lgn = Cells(2, Me.ComboBox1.ListIndex + 13).End(xlDown).Row
    Tout fonctionne correctement.
    Bonne soirée et merci encore.
    Cordialement

  8. #8
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    Ta fonction recupere les données de la colonne correspondant à la ligne selectionné en C1.

    Je l'ai essayé, cela fonctionne.

    Est tu sur d'avoir le meme nombre de ligne dans toutes tes colonnes ? Combien a tu de ligne dans la colonne constituant la combo 1 (avec la ligne de titre) ?
    Quand je selectionne le contenu de la ligne n°11 je vais sur la colonne V ....

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

Discussions similaires

  1. [Débutant] Afficher seulement le nom du fichier sans extension dans ma listbox
    Par Martipit dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/04/2012, 23h59
  2. [9] Afficher seulement qlq record
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 10/07/2007, 19h08
  3. [JFileChooser] Afficher seulement les répertoires
    Par Cyborg289 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 04/09/2005, 15h45
  4. [WAP/WML] Affiche seulement le code source !!!
    Par Alkmie dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 25/11/2003, 17h03
  5. Réponses: 2
    Dernier message: 23/11/2003, 18h44

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