tex/listbox

lio

XLDnaute Occasionnel
Bonjour le forum,

Je suis débutant en VBA et j'essais de me faire des petit exo pour apprendre.

Est il possible de trier à partir du choix fait dans un combobox, les infos que j'aimerais mettre das la listbox. Je m'explique:

Si, je choisi équipe 1 dans le COMBOBOX

on a dans la LISTBOX:

@+ Thierry (exp)
Zoe (déb)

En clair les infos de la colonne1 et colonne 4 mais en abréger ( débutant = déb) de la feuille 2.
D'autre part, je ne sais quoi mettre dans mon chekbox pour le faire marcher.

Merci pour votre aide.
[file name=Clas.zip size=11973]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Clas.zip[/file]
 

Pièces jointes

  • Clas.zip
    5 KB · Affichages: 23
  • Clas.zip
    5 KB · Affichages: 34
  • Clas.zip
    5 KB · Affichages: 17

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Ton fichier modifié [file name=Clas_20051022190425.zip size=10287]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Clas_20051022190425.zip[/file]
 

Pièces jointes

  • Clas_20051022190425.zip
    10 KB · Affichages: 21

PascalXLD

XLDnaute Barbatruc
Modérateur
Oups

Voici le nouveau

J'avais zappé le coup de l'abrégé et du checkbox

[file name=Clas_20051022190919.zip size=10803]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Clas_20051022190919.zip[/file]
 

Pièces jointes

  • Clas_20051022190919.zip
    10.5 KB · Affichages: 15

lio

XLDnaute Occasionnel
Re,

Pascal, peut tu me démistifié un peu ta formule à partir de la deuxième ligne

For c = 2 To Sheets('Feuil2').Range('A65536').End(xlUp).Row
If Sheets('Feuil2').Range('C' & c) = Me.ComboBox1 Then
Me.ListBox1.AddItem Sheets('Feuil2').Range('A' & c) & ' (' & Left(Sheets('Feuil2').Range('D' & c), 3) & ')' End If

Merci.
 

ChTi160

XLDnaute Barbatruc
re

je me suis permis une adaptation du Fichier de Pascal il ne m'en voudra pas j'espère lol

bonne fin de Soirée

[file name=ClasV2.zip size=11526]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ClasV2.zip[/file]
 

Pièces jointes

  • ClasV2.zip
    11.3 KB · Affichages: 18

lio

XLDnaute Occasionnel
Merci ChTI 160.

Par contre serait il possible d'avoir un ordre dans le rangement de la listbox. C'est à dire avoir tjs le nom de l'expert en ligne 1, puis celui de l'intermédiaire et du débutant.
Merci quoi qu'il en soit pour ton aide.


PS: Suite à un fil où tu m'avait bien aidé, j'ai rajouté une macro ' ranger la liste'. Mais suite à cette modif, j'avais afficher dans ma listbox les 3 colonnes.

Voici la macro:
Private Sub CommandButton4_Click()
liste.Select
Range('A1').Select
Selection.Sort Key1:=Range('A2'), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Feuil1.Select

Opt = Me.choix.Text
Select Case LCase(Opt)
Case Is = 'nom'
Col = '129;00;00;00'
Case Is = 'entreprise'
Col = '00;129;00;00'
Case Is = 'equipe'
Col = '00;00;129;00'
Case Is = 'qualification'
Col = '00;00;00;129'
End Select
misajour (Col)
End Sub

J'ai alors ajouté ce qu'il y a en rouge. Es ce le plus judicieux pour que ma listbox affiche la colonne ' nom'...

Merci et bonne soirée.
 

ChTi160

XLDnaute Barbatruc
re je me permet une fois encore mais bon Lol
For c = 2 To Sheets('Feuil2').Range('A65536').End(xlUp).Row
If Sheets('Feuil2').Range('C' & c) = Me.ComboBox1 Then
Me.ListBox1.AddItem Sheets('Feuil2').Range('A' & c) & ' (' & Left(Sheets('Feuil2').Range('D' & c), 3) & ')' End If

je commence je lis le texte

for =Pour une variable c qui prendra les valeurs de 2 à --- Sheets('Feuil2').Range('A65536').End(xlUp).Row
ce qui veut dire qu'en partant de la ligne n° 65536 de la dernière de la colonne A(1) de la feuille 'Feuil2' vers le Haut cela renverra le numero de la première ligne non vide rencontrée .Row
If=si la valeur de la cellule C2 ---->C colonne etc =2 la ligne et ainsi de suite pour chaque valeur de c et égale à la valeur du Combobox

Then eh bien on ajoute dans la listBox colonne 1 la valeur de cette cellule C2 (Range('C'&c) et ainsi de suite
& permet de coller des données entre elles

left() fonction Left(Texte,nombre de Caractères à renvoyer en Partant de la Gauche)
si Range('C'& c)=Range('C2')=> Thierry cela donne
Left(Range('C2'),3)---> Left(Thierry,3) renvoie Thi

en espèrant avoir fait avancer le chimilimblick
je regarde ta nouvelle question Lol
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Alors je t'explique le code

Pour c = 2 jusqu'à la dernière ligne de la colonne A dans la feuille 2

For c = 2 To Sheets('Feuil2').Range('A65536').End(xlUp).Row

Si dans la colonne C de la feuille 2 tu as la même valeur que ton combobox
If Sheets('Feuil2').Range('C' & c) = Me.ComboBox1 Then

Alors ajout dans la listbox la colonne A de la feuille 2 plus une parenthèse plus les 3 lettres à gauche de la colonne D puis tu ajoutes une parenthèse fermante
Me.ListBox1.AddItem Sheets('Feuil2').Range('A' & c) & ' (' & Left(Sheets('Feuil2').Range('D' & c), 3) & ')'

End If
 

ChTi160

XLDnaute Barbatruc
re avant de diner

il serait peut être judicieux de mettre un index dans une colonne 5
ce qui permettrait de trier ex 1 pour expert 2 , pour intermédiaire
,3 Débutant

a voir

ps un essai [file name=ClasV3.zip size=14343]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ClasV3.zip[/file]

Message édité par: Chti160, à: 22/10/2005 21:34
 

Pièces jointes

  • ClasV3.zip
    13.4 KB · Affichages: 25
  • ClasV3.zip
    13.4 KB · Affichages: 19
  • ClasV3.zip
    13.4 KB · Affichages: 20

lio

XLDnaute Occasionnel
Bonjour le forum,
Bonjour ChTI160 et Pascal

J'ai bien regarder vos propositions et je pense les avoir comprises :p .
Toutefois, je bataille terrible pour faire en sorte que lorsque je coche dans le chekbox 'toute les équipes', j'ai dans ma listbox :

équipe 1:
@+ Thierry (exp)
lio (déb)

équipe 2:
Chti 160 (exp)
mimi (deb)

équipe 3:
....
....

Merci pour votre aide et bonne fin de Week end :( [file name=Clasv3.zip size=13711]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Clasv3.zip[/file]
 

Pièces jointes

  • Clasv3.zip
    13.4 KB · Affichages: 23
  • Clasv3.zip
    13.4 KB · Affichages: 22
  • Clasv3.zip
    13.4 KB · Affichages: 16

lio

XLDnaute Occasionnel
Bonjour à tous

J'ai essayé de mettre une ligne de code supplémentaire au niveau de:
Private Sub ComboBox1_Change()
Me.ListBox1.AddItem (ComboBox1.Value)
et ça marche!. Mais pour avoir un peu de clarté comment mettre un espace entre le nom de l'équipe et ces membres ?

Par contre, je n'ai pas trouver la formule magique lorsque toutes les équipes sont sélectionnées.

Merci et bonne soirée.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 824
Membres
104 677
dernier inscrit
soufiane12