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

Statistiques des forums

Discussions
312 492
Messages
2 088 902
Membres
103 982
dernier inscrit
krakencolas