Creation d'une combobox

gojaru Messages postés 29 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 20 septembre 2006 - 27 mars 2006 à 14:55
gojaru Messages postés 29 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 20 septembre 2006 - 28 mars 2006 à 17:47
Bonjour a tous, je suis étudiant en alternance, et je viens d'avoir un ptetit projet a faire pour la fin de la semaine ( j'aimerais mm le finir demain ). Je dois en premier temps faire un menu déroulant sur une feuille Excel. Ce menu contiendrais une liste d'Ip . Je ne vais pas tout expliqué car déja si j'arrive à faire la liste je serais content, car je n'y connais rien du tout en programation. J'essaye de prendre pied sous vba pour l'instant. J'ai vu qu'il fallait utiliser Combobox, mais je n'arrive pas a savoir comment nourir ma liste déroulante, avec le contenu d'un partie d'une colonne. j'ai vu qu'elque exemple, mais cela reste flou quand même. Pouriez vous m'aiguiller?

5 réponses

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
27 mars 2006 à 20:46
bonsoir

ci joint 3 methodes pour remplir une ComboBox placée dans une feuille Excel

Sub ComboBox_AddItem()
Dim x As Integer
For x = 1 To Sheets("Feuil1").Range("A65536").End(xlUp).Row
Sheets("Feuil1").ComboBox1.AddItem Range("A" & i)
Next x
End Sub





Sub ComboBox_RowSource()
Dim Plage As String
Plage = Range("A1:A" & Range("A65536").End(xlUp).Row).Address
Sheets("Feuil1").ComboBox1.RowSource = "Feuil1!" & Plage
End Sub





Sub ComboBox_List()
Dim Plage As Range, Cell As Range
Dim i As Integer
Dim Tableau() As String


Set Plage = Range("A1:A" & Range("A65536").End(xlUp).Row)


ReDim Tableau(1 To Plage.Count)
For Each Cell In Plage
i = i + 1
Tableau(i) = Cell
Next


Sheets("Feuil1").ComboBox1.List = Tableau
End Sub

bonne soiree
michel
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
28 mars 2006 à 10:12
Question bête, si c'est pour un projet, on t'impose le code ?
Parce que (et c'est mon combat quotidien ^^), pourquoi faire quelque chose en code gère déjà très bien tout seul avec ses fonctions de base ?

Sur une feuille de paramètrage par exemple, tu rentres la liste de toutes tes adresses IP (par exemple, de A1 à A10).
Tu sélectionnes cette zone, tu fais Menu Insertion\Nom\définir
Tu donnes un nom à la zone (par ex : ListeIP)
Et le tour est joué.

Tu choisis une cellule où tu veux, qui sera ta comboxbox. Puis Menu Données\Validation. Dans l'onglet Option, dans la combobox Autoriser, tu choisis liste et dans la source tu tapes "=<Nom de la zone de Nom>", dans notre ex., tu tapes "=ListeIP".

Et c'est tout. Quand tu cliques dans la cellule, tu as ta combobox.

Pas de code, rien, la mise à jour de la liste des IP se fait juste par la mise à jour de la zone de nom (et encore, si tu insères tes IP en faisant insérer une ligne dans ta feuille de paramètrage, ça se mettra à jour automatiquement).

Molenn

faites comme moi, dites non au codage systématique !! :p
0
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
28 mars 2006 à 10:17
Pfff, quand est ce qu'on pourra éditer ses messages ?

Ma première phrase est :
"Parce que (et c'est mon combat quotidien ^^), pourquoi faire quelque chose en code qu'Excel gère déjà très bien tout seul avec ses fonctions de base ?"
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
28 mars 2006 à 13:23
Bien d'accord avec Molenn, j'avais aussi une technique moins lourde que Michel mais celle de Molenn est plus simple, même pour l'esthétique !!!

Comme quoi, les choses les plus simples : on y pense pas forcémment !
Mais je pense que c'est quand même bien de connaître les autres méthodes car suivant le cas de figure, il faut plusieurs combine.

Bien à vous...

Mortalino
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gojaru Messages postés 29 Date d'inscription mercredi 24 août 2005 Statut Membre Dernière intervention 20 septembre 2006
28 mars 2006 à 17:47
Sa c'est un minuscule projet que j'ai la, c a faire dans la semaine.... après sa m'aide à comprendre la programation de classe, car j'ai un GROS projet de fin d'étude a faire en Csharp......

Dim addresses(50) As String


Private Sub ComboBox1_Change()

Worksheets("config").Cells(12, 6).Value = addresses(ComboBox1.ListIndex)

End Sub

Private Sub CommandButton1_Click()

ComboBox1.Clear

Dim numberOfPanels As Integer
numberOfPanels = Worksheets("config").Cells(12, 3).Value
For ipanel = 0 To numberOfPanels
ComboBox1.AddItem Worksheets("config").Cells(8 + ipanel, 10).Value
addresses(ipanel) = Worksheets("config").Cells(8 + ipanel, 11).Value
Next

End Sub

Une ptite Esquisse de mon code, pour faire des test juste, apres je vais devoir faire une combobox en cascade qui va se connecté sur une liste d'ip pour recup des donnée .... etc, enfin tout un bordel a faire mdr. heureusement que j'ai des programeur dans le bureau pour repondre a mes questions... Je vous remercis, je vous mettrais le code une fois fini pour vous tenir au courant. Aller j'y retourne à peluche
0
Rejoignez-nous