FORUM Tom's Hardware » Programmation » VB / VBA / VBS » [non résolu^^]Récupérer valeur d'une liste déroulante (vba excel)
 

[non résolu^^]Récupérer valeur d'une liste déroulante (vba excel)

Il y a 217 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : [non résolu^^]Récupérer valeur d'une liste déroulante (vba excel)
 
Plus d'informations

Bonjour,
 
Voilà quelques jours que je cherche la méthode pour récupérer la valeur d'une liste déroulante (objet de formulaire), insérée directement depuis une feuille de calcul, et non un  userform.
 
 
Je cherche également si il est possible de mettre les données dans cette liste sans passer par une sélection de cellules.
 
Merci d'avance
 
(ps : kangol t'énerve pas :D)


Message édité par dtom le 25-07-2007 à 20:27:36

Profil : Pointeur
Plus d'informations

bha c'est pas moi qui vais m'enerver, c'est zeb :o


---------------
Da Bidz Triad©®™: Bidz Interceptor
.:: Smileyz version 4.2 [050625]::. -- Code source disponible sous licence GPL.
[u
Plus d'informations

;)

zeb
Profil : Modérateur libre
Plus d'informations

zeb is zen ...
 
Je ne comprends pas bien les questions. Pourrais-tu détailler ?


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Donc, j'ai créer une liste déroulante dans une feuille excel.
 
Et je voudrais récuperer la valeur sélectionnée de la liste déroulante en code VBA.
 
Ce qui donne ca :
 
http://img515.imageshack.us/img515/9620/listedermacrokc5.jpg


Message édité par dtom le 26-07-2007 à 13:22:24
zeb
Profil : Modérateur libre
Plus d'informations

A bas quand c'est bien expliqué ! :o
 
C'est ça que tu cherches ?

Code :
  1. Workbooks("Classeur1" ).Worksheets("Feuil1" ).OLEObjects("ComboBox1" ).Object.Value


 
Y'a plus qu'à mettre [RESOLU] dans le titre :sol:


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Merci pour la réponse, mais ... :(
 
J'ai mis ceci :
 

Code :
  1. test_var = Worksbooks("Valeurs en cours 0002.xls" ).Worksheets("Macros" ).OLEObjects("variation_stock" ).Object.value


 
Et j'ai une erreur :  
"erreur d'exécution 1004
Imopssible de lire la propriété OLEObjects de la classe Worksheet
 
ps : j'utilise Excel 2003


Message édité par dtom le 26-07-2007 à 14:35:51
zeb
Profil : Modérateur libre
Plus d'informations

[PAS ENCORE RESOLU]

 


Essaie ça :

Code :
  1. Dim c As OLEObject
  2.    
  3. For Each c In Worksbooks("Valeurs en cours 0002.xls" ).Worksheets("Macros" ).OLEObjects
  4.     Debug.Print c.Name
  5. Next


Le vrai nom de ta combo devrait apparaître dans la fenêtre DEBUG.


Message édité par zeb le 26-07-2007 à 15:01:55

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

je vien de trouver une solution de secours, mais pas trés propre, cela consite à liée une cellule, et faire des conditions sur le code ( ligne 1, 2 et 3, pour mon cas précis, c'est ok ).
 
je teste quand même ton code, pour infos ;)

Plus d'informations

tu peux m'expliquer comment tu a creer une liste déroulante sur excel sans faire une userform ?


---------------

 

 

zeb
Profil : Modérateur libre
Plus d'informations

Ben en posant une combobox depuis la barre d'outils "Boîte à outils Contrôles" [:spamafote]


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Le code que tu ma donné ne fesait rien apparaitre en mode debug (F8).

zeb
Profil : Modérateur libre
Plus d'informations

:whistle:
MSVB - Menu Affichage/Fenêtre Exécution [Ctrl+G]


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

J'ai rien qui apparait :o

zeb
Profil : Modérateur libre
Plus d'informations

a écrit :

Ben en posant une combobox depuis la barre d'outils "Boîte à outils Contrôles" [:spamafote]


caramou a écrit :

J'ai rien qui apparait :o

 

Han, tu n'as pas utilisé la barre d'outils "Boîte à outils Contrôles" mais la barre "Formulaire" !
Ton composant ne s'appelle pas "Combobox1" mais "Drop Down 1" !

 

Ceci pour voir ton composant :

Code :
  1. Dim s As Shape
  2. With Workbooks("Classeur1" ).Worksheets("Feuil1" )
  3.     Debug.Print "Nombre d'objets sur la feuille : " & Shapes.Count
  4.     For Each s In .Shapes
  5.         Debug.Print "- "; s.Name
  6.     Next
  7. End With
 

Donc la réponse a ton problème :

  • Ta solution de contournement est LA solution.


Tips: Utilise les objets OLE de la barre d'outils "Boîte à outils Contrôles".


Message édité par zeb le 27-07-2007 à 11:59:21

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

ok, merci ^^

zeb
Profil : Modérateur libre
Plus d'informations

Est-ce résolu maintenant ? :)


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Bonjour,
 
J'ai exactement le même problème que dtom (1 an après sur excel 2007).
 
Pareil, j'ai dessiné une combobox avec controles, je l'ai remplie avec une plage de mes feuilles.
Mais j'ai besoin de retrouver la valeur choisie dans la combo pour faire un tri sur une autre page et ainsi afficher un beau graphe.
 
Voici le code qui me permet de faire le tri:

    Sheets("ASD DPQR Tier 1" ).Select
    Rows("1:1" ).Select
    Selection.AutoFilter
    ActiveSheet.Range("$A$1:$DG$176" ).AutoFilter Field:=10
    Sheets("Graph Highlight" ).Select
     
    Sheets("ASD DPQR Tier 1" ).Select
    Range("J1" ).Select
    ActiveSheet.Range("$A$1:$DG$176" ).AutoFilter Field:=10, Criteria1:= _
        "LO1_R1X3_12"

'Ici entre guillemets, une des valeurs que j'aimerais récupérer de ma combo.
'J'ai déjà essayé avec Combobox1.Value, mais comme je ne connais pas le nom de la combo ça ne sert à rien.
'Pour le code ci dessus, pour retrouver le nom, je n'arrive pas à le faire marcher.
'Drop Down 1 ne marche pas non plus.


    Sheets("Graph Highlight" ).Select

 
Merci d'avance pour vos réponses,
 
Charly
 

zeb
Profil : Modérateur libre
Plus d'informations

Salut Charly,
 
Vire-moi ces couleurs infâmes. Tu en profiteras pour utiliser la balise [code], conformément au règlement. Je suis sûr que tu attendais d'autres commentaires :/


---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

Bonjour,  
 
J'ai exactement le même problème que dtom (1 an après sur excel 2007).  
 
Pareil, j'ai dessiné une combobox avec controles, je l'ai remplie avec une plage de mes feuilles.  
Mais j'ai besoin de retrouver la valeur choisie dans la combo pour faire un tri sur une autre page et ainsi afficher un beau graphe.  
 
Voici le code qui me permet de faire le tri:  
 

Code :
  1. Sheets("ASD DPQR Tier 1" ).Select
  2.     Rows("1:1" ).Select
  3.     Selection.AutoFilter
  4.     ActiveSheet.Range("$A$1:$DG$176" ).AutoFilter Field:=10
  5.     Sheets("Graph Highlight" ).Select
  6.    
  7.     Sheets("ASD DPQR Tier 1" ).Select
  8.     Range("J1" ).Select
  9.     ActiveSheet.Range("$A$1:$DG$176" ).AutoFilter Field:=10, Criteria1:= _
  10.         "LO1_R1X3_12"
  11.     Sheets("Graph Highlight" ).Select


 
'Ici entre guillemets ("LO1_R1X3_12" ), une des valeurs que j'aimerais récupérer de ma combo.  
'J'ai déjà essayé avec Combobox1.Value, mais comme je ne connais pas le nom de la combo ça ne sert à rien.  
'Pour le code ci dessus, pour retrouver le nom, je n'arrive pas à le faire marcher.  
'Drop Down 1 ne marche pas non plus.  
 
 
Merci d'avance pour vos réponses,  
 
Charly  
 
 
PS: C'est bon comme ça?
oui c'est sur, j'ai attendu une réponse toute l'après midi, au moment où j'allais éteindre l'ordi, je reçoit le message, tout excité j'ouvre et non pas de réponse :-(

zeb
Profil : Modérateur libre
Plus d'informations