Ne pas tenir compte des lignes vides dans la liste déroulant

Bonjour !

J'ai une liste déroulante qui lit les valeurs d'une colonne, seulement elles ne sont pas toutes pleines, comment ne demander à la liste de ne lire que les ligne où il y a quelque chose dedans?

Merci pour votre aide

Bonjour,

Pour ma part je te conseillerais d'alimenter ta liste via une boucle for,

dim c as range, rColonne as range

set rColonne=sheets("NomDeTaFeuille").range("A2:A10") 'Par exemple à adapter à ton cas

for each c in rColonne

if c <>"" then

Liste.AddItem c

end if

next c

Testé sur excel 2003

A te relire

Je vais essayer ça, merci !

En revanche je ne sais pas où je dois taper tout ce code?

Ton controle Liste , est il dans un formulaire ou dans une feuille de ton classeur*?

Hum.. Si par "Controle liste" tu parle de la colonne qui sera affichée dedans, elle est sur la même feuille.

Pour être plus précis, c'est pour la gestion de cadeaux pour une radio locale.

J'aimerais qu'on puisse rentrer dans chaque ligne le nom du cadeau, et ensuite plus loin sur la feuille, lorsque l'on "attribue" le cadeau à un auditeur, on puisse le sélectionner dans la liste.

Non je parlais de liste elle meme . Elle se trouve dans quoi?

Qd je dis liste je parle de se qui sera alimenter pas de la colonne qui l alimentera.

Je sais pas si je suis clair....

Elle est sur la même feuille. C'est une cellule

t'est-il possible de faire passer ton fichier?

S'il te plait.

bonjour

voia comment tu peux faire

la formule est matricielle donc a valider avec Ctrl Maj Entée les 3 touches en meme temps

cordialement

38skillz.zip (4.51 Ko)

Voilà le fichier

36classeur-kdo.xlsx (20.28 Ko)

(Ce sont les champs "Cadeau" et "Nom du Kdo" qui sont concernés)

Ton système Tulipe marche, par contre j'aimerais savoir exactement comment il doit fonctionner, ça m'oblige à ce que les lignes soit écrites une deuxième fois dans la page?

J'ai essayé de modifier ton code en le remplacant par mes lignes à moi mais ça ne marche pas.

re

bon je ne comprend rien a ton truc

1) qu'elle est la difference entre cadeau et "nom du cadeau"

2) pourquoi y aurait il des trous ? ( je suppose que si il est distribué >>> tu l'enleves donc ça fait un trou ; donc au depart la liste est pleine et en allant que tu distribues ;il faut la reformater et peut etre meme avertir quand il n'y a plus grand chose a distribuer

3) ce qui nous amene a dire :qu'elle est la liste de depart :nom du cadeau ou cadeau ?

met des valeurs dans ta piece jointe et dis nous purquoi ,il y a ça ici et; que je veux le retrouver là .......

cordialement

Si je comprend bien,

Tu veux que les cellules de la colonnes cadeau (gagné par un auditeurs) te propose la liste de cadeaux identifiés à droite de ton classeur?

pourquoi ne pas faire une feuille listeCadeau, et une autre CadeauDistribuer ça pourrait simplifier un peu la donne

Voila mon ébauche

j'ai essayer de respecter tes souhaits,

comme je le disais précédemment j'ai fait 2 feuilles (c'est un peu une base de données et pour les BDD on "divise pour mieux régner")

bref, dans la feuille où tu attribue les cadeaux la liste des cadeaux est alimentée par la feuille listeCadeaux, et ce malgré les cases vides qui n'apparaitront pas.

dis moi ce que tu en penses.

20classeur-kdo.xlsm (29.44 Ko)

Tulipe :

1) Alors en fait, le champ Cadeau de la partie auditeur permet d'afficher quel cadeau a t-on offert à l'auditeur, alors que "Nom du Cadeau" correspond au Cadeau en question. Donc du coup j'aurais voulu que lorsqu'on attribue un cadeau à un auditeur, on puisse le choisir parmi la liste déroulante qui correspond aux cadeaux disponibles

2) En fait, il n'y aura pas vraiment des trous, juste que tous les champs ne seront jamais pleins, et sur la liste déroulante, elle ne part pas du haut de la liste donc on doit remonter l'ascenceur pour trouver les premiers cadeaux de la liste.

3) Pour commencer, je rentre la liste des cadeaux, donc le champ "nom du cadeau" et les lignes des auditeurs sont remplies en conséquence.

Pour SylChat : C'est exactement ça ! Je vais essayer ton classeur

Ca m'a l'air de fonctionner seulement ça ne tient pas compte de ta liste kdo mais des possibilités référencées dans la validation des données. :/

Public Sub ListKdo()
    Dim c As Range, rKdo As Range, rCarnetKdo As Range
    Dim tabKdo As Variant
    Dim strKdo As Variant
    Dim x As Integer, y As Integer, i As Integer
    x = ThisWorkbook.Sheets("ListeCadeau").Range("B65536").End(xlUp).Row
    Set rKdo = ThisWorkbook.Sheets("ListeCadeau").Range("B2:B" & x)
    i = 0
    ReDim tabKdo(i)
    For Each c In rKdo
        If c <> "" Then
            tabKdo(i) = c
            i = i + 1
            ReDim Preserve tabKdo(i)
        End If
    Next c
    For i = LBound(tabKdo) To UBound(tabKdo) - 1
        If i = 0 Then
            strKdo = tabKdo(i)
        Else
            strKdo = strKdo & "," & tabKdo(i)
        End If
    Next i
    y = ThisWorkbook.Sheets("CarnetCadeaux").Range("B65536").End(xlUp).Row
    Set rCarnetKdo = ThisWorkbook.Sheets("CarnetCadeaux").Range("G2:G" & y + 1)
    For Each c In rCarnetKdo
        c.Validation.Delete
        c.Validation.Add xlValidateList, Formula1:=strKdo
        c.Validation.InCellDropdown = True
    Next c
End Sub

si on change la liste des cadeaux , la possibilité de validation est modifiée aussi

bonjour

un autre essai (pour les interdits de vba)

17skillz3.zip (22.76 Ko)

cordialement

Rechercher des sujets similaires à "pas tenir compte lignes vides liste deroulant"