Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1689 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [resolu]Ajouter un liste à un combobox

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[resolu]Ajouter un liste à un combobox

n°1395701
lden
Posté le 27-06-2006 à 13:56:38  profilanswer
 

Salut
 
J'aimerais ajouter une liste de mots à mon Combo box et qu'elle ne puisse pas etre modifiable, en gros faire un menu déroulant.
 
Merci pour votre aide

Message cité 1 fois
Message édité par lden le 28-06-2006 à 10:42:09
mood
Publicité
Posté le 27-06-2006 à 13:56:38  profilanswer
 

n°1395710
jpcheck
Pioupiou
Posté le 27-06-2006 à 14:17:37  profilanswer
 

lden a écrit :

Salut
 
J'aimerais ajouter une liste de mots à mon Combo box et qu'elle ne puisse pas etre modifiable, en gros faire un menu déroulant.
 
Merci pour votre aide


pour l'ajout de la liste de mots, passe par rowsource, pour la modification de cbobox, dans propriétés...

n°1395717
lden
Posté le 27-06-2006 à 14:25:19  profilanswer
 

huum mais la ca me fait passer par un user form. Ce que je souhaiterai c'est d'avoir déjà les donnée dans le code VBA de la list box

n°1395738
Paul Hood
Posté le 27-06-2006 à 14:42:57  profilanswer
 

Bonjour,
Plusieurs options :
 
1: Si tu veux mettre les valeurs de ta liste en "dur" dans le code :
   combobox1.additem valeur1
   combobox1.additem valeur2 ...
 
2 :tu n'es pas obligé d'avior un userform pour utiliser rowsource.
 
3: Tu peux dans excel (si c'est excel) créer une "liste de choix" par l'option "données" puis "validation" etc...

n°1395761
lden
Posté le 27-06-2006 à 15:06:37  profilanswer
 

merci Paul, mais le pb c'est que chaque fois qu'il y aura une action sur le combo box cela remplira indefiniement mon combobox...

n°1395766
jpcheck
Pioupiou
Posté le 27-06-2006 à 15:09:18  profilanswer
 

lden a écrit :

merci Paul, mais le pb c'est que chaque fois qu'il y aura une action sur le combo box cela remplira indefiniement mon combobox...


pas nécessairement, tu peux mettre une variable booléenne ou une valeur dans une cellule, et dans le cas où ta cells().value est à tant, tu mets à jour ta cbobox, sinon tu ne fais rien.

n°1395767
Paul Hood
Posté le 27-06-2006 à 15:10:50  profilanswer
 

Il faut en dire un peu plus...
Apparamment ton combobox est sur une feuille mais je comprend spas pourquoi il devrait ce remplir indéfiniment lorsqu'il y a une action dessus ?

n°1395768
lden
Posté le 27-06-2006 à 15:11:03  profilanswer
 

oui mais pour la premiere fois que tu passes dans ta combobox....ca ne te met pas a jour! donc rien ne t'es proposé

n°1395771
lden
Posté le 27-06-2006 à 15:13:57  profilanswer
 

Paul voila ce tout simple je souhaite juste avoir une liste deroulante avec des valeur en dur proposée un code du style::
 
Private Sub ComboBox1_Change()
ComboBox1.AddItem "valeur1"
ComboBox1.AddItem "valeur2"
End Sub
 
ici a chaque fois que le combobox change il me rajoute valeur 1 et 2 donc si le combobox change n fois j'ai n fois valeur 1 et 2 dans la liste... pas nickel.
si je choisi click il en va de meme...
 
moi je veux que le type est son menu tout pres des qu'il clique sur la fleche a droite du combobox...rien de plus

n°1395773
jpcheck
Pioupiou
Posté le 27-06-2006 à 15:16:33  profilanswer
 

lden a écrit :

oui mais pour la premiere fois que tu passes dans ta combobox....ca ne te met pas a jour! donc rien ne t'es proposé


et pourkoi ca ?
tu mets un  
 
cbobox_mousemove()
if cells(1,1).value="0" then
cbobox.additem....
cells(1,1).value = "1"
end if

mood
Publicité
Posté le 27-06-2006 à 15:16:33  profilanswer
 

n°1395775
Paul Hood
Posté le 27-06-2006 à 15:19:08  profilanswer
 

Si tu veux garder ton combobox1_change()
ajoute au début : combobox1.clear

n°1395781
lden
Posté le 27-06-2006 à 15:26:43  profilanswer
 

Merci à vous deux!!!!

n°1395796
lden
Posté le 27-06-2006 à 15:45:33  profilanswer
 

en fait le pb est pas fini car suivant cette syntaxe de code :
 
Private Sub ComboBox1_Click()
 
ComboBox1.AddItem "TOTAL"
ComboBox1.AddItem "UDP"
 
If ComboBox1.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
ElseIf ComboBox1.Value = "UDP" Then
     
Else
     
End If
ComboBox1.Clear
End Sub
 
Mon combobox ne se rempli jamais...

n°1395798
jpcheck
Pioupiou
Posté le 27-06-2006 à 15:46:53  profilanswer
 

pkoi ne passes tu pas par les mousemove ?

n°1395799
Paul Hood
Posté le 27-06-2006 à 15:47:15  profilanswer
 

il fauat mettre le combobox.clear au début de la procédure PAS A LA FIN !!

n°1395802
jpcheck
Pioupiou
Posté le 27-06-2006 à 15:48:08  profilanswer
 


de plus, lorsque tu cliques, tu ne sélectionnes pas forcément une valeur, et comme tu clear ta cbobox à la fin et pas au début comme on te l'a dit, ben fatalement ca marchera po :bounce:

n°1395829
lden
Posté le 27-06-2006 à 16:17:48  profilanswer
 

Bon, premierement je fais tout sur un dropbuttonclick
le combobox1.clear au debut c'est ok pour eviter que le menu gonfle , le probleme c'est que meme si l on selectionne une valeur, la valeur du combobox1 est toujours nulle, donc ....apres pour traiter la valeur du combobox1 on peut aller se rhabiller!
 
Moi je propse cela comme code; le probleme c'est que si l'utilisateur clique plusieurs fois sur la petite fleche deroulante du menu, le menu gonfle!
 
Private Sub ComboBox1_DropButtonClick()
Call coco
End Sub
 
Function coco()
 
Dim etat As Integer
 
ComboBox1.AddItem "TOTAL"
ComboBox1.AddItem "UDP"
etat = 0
 
If ComboBox1.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
    etat = 1
ElseIf ComboBox1.Value = "UDP" Then
    etat = 1
Else
    etat = 0
End If
If etat = 1 Then
    ComboBox1.Clear
ElseIf etat = 0 Then
 
End If
End Function
 

n°1395832
jpcheck
Pioupiou
Posté le 27-06-2006 à 16:20:59  profilanswer
 

tu sais que si tu nous donnais les informations utiles dès le début, on misèrerait moins :D
tu peux stocker la valeur de ta comboxbox dans une cellule, et après tu affiches dans ta msgbox la valeur de la cellule...

n°1395839
lden
Posté le 27-06-2006 à 16:25:18  profilanswer
 

ce bon j'ai trouvé!
 
Function coco()
 
Dim etat As Integer
 
ComboBox1.AddItem "TOTAL"
ComboBox1.AddItem "UDP"
etat = 0
 
If ComboBox1.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
    etat = 1
ElseIf ComboBox1.Value = "UDP" Then
    etat = 1
Else
    ComboBox1.Clear
    ComboBox1.AddItem "TOTAL"
    ComboBox1.AddItem "UDP"
End If
If etat = 1 Then
    ComboBox1.Clear
End If
End Function
 
 
+++ et merci pr votre aide

n°1395840
Paul Hood
Posté le 27-06-2006 à 16:25:22  profilanswer
 

Ca marche pas avec ca ?
 
If ComboBox3.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
Else
    If ComboBox3.Value = "UDP" Then MsgBox ("UDP" )
End If
 
 
ComboBox3.Clear
 
ComboBox3.AddItem "TOTAL"
ComboBox3.AddItem "UDP"

n°1395849
lden
Posté le 27-06-2006 à 16:36:44  profilanswer
 

Derniere question de mise en forme!
 
Pourquoi une fois selection faite dans le menu deroulant la valeur de la selection ne reste pas dans le combobox1...

n°1395854
jpcheck
Pioupiou
Posté le 27-06-2006 à 16:39:51  profilanswer
 

lden a écrit :

ce bon j'ai trouvé!
 
Function coco()
 
Dim etat As Integer
 
ComboBox1.AddItem "TOTAL"
ComboBox1.AddItem "UDP"
etat = 0
 
If ComboBox1.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
    etat = 1
ElseIf ComboBox1.Value = "UDP" Then
    etat = 1
Else
    ComboBox1.Clear
    ComboBox1.AddItem "TOTAL"
    ComboBox1.AddItem "UDP"
End If
If etat = 1 Then
    ComboBox1.Clear
End If
End Function
 
 
+++ et merci pr votre aide


parce que si tu as une valeur de sélectionnée tu as mis état a 1 et donc tu clear ta cbobox...

n°1395855
lden
Posté le 27-06-2006 à 16:40:35  profilanswer
 

oue je suis con moi!!!

n°1395860
lden
Posté le 27-06-2006 à 16:42:11  profilanswer
 

ca devient un casse tete ce truc!

n°1395861
jpcheck
Pioupiou
Posté le 27-06-2006 à 16:43:41  profilanswer
 

lden a écrit :

ca devient un casse tete ce truc!


non, dès l'instant que tu respectes ton idée de départ et que tu suis ton plan, ca marche tout seul ^^

n°1395894
Paul Hood
Posté le 27-06-2006 à 17:21:19  profilanswer
 

Le problème maintenant c'est de savoir ce que tu veux faire et avec quoi ?
Avec _change, _click, ou _DropButtonClick ?
Et pourquoi tu veux mettre à jour ta liste à chaque fois ?

n°1395905
lden
Posté le 27-06-2006 à 17:32:12  profilanswer
 

et bien ma liste ce un menu deroulant!
le mec a le choix entre plusieurs valeur.
L'action la plus banale qu'il fasse c'est donc actionner avec la fleche a droite(DropButtonClick) pour choisir soit UDP soit TOTAL soit...
 
et je veux qu'il voit qd meme ce qu'il a choisi; le probleme c'est que le ComboBox1.Clear efface la valeur après donc bien que la valeur est été prise en compte le type n'a pas moyen de visualiser ce qu'il a choisi... c'est donc pour cela que ddans un autre post je demande comment faire une pause ....pour que son choix reste affiché pendant un instant!!!!!!!!

n°1396250
Paul Hood
Posté le 28-06-2006 à 08:10:20  profilanswer
 

Si tes valeurs ne bougent pas "Total" et UDP" pourquoi ne pas les mettre dans ton combobox au moment où tu active la feuille. Tu le fais une fois pour toute.
 
Private Sub Worksheet_Activate()
  ComboBox1.AddItem "TOTAL"
  ComboBox1.AddItem "UDP"
  Combobox1.text="TOTAL" 'pour faire afficher la valeur
End Sub
 
et après tu gères le changement de valeur dans ta combobox
Private Sub ComboBox1_Change()
  If ComboBox1.Value = "TOTAL" Then
    MsgBox ("TOTAL" )
  Else
    If ComboBox1.Value = "UDP" Then MsgBox ("UDP" )
  End If
end sub
 
Ca doit faire ce que tu veux si j'ai j'ai compris !!!

n°1396309
lden
Posté le 28-06-2006 à 10:15:30  profilanswer
 

ce bon paul j'ai géré avec une tempo....
Je te remercie bcp!
 
bonne journée

n°1396320
jpcheck
Pioupiou
Posté le 28-06-2006 à 10:26:00  profilanswer
 

pense à clore le topic stp =)

n°1396340
acrosomia
Posté le 28-06-2006 à 10:42:11  profilanswer
 

Bonjour!
 
Je viens de lire ce topic et j'ai une petite question. en gros, je souhaite faire une zone de liste déroulante (via la barre Formulaires de Excel) avec des données non présente sur ma feuille. En effet, le remplissage de la liste déroulante en passant par Format de controle (clic droit)/Controle impose de préciser une plage de données de type "range" qui préexiste. en gros je voudrais remplir ma liste avec des données qui ne figurent pas dans des cellules de ma feuille Excel.
 
merci pour votre aide

n°1396345
jpcheck
Pioupiou
Posté le 28-06-2006 à 10:43:49  profilanswer
 

ici on n'utilise pas de cellules pour remplir les items de lla cbobox tu remarqueras... :pt1cable:

n°1396348
lden
Posté le 28-06-2006 à 10:46:45  profilanswer
 

ok voila le code:
 
Private Sub ComboBox1_DropButtonClick()
Call coco
End Sub
 
Function coco()
 
Dim etat As Integer
 
ComboBox1.AddItem "Ta premiere valeur"
ComboBox1.AddItem "Ta seconde valeur" 'autant que tu veux!!
 
If ComboBox1.Value = "V1" Then
    PauseTimer (3)    
' c'est la seule solution que j'ai trouvé pour que tu  saches ce que tu 'selectionnes
    ComboBox1.Clear
ElseIf ComboBox1.Value = "V2" Then
    PauseTimer (3) 'pause de trois seconde pr freezer ton combobox
    ComboBox1.Clear
Else
    ComboBox1.Clear
    ComboBox1.AddItem "V1"
    ComboBox1.AddItem "V2"
End If
 
End Function
 
Sub PauseTimer(ByVal nSecond As Single)
Dim t0 As Single
     'temps de référence
     t0 = Timer
     'boucle d'attente
     Do While Timer - t0 < nSecond
           Dim dummy As Integer
           dummy = DoEvents()
           'si on dépasse minuit,il faut
           'retrancher un jour
           If Timer < t0 Then
               t0 = t0 - 24 * 60 * 60
           End If
     Loop
End Sub
 
 
@++

n°1396349
lden
Posté le 28-06-2006 à 10:47:35  profilanswer
 

justement jpcheck!  mon code correspond a sa demande!

n°1396350
acrosomia
Posté le 28-06-2006 à 10:47:37  profilanswer
 

en fait, je crois qu'il faut plutot utiliser la "boite à outils de controles" pour pouvoir éditer le code ss VBA, non? c'est impossible en utilisant une zone de liste déroulante de la barre "formulaires" (on peut récupérer le code?)?


Message édité par acrosomia le 28-06-2006 à 10:48:57
n°1396352
lden
Posté le 28-06-2006 à 10:48:52  profilanswer
 

oui acrosomia tu fais une comobobox, puis tu mets le code ss VBA que je t'ai donné....

n°1396355
acrosomia
Posté le 28-06-2006 à 10:52:33  profilanswer
 

merci. et à quoi sert le champ (après un clic droit) "objet Zone de liste modifiable>edition"? on peut taper des trucs dans la cobobox après, on dirait...

n°1396358
lden
Posté le 28-06-2006 à 10:55:35  profilanswer
 

bon, ce trucs tu veux les rentrer dans ta combobox ou tu veux qu'ils soient deja proposé dans ton menu?
d'autre part je ne vois pas ou tu as trouvé "objet Zone de liste...."

n°1396365
Paul Hood
Posté le 28-06-2006 à 11:02:07  profilanswer
 

34 messages pour écrire et lire dans un combobox !!!!
 
Combien pour générer des controles en dynamique ???

n°1396371
acrosomia
Posté le 28-06-2006 à 11:06:53  profilanswer
 

ce que je veux:
1/sur une sheet excel, l'opérateur sélectionne une des valeurs proposées dans la liste déroulante (en fait mes valeurs sont 'uniforme' et 'variable' et ne bougeront JAMAIS, elles sont en "dur" ). le choix d'une des valeurs doit en suite activer une cascade d'evenements (style bloquer des cellules ou ecrire qqch de special ds une cellule spécifique etc...).
Bien sur, qd lutilisateur sauvegardera sa sheet, la dernière valeur selectionnée de la liste doit rester à la prochaine ouverture de la feuille excel (et non etre resetée).
 
2/pour "objet zone de ..." qd tu crées ton objet conbobox sur ta feuille, tu le selectionnes (en étant en mode création) et tu fais clic droit et bingo! je sais pas à quoi ça sert...
 
3/pour mon cas, un controle ListBox ne suffirait-il pas?


Message édité par acrosomia le 28-06-2006 à 11:11:07
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [resolu]Ajouter un liste à un combobox

 

Sujets relatifs
[RESOLU] requete avec condition[resolu]Changer le nom d'un fichier a l'enregistrement
[resolu] Comment enregistrer un click de souris ???[Résolu] [MySQL] Comparaison entre 2 tables
[resolu]enregister un fichier xls mis a jour.Enregistrement liste chaînée sur .bin
question bizarre résolu ![RESOLU] afficher une liste sauf un
[ résolu ] SDL_image.h => sous dev-C++ 
Plus de sujets relatifs à : [resolu]Ajouter un liste à un combobox


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR