zone de liste déroulante

mousocgen

XLDnaute Nouveau
salut à tous
un petit détail mais qui a son importance
j'ai créé une liste déroulante
le pb c'est les 4 données possibles se répètent à chaque fois que j'en choisi une ce qui rallonge la liste avec les mêmes données certes mais ca rend le tout un peu moins visible.
Je m'explique
d'abord la liste m'affiche :
a
b
c
d

dès que je choisis d par exemple, la liste devient au coup d'après
a
b
c
d
a
b
c
d

Comment y remédier ? J'ai testé toutes les propriétés de la zone de liste en les modifiant mais ca n'a aucun impact?. je crois que le pb vient de la définition des items en début du code de la liste.
Mais comment les déclarer pour qu'il les mette une seule fois ?

merci
 

jeanpierre

Nous a quitté
Repose en paix
Re : zone de liste déroulante

Bonsoir mousocgen, re le forum,

Dans une liste déroulante, ce n'est pas possible, ou alors tu as un code VBA derrière, mal pensé ou mal formulé.

Peut-être qu'en nous déposant ton fichier (sans données confidentielles) Zippé, ce serait plus facile...

A te lire.

Jean-Pierre
 

mousocgen

XLDnaute Nouveau
Re : zone de liste déroulante

salut voici le code derrière ma zone de liste déroulante

Private Sub ComboBox1_Change()
ComboBox1.AddItem "s1"

ComboBox1.AddItem "s1"
ComboBox1.AddItem "s2"
ComboBox1.AddItem "s3"
ComboBox1.AddItem "s4"
ComboBox1.AddItem "s5"
ComboBox1.AddItem "s6"
ComboBox1.AddItem "s7"
ComboBox1.AddItem "s8"
ComboBox1.AddItem "s9"
ComboBox1.AddItem "s10"
ComboBox1.AddItem "s01"
ComboBox1.AddItem "s02"
ComboBox1.AddItem "s03"
ComboBox1.AddItem "s04"
ComboBox1.AddItem "s05"
ComboBox1.AddItem "s06"
ComboBox1.AddItem "s07"
ComboBox1.AddItem "s08"
ComboBox1.AddItem "s09"
ComboBox1.AddItem "s010"

If ComboBox1.Value = "s1" Then
Call libellé_s1
End If

etc....

Et le problème c'est qu'il me répète à chaque fois les données s1-> S10 et s01->s010

Merci.
 

Catrice

XLDnaute Barbatruc
Re : zone de liste déroulante

Bonjour,

Essaye ceci : ComboBox1.Clear au début de ton code.


Private Sub ComboBox1_Change()
ComboBox1.Clear
ComboBox1.AddItem "s1"
ComboBox1.AddItem "s2"
ComboBox1.AddItem "s3"
ComboBox1.AddItem "s4"
ComboBox1.AddItem "s5"
ComboBox1.AddItem "s6"
..............
 
Dernière édition:

mousocgen

XLDnaute Nouveau
Re : zone de liste déroulante

salut
effectivement ca ne répète pas les données
mais ça me désactive mes macros :

Private Sub ComboBox1_Change()

ComboBox1.Clear

ComboBox1.AddItem "s1"

If ComboBox1.Value = "s1" Then
MsgBox ("popo")
End If


End Sub

Lorsque je décommente la ligne "ComboBox1.Clear", le message popo ne s'affiche plus

merci

Ps: popo est un test bien sur. Normalement j'appelle des macros derrière
 

Catrice

XLDnaute Barbatruc
Re : zone de liste déroulante

Re,

Tu peux tester quelque chose dans ce style :

Private Sub ComboBox1_Change()
If ComboBox1.Value = "s1" Then
MsgBox ("popo")
End If
End Sub

Private Sub ComboBox1_Enter()
ComboBox1.Clear
ComboBox1.AddItem "s1"
End Sub
 
Dernière édition:

mousocgen

XLDnaute Nouveau
Re : zone de liste déroulante

salut
merci avant tout de ton aide
j'ai essayé mais c'est le même problème
Par contre j'ai une parade

Private Sub ComboBox1_Change()


ComboBox1.AddItem "s1"
ComboBox1.AddItem "s2"
ComboBox1.AddItem "s3"
ComboBox1.AddItem "s4"
ComboBox1.AddItem "s5"
ComboBox1.AddItem "s6"
ComboBox1.AddItem "s7"
ComboBox1.AddItem "s8"
ComboBox1.AddItem "s9"
ComboBox1.AddItem "s10"
ComboBox1.AddItem "s01"
ComboBox1.AddItem "s02"
ComboBox1.AddItem "s03"
ComboBox1.AddItem "s04"
ComboBox1.AddItem "s05"
ComboBox1.AddItem "s06"
ComboBox1.AddItem "s07"
ComboBox1.AddItem "s08"
ComboBox1.AddItem "s09"
ComboBox1.AddItem "s010"

If ComboBox1.Value = "s1" Then
Call libellé_s1
ComboBox1.Clear
End If

La le problème est réglé mais il en reste toujours un, Com d'hab !
En effet sur le champ de la zone de liste il n'y a plus s1 ou s2
donc l'utilisateur ne peut pas voir le choix qu'il a fait !!
Pointilleux, relouuuuu mais nécessaire !
 

Catrice

XLDnaute Barbatruc
Re : zone de liste déroulante

Bonsoir,

Ci-joint un fichier de test.
Je ne reproduis pas les problemes dont tu parles ...
Les elements de la liste restent visibles dans la Combo et les Msgbox apparaissent ...

Il faudrait que tu fournisses un exemple de ton Code.
 

Pièces jointes

  • Classeur1.xls
    26.5 KB · Affichages: 58
  • Classeur1.xls
    26.5 KB · Affichages: 58
  • Classeur1.xls
    26.5 KB · Affichages: 65

mousocgen

XLDnaute Nouveau
Re : zone de liste déroulante

Private Sub ComboBox1_Change()


ComboBox1.AddItem "s1"
ComboBox1.AddItem "s2"
ComboBox1.AddItem "s3"
ComboBox1.AddItem "s4"
ComboBox1.AddItem "s5"
ComboBox1.AddItem "s6"
ComboBox1.AddItem "s7"
ComboBox1.AddItem "s8"
ComboBox1.AddItem "s9"
ComboBox1.AddItem "s10"
ComboBox1.AddItem "s01"
ComboBox1.AddItem "s02"
ComboBox1.AddItem "s03"
ComboBox1.AddItem "s04"
ComboBox1.AddItem "s05"
ComboBox1.AddItem "s06"
ComboBox1.AddItem "s07"
ComboBox1.AddItem "s08"
ComboBox1.AddItem "s09"
ComboBox1.AddItem "s010"

If ComboBox1.Value = "s1" Then
Call libellé_s1
ComboBox1.Clear
End If

If ComboBox1.Value = "s2" Then
Call libellé_s2
ComboBox1.Clear
End If

If ComboBox1.Value = "s3" Then
Call libellé_s3
ComboBox1.Clear
End If

If ComboBox1.Value = "s4" Then
Call libellé_s4
ComboBox1.Clear
End If

If ComboBox1.Value = "s5" Then
Call libellé_s5
ComboBox1.Clear
End If

If ComboBox1.Value = "s6" Then
Call libellé_s6
ComboBox1.Clear
End If

If ComboBox1.Value = "s7" Then
Call libellé_s7
ComboBox1.Clear
End If

If ComboBox1.Value = "s8" Then
Call libellé_s8
ComboBox1.Clear
End If

If ComboBox1.Value = "s9" Then
Call libellé_s9
ComboBox1.Clear
End If

If ComboBox1.Value = "s10" Then
Call libellé_s10
ComboBox1.Clear
End If

'séparation'

If ComboBox1.Value = "s01" Then
Call libellé_s01
ComboBox1.Clear
End If

If ComboBox1.Value = "s02" Then
Call libellé_s02
ComboBox1.Clear
End If

If ComboBox1.Value = "s03" Then
Call libellé_s03
ComboBox1.Clear
End If

If ComboBox1.Value = "s04" Then
Call libellé_s04
ComboBox1.Clear
End If

If ComboBox1.Value = "s05" Then
Call libellé_s05
ComboBox1.Clear
End If

If ComboBox1.Value = "s06" Then
Call libellé_s06
ComboBox1.Clear
End If

If ComboBox1.Value = "s07" Then
Call libellé_s07
ComboBox1.Clear
End If

If ComboBox1.Value = "s08" Then
Call libellé_s08
ComboBox1.Clear
End If

If ComboBox1.Value = "s09" Then
Call libellé_s09
ComboBox1.Clear
End If

If ComboBox1.Value = "s010" Then
Call libellé_s010
ComboBox1.Clear
End If

'ComboBox1.Clear


End Sub


voilà. quand j'efface tous les combobox clear de mes conditions if la liste se répète.

Si je mets un combobox clear tout en haut (en les supprimant de mes conditions if) ca me désactive
 

Catrice

XLDnaute Barbatruc
Re : zone de liste déroulante

Bonsoir,

Ci-joint un exemple modifié/adapté ...
Je n'ai pas de probleme de fonctionnement (d'apres ce que j'ai compris).
Peux tu tester l'exemple, adapter ce que tu souhaites et le reposter avec le probleme que tu rencontres le cas echeant.
Que je comprenne mieux ton probleme...
 

Pièces jointes

  • Classeur1.xls
    36 KB · Affichages: 48
  • Classeur1.xls
    36 KB · Affichages: 51
  • Classeur1.xls
    36 KB · Affichages: 47

Discussions similaires

Statistiques des forums

Discussions
312 836
Messages
2 092 654
Membres
105 479
dernier inscrit
chaussadas.renaud