alimentation d'une liste déroulante

  • Initiateur de la discussion Initiateur de la discussion Hugues
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hugues

XLDnaute Impliqué
Bonjour Le Forum,

Je souhaiterais alimenter la liste déroulante en fonction des valeurs contenues dans les cellules A8 J8
Ce nombre de valeurs peut varier (maxi J8) ;
Je souhaiterais donc limiter la liste au nombre exact de valeurs.

Merci

Hugues
 

Pièces jointes

Re : alimentation d'une liste déroulante

Bonjour Eric
Je souhaiterais ne plus lier la mise à jour de la liste déroulante avec l'activation de la feuille.
De plus je souhaiterais limiter l'alimentation de la liste déroulante aux seules données contenues dans la zone A8 - J8, afin d'éliminer les blancs dans la liste.

Merci par avance,

Hugues
 
Re : alimentation d'une liste déroulante

Bonjour Hugues
Bonjour le fil
Bonjour le forum

une autre approche
VB:
Private Sub Worksheet_Activate()
Dim cel As Range
Dim DerCol As Byte
With ActiveSheet
DerCol = .Cells(8, .Columns.Count).End(xlToLeft).Column
      For Each cel In .Range(.Cells(8, 1), .Cells(8, DerCol))
      If cel <> "" Then
       .ComboBox1.AddItem cel
      End If
      Next cel
End With
End Sub
Bonne Journée
Amicalement
Jean Marie
 
Re : alimentation d'une liste déroulante

Bonjour Jean Marie,

Merci pour l'aide.
Toutefois, j'ai appliqué ton code à mon projet. Toutefois, j'ai l'impression qu'à chaque ouverture de la feuille, les données s'empile dans la liste de choix.
Je pense qu'il faudrait au début du code mettre à zéro la liste puis alimenter la liste.
Comment Faire ?

Merci par avance,

Hugues
 
Re : alimentation d'une liste déroulante

Re
Il te suffit de mettre ceux ci
Private Sub Worksheet_Activate()
Dim cel As Range
Dim DerCol As Byte
With ActiveSheet
.ComboBox1.Clear
DerCol = .Cells(8, .Columns.Count).End(xlToLeft).Column
For Each cel In .Range(.Cells(8, 1), .Cells(8, DerCol))
If cel <> "" Then
.ComboBox1.AddItem cel
End If
Next cel
End With
End Sub
Bonne Journée
Amicalement
Jean Marie
 
Re : alimentation d'une liste déroulante

Merci Jean Marie
Ca marche impeccable

Petite variante.

La mise à jour de la liste déroulante est liée à l'activation de la feuille. Ce qui entraine qu'après avoir modifié la zone qui sert à alimenter la liste, je doit fermer la feuille et l'a ré ouvrir pour mettre à jour la liste.

Pourrait - on prévoir un autre évènement pour que la mise à jour se fasse ? Par exemple lors de l'activation de la liste déroulante ?

Merci pour la grande aide

Hugues
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
363
Réponses
0
Affichages
188
Retour