Liste déroulante

L

LEKSA

Guest
Salu...

Ce ke je cherche a déjà dû etre expliqué de nombreuses fois mais je ne trouve aucune explication la dessus, si quelqun peut maider ou me rediriger vers un liens ...

Cela concerne la liste déroulante...

La plage de cellule liée à ma liste déroulante contient des vides...

je voudrais que ces vides disparaissent dans ma liste déroulante ...

Voila.

Merci davance.
 

geronimo

XLDnaute Nouveau
tu entres les differentes valeurs que tu veux dans ton menu déroulant quelquepart sur ta feuille de calcul.

ensuite a l'endroit où tu veux un menu déroulant tu selectionne la case puis Données - validation

la une fenêtre s'ouvre tu selectionne autorise 'liste déroulante' puis tu lui indique où se trouve ta liste et voilà...

j'espère avoir été clair.

PS : sois un peu plus explicite dans tes questions car là j'espère avoir répondu à ta question mais j'avoue que c'etait confus donc j'ai essayé mais ca n'est peut etre pas ca que tu souhaites
 

porcinet82

XLDnaute Barbatruc
Salut Leksa, Geronimo,

Comme la deja dit Geronimo, c'est vrai que ta demande n'est pas tres precise, mais je te joint un fichier dans lequel les données a mettre dans la combo sont dans la plage A1:A13 (avec des vides). Lorsque tu cliques sur la combo, tu verras que seule les valeurs non vides s'y trouvent. Pour le code, va voir dans le module de la feuil1.

[file name=LEKSA.zip size=8186]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/LEKSA.zip[/file]

Tiens nous au courant.

@+
 

Pièces jointes

  • LEKSA.zip
    8 KB · Affichages: 14
P

passe_yves

Guest
bonjour Leksa, géronimo et porcinet.

ce sujet m'intéresse je suis confronté également aux blancs dans la liste de validation !
et même quand on coche la case ignorer les blancs il y sont quand même grrrrr !!!!

alors la solution que tu apportes procinet ma séduite sauf que je n'arrive pas à la faire fonctionner correctement !

je m'explique :
au départ rien ne s'affiche dans la combo !
ensuite en bidouillant un peu ( en allant dans l'éditeur VBA et en lancant manuellement la macro ok les valeurs apparaissent bon sauvé

(mais voilà je teste encore hihihihi j'suis un vicieux moua lol )

et là je click sur la valeur de mon choix et elle s'efface !!!!!

j'ai ensuite changé click par double click sa marche mieux mais il faut le savoir sinon les valeurs de la combo peuvent ne pas être les bonnes !

peut on apporter des améliorations simples ( comprehensible pour moi lol ) qui répondent à notre demande ?

Merci encore
Yves
 

porcinet82

XLDnaute Barbatruc
re, salut passe_yves,

Effectivement je veins de reregarder mon fichier, et c'est vrai que c'est complétement con d'avoir mis le code dans Private Sub ComboBox1_Click()

En fait, il vaut mieux directement le mettre dans le module ThisWorkbook comme suit comme ca, il est initialisé des l'ouverture du fichier.
Code:
Private Sub Workbook_Open()
Dim i As Integer

ComboBox1.Clear
For i = 1 To 13
    If Not Cells(i, 1).Value = '' Then
        ComboBox1.AddItem (Cells(i, 1).Value)
    End If
Next i
End Sub

Apres si tu as d'autres questions, ou une question particulière, post la, on verra ce qu'on peu faire.

@+
 

yves_passe

XLDnaute Junior
re bonjour

hic qu'est ce que j'ai fais ça ne marche pas ????

désolé de te déranger mais je suis vraiment néophite en VBA j'essaye de comprendre mais c'est pas évident.

la première solution est intéressente car elle permet de modifier la liste de choix en cours d'utilisation la liste n'est pas forcément figée. alors que si on place le code dans thisworkbook elle l'est ou alors il faut quitter le fichier pour que la combo se mette à jour enfin je penses car je n'ai pas réussi à le faire fontionner !!!!!!

Merci
Yves
 

porcinet82

XLDnaute Barbatruc
C'est vrai, tout code a ces avantages et inconvénients, il faut simplement trouver le code adapté a ces besoins. SI tu veux que la combo soit 'dynamique', je te propose de mettre le code tout simplement comme ceci:

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Byte
Dim nom_feuille As String

ComboBox1.Clear
For i = 1 To 13
    If Not Cells(i, 1).Value = '' Then
        ComboBox1.AddItem (Cells(i, 1).Value)
    End If
Next i
End Sub

Ainsi, ta combo est réinitialisée a chaque fois que tu change de cellule sur la feuille. Je pense que ce code devrait te convenir, si ce n'etait pas le cas, refais signe.

@+
 

yves_passe

XLDnaute Junior
Re Re boujour

Merci c'est exactement ce que je cherchais et en plus je comprends comment ca marche !

je m'excuse auprès de leksa d'avoir squaté son post aussi sauvagement mais j'espère que commme moi tu as appris beaucoup avec ces messages.

bonne fin de dimanche
Yves
 

Discussions similaires

Réponses
2
Affichages
312

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb