ListBox à 2 colonnes

W

Willy

Guest
Bonjour ou re bonjour à tous,

Ma question en exemple :

J'ai deux colonne A et B, A contient les noms et B les prénoms.
Ma listBox affiche les noms et je souhaiterai quelle contienne une seconde colonne qui afficherai les prénoms.

Comment manipuler la fonction rowSource ( si c'est par la) pour prendre en compte les 2 colonnes ?

Merci beaucoup
Willy
 
@

@+Thierry

Guest
Salut Willy et le Forum

Il faut tout vous expliquer les gars !! (il y a l'aide aussi => F1 !)

Tiens un extrait d'une démo...

VarDerLigneClient = Sheets("Clients").Range("A65536").End(xlUp).Row
VarPlageListClient = Sheets("Clients").Range("A2:C" & VarDerLigneClient).Address
ListBoxClient.ColumnCount = 3
ListBoxClient.RowSource = "Clients!" & VarPlageListClient
ListBoxClient.ColumnWidths = "80;150;75" 'Remarquez au passage pour la largeur des colonnes


Voilà comme çà tu es "armé" avec tes ListBoxs avec tous les tuyaux que je te refile Willy !!

Bonne Soirée
@+Thierry
 
W

Willy

Guest
Salut Thierry,
J'apprecie beaucoup ton dévouement sur ce forum, ton immense experience du vba que tu met au service de tous qui sont une mine d'or pour le débutant que je suis.
Ce que j'apprecie moins c'est ce genre de remarque :
Il faut tout vous expliquer les gars !! (il y a l'aide aussi => F1 !)

Certainement très évident pour toi, l'aide vba ( très bien faite d'ailleur ) n'est pas du tout évidente pour un débutant qui essai de rechercher une fonction tout en ne sachant même pas si elle existe.

Quelques fois j'ai l'impression de chercher une aiguille dans une botte de foin !!

Ceci simplement pour te dire que quand je pose une question sur le forum c'est que à mon humble niveau j'ai calé sur le script, sur l'aide, ou les bouquins que je possède. Et même la recherche d'archives du forum n'est pas toujours évidente pour moi. Peut être que je suis un peu lourd sans doute !!

Donc, pour ne pas avoir à me poser chaque fois la question à savoir si mon post est suffisament de niveau, ce qui serait un peu contraire je trouve au fonctionnement d'un forum comme celui-ci, assez généraliste au niveau des questions posées, ce que je te propose c'est de tout simplement ne pas me répondre si tu estime que mon post est exagéré et que je peut chercher un peu.

Je suis inscrit sur le forum depuis tout juste une dizaine de jours et c'est vrai que tu as pas mal répondu à mes nombreux post de débutant et j'ai un peu l'impression que tu as tout le poids du forum sur tes épaules. Tu n'est pas obligé de répondre à toutes les questions, merci de le faire mais c'est sur cela doit être ch... d'avoir à répondre à des questions simplistes, sans doute tant de fois posées mais pourtant si nécessaires aux apprentis vba !!

C'est vrai aussi qu'il y a pas mal de fichiers tout fait à télécharger, mais je me refuse un peu cette méthode qui risque de me rendre feignant à l'apprentissage du vba.

Sans rancune, mais j'ai pas beaucoup d'humour pour ce style de remarque.
Bonne soirée
Willy
 
@

@+Thierry

Guest
Bonjour Willy, Bonjour le Forum

Tu sais Willy, si tu me "fréquentes" un tant soit peu, ou si plus simplement tu regardes mes anciens posts tu verras que je me permets certaines familiarités avec les gens que j'aime bien. (N'est-ce pas Fab, StepLof, Pat5, Vériland, Celeda, @Christophe@ et pas mal d'autres grands habitués du forum)

Je réagis parfois comme un "vieux prof" qui a ses coups de gueules, mais ce n'est pas de l'humour, c'est juste pour "pousser" les gens à aller un peu plus loin.

Tiens d'ailleurs, mis à par Didier(2), qui a plus ou moins abordé cette question de l'aide, depuis que je fréquente les Forums, je n'ai jamais vu un post pour poser la question "Comment utiliser l'aide dans VBA"

Pourtant c'est la clef, car ne crois pas que j'ai la science infuse, pour répondre à certaines questions je consulte l'aide au préalable.

Si je me suis permis cette remarque, que je n estimais pas blessante à l'égard de qui que ce soit, donc je suis désolé car mon but n'était pas de déclencher en toi cette réaction, je pensais plutôt que quelqu'un me répliquerait "et comment utiliser cette touche F1" ?

Donc voici ma méthode pour savoir utiliser n'importe quel control activeX dans un Userform :

1) Je click sur un UserForm. J'ai donc un UserForm tout neuf.

2) Je click sur un Control, par exemple une ListBox et je la trace sur cet UserForm.

3) Tant qu'elle est toujours sélectionnée je presse "F1"...
Là j'ai la fenêtre "ListBox, contrôle", je surf un peu sur l'aide et je regarde toujours le lien "Exemple"... (faire un tour aussi dans "Propriété", "Méthode", "s'applique à")....

4) Dans le lien exemple, le quatrième est "ListBox, contrôle, Column, ColumnCount, List, propriétés, exemple.... Là je vois concrètement un exemple pour spécifier le nombre de colonnes...

5) Je copie le code : (et je mets bien les 2 ListBox comme demandé) :

L'exemple suivant charge un tableau bidimensionnel contenant des données et, à tour de rôle, deux contrôles ListBox à l'aide des propriétés Column et List. À noter que la colonne Column transpose les éléments du tableau pendant le chargement.

Pour utiliser cet exemple, copiez le code suivant dans la partie Déclarations d'une feuille et vérifiez que celle-ci contient deux contrôles ListBox nommés ListBox1 et ListBox2.

Dim MyArray(6,3)

Private Sub UserForm_Initialize()
Dim i As Single
'The 1st list box contains 3 data columns
ListBox1.ColumnCount = 3
'The 2nd box contains 6 data columns
ListBox2.ColumnCount = 6

'Load integer values into first column of MyArray
For i = 0 To 5
MyArray(i, 0) = i
Next i

'Load columns 2 and three of MyArray
MyArray(0, 1) = "Zero"
MyArray(1, 1) = "One"
MyArray(2, 1) = "Two"
MyArray(3, 1) = "Three"
MyArray(4, 1) = "Four"
MyArray(5, 1) = "Five"

MyArray(0, 2) = "Zero"
MyArray(1, 2) = "Un ou Une"
MyArray(2, 2) = "Deux"
MyArray(3, 2) = "Trois"
MyArray(4, 2) = "Quatre"
MyArray(5, 2) = "Cinq"

'Load data into ListBox1 and ListBox2
ListBox1.List() = MyArray
ListBox2.Column() = MyArray

End Sub

6) J'analyse le code en pressant "F1" par exemple sur "ColumnCount", et j'obtiens une fenêtre "ColumnCount, propriété"......Où je reamrque la phrase "Vous pouvez utiliser la propriété ColumnWidths pour définir la largeur des colonnes affichées dans le contrôle"...

7) je copie "ColumnWidths" dans mon module et je fais "F1" dessus et j'ai une fenêtre "ColumnWidths, propriété"... Où je remarque comment définir les largeur de colonnes... J'ai un exemple très complet aussi là qui m'apprend encore plein de trucs en pressant F1 sur tous les trucs que je ne connais pas ou que j'ai oublié.... (Du coup je passe une soirée devant l'ordi !! lol)

Enfin voilà.......... C'est ça que je voulais dire.... par ma phrase Il faut tout vous expliquer les gars !! (il y a l'aide aussi => F1 !)

Sans rancune, Willy, je suis même désolé que tu te soies vexé, et par conséquent je te présente toutes mes sincères excuses.

Bon les enfants, allez zou au boulot, la récréation "F1" est terminée !!

"T.G.F."

Bonne Journée
@+Thierry
 
W

Willy

Guest
Bonsour Thierry,
Merci pour ta réponse. Je m'emballe vite c'est vrai ( on se refait pas à 45 balais ).
Concernant l'utilisation de l'aide je n'ai pas posé de question sur son utilisation parce que je pensais m'en servir correctement, et après ton explication sur son utilisation, ben je suis dans le vrai.
Je clique sur tout ( la touche F1 est brulante, lol) d'ailleur très souvent l'aide me retourne " mot introuvable" et il suffit d'écrire à nouveau le mot dans l'index pour que l'aide affiche les bonnes infos.
Cependant mes erreurs de débutant ne viennent pas du fait que je n'arrive pas à trouver telle fonction mais que j'ai mal écrit ma procédure.
Ainsi pour les 2 colonnes de ma listBox j'avais un script qui me semblait correct au niveau des fonctions sauf que:
il me manquait le petit mais indispensable "!" dans la ligne suivante :
( ListBoxClient.RowSource = "Clients!" & VarPlageListClient ) et surtout dans les propriétés j'avais renseigné la fonction RowSource de =Maliste qui correspond à une colonne de mon tableau. Et le pire c'est que cela fonctionnait, mal certes (j'avais une erreur quand je cliquait sur une ligne vide de la listBox)et sur une seule colonne.

C'est sans doute les erreurs fréquentes d'un débutant, à savoir qu'il ne suffit pas de connaître ou trouver dans l'aide, la ou les fonctions mais de bien les interpréter et de ne pas tout mélanger.
Bref je m'y emploi!

Salut à toi et bonne journée ( Il fait doux aujourd'hui, Je crois d'ailleur qu'on est presque voisin, je suis sur Aix en Provence)
A+ Willy
 
M

Math

Guest
ListBox à plusieurs colonnes

Bonjour à tous
j' espere que vous allez bien et que vous allez pouvoir m'aider

Mon probleme est le suivant :
J'ai une listbox multicolonnes et je n'arrive pas a recuper les valeurs des colonnes autre que la premiere.
pourriez m'indiquez le code pour realiser cette operation car en plus ma version de VBA et tres lite sur l'aide




Merci d'avance
@+ Math
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 900
Membres
103 404
dernier inscrit
sultan87