Créer une ListBox (débutant) - VB/VBA/VBS - Programmation
Marsh Posté le 30-06-2009 à 14:13:26
Bon c'est pas gagné de le faire par écrit dans un forum.
Tu peux faire cela sans code,
D'abord click droit dans la barre de menu, pour afficher la barre de menu "Boite à outil Controles". Là tu cliques sur le petit symbole "zone de liste" (quand la souris passe dessus cela s'affiche)
Puis tu glisses sur ta feuille Excel pour créer la liste
Click droit sur la zone ainsi créée, et cliquer sur "Propriétés"
Tu as alors accès à toutes les caractéristiques de la zone de liste.
Tu peux accéder à 2 champs en particulier
* Linkedcell: adresse de la cellule dans laquelle tu veux le résultat
* ListFillRange: zone contenant les informations à mettre dans la liste
Et le tour est joué.
Marsh Posté le 30-06-2009 à 14:57:24
Hi,
Ce n'est pas compliqué de le faire avec un userform, le tout est de bien procéder par étapes si tu débutes.
1. Crée un userform avec 3 (ou plus) combobox (plus pratiques que les listbox je trouve).
2. Lors de l'initialisation de l'userform, charge les données que tu veux dans les combobox.
3. Lors de la fermeture de l'userform, récupère les valeurs sélectionnées.
Tu peux te baser sur le code ci-dessous, pas super propre mais je l'ai fait à l'arrache, après c'est à toi d'optimiser :
Code :
|
Tout ça dans l'UserForm.
Ce qui donne :
Marsh Posté le 01-07-2009 à 09:08:29
Salut Ctplm,
Tout d'abord merci pour ta réponse, c'est vrai qu'elle me dégrossit un peu le travail déjà.
Pourtant j'ai encore quelques soucis. En fait j'aurais besoin de 5 selection, j'ai donc fait 5 ComboBox, et les données qui doivent figurer dans les listes des ComboBox sont les mêmes à chaque fois (elles sont située en colonne A de la ligne 5 à la ligne LignesTableau ), sachant qu'un tri préalable empeche qu'il y ai des doublons dans cette colonne
Ce qui se passe c'est que la boirte de dialogue s'ouvre mais y' rien dans les liste des ComboBox...
Voila ce que j'ai mis :
DANS USERFORM
Dim Selec1, Selec2, Selec3 As String
Dim NbLignes, a, b As Integer
'Lors du clic "OK", on enregistre les chapitres sélectionnés et on ferme l'Userform
Sub CommandButton1_Click()
Selec1 = EssaiListBox.ComboBox1
Selec2 = EssaiListBox.ComboBox2
Selec3 = EssaiListBox.ComboBox3
Selec4 = EssaiListBox.ComboBox4
Selec5 = EssaiListBox.ComboBox5
Unload Me
End Sub
'Annuler
Private Sub CommandButton2_Click()
Unload Me
End Sub
'Lors du lancement de l'Userform, on charge les variables dans les combobox
Private Sub UserForm1_Initialize()
'Calcul du nombre de lignes dans le tableau
LignesTableau = Sheets("Calcul" ).Application.CountA(Range("A1:A65536" )) + 4
'On boucle sur chaque combobox
For a = 1 To 5
'Et sur chaque chapitre dans le tableau
For b = 4 To LignesTableau
'Pour éviter les doublons on sélectionne la dernière ligne dans laquelle le chapitre est cité.
NomChapitre = Sheets("Calcul" ).Range("A" & b)
EssaiListBox.Controls("ComboBox" & a).AddItem NomChapitre
End If
Next b
Next a
End Sub
DANS UN MODULE
Public Sub Lancement()
UserForm1.Show 1
End Sub
pour lancer mon userform
Marsh Posté le 01-07-2009 à 20:08:20
Hi,
Est-ce que tu as essayé d'exécuter ton code en mode pas à pas pour trouver le problème ?
Marsh Posté le 02-07-2009 à 14:05:17
En fait je me met dans l'userForm,
et je me place sur Private Sub UserForm_Initialize(), je fais F8 et la il m'affiche corréctement la boite de dialogue et tous les appuis de f8 suivant ne me font plus avancer pas à pas. Ca reste "bloqué" sur la fenêtre de l'userForm
Marsh Posté le 30-06-2009 à 11:27:36
Bonjour tout le monde.
J'aurais besoin d'un (sacré) coup de main pour la création d'une ListBox.
Je suis archi débutant en VB, et même en parcourant les forums et en demandant de l'aide à l'ami Google, je n'ai pas réussi à m'en sortir. Je ne comprends pas ou mettre quoi, dans userform, dans le workbook, quelle syntaxe employer....etc
Pour commencer je vais vous expliquer ce que je souhaite faire pour être sur que c'est bien d'une ListBox dont j'ai besoin.
En fait j'ai un fichier Excel dans lequel se trouve des données sous forme de tableau (jusque la normal pour excel )
L'une des colonnes de mon tableau se nomme "Chapitre" (dans cette colonne il y a plusieurs lignes qui correspondent à chaque chapitre, le nombre de ligne étant différent pour chaque chapitres).
Et ce que je cherche à faire et de faire apparaitre une fenêtre à l'écran dans laquelle la liste des chapitres apparait et qui demande à l'utilisateur de faire un choix des chapitres (1 ou plusieurs) qu'il veut analyser.
(Pour info par la suite une fois ce choix fait, il faudra que je trouve le moyen de me servir de ce qu'il à selectionné pour faire un total par chapitre de certaines colonnes et faire apparaitre ces différents totaux (par chapitre) sur un graphique).
Et je n'arrive pas du tout à mettre cela en place. Quelqu'un aurait-il la patience de m'expliquer la démarche à suivre s'il vous plait ?