|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : trier une collection vba-excel [ Langages dérivés / VBA ] (larsene67)
Informations & options pour cette discussion
lundi 10 juillet 2006 à 12:24:42 |
trier une collection vba-excel

larsene67
|
bon, on va essayer une approche différente de mon problème: soit la collection suivante: (Dans class1:) Public nom, prénom, age
(dans module1:) Public Liste As New Collection Dim machin As New Classe1
machin.nom = "CHRIST" machin.prénom = "Jesus" machin.age = 33 Liste.Add machin Set machin = Nothing
machin.nom = "LUCAS" machin.prénom = "GEORGES" machin.age = 50 Liste.Add machin Set machin = Nothing
machin.nom = "LUCAS" machin.prénom = "Gérard" machin.age = 50 Liste.Add machin Set machin = Nothing
machin.nom = "DES BATIGNOLES" machin.prénom = "Marie-thérese" machin.age = 75 Liste.Add machin Set machin = Nothing
machin.nom = "DES BATIGNOLES" machin.prénom = "Marie-thérese" machin.age = 73 Liste.Add machin Set machin = Nothing
machin.nom = "DES BATIGNOLES" machin.prénom = "Marie-thérese" machin.age = 120 Liste.Add machin Set machin = Nothing
Comment puis-je extraire une liste au chois des noms, ou prénom, ou ages pour pouvoir créer une form+listbox dynamique qui me permette de choisir les correspondances (exemple: on donne comme argument à une function "Liste" & "age", cela doit nous donner: listeb(1)=33 listeb(2)=50 listeb(3)=73 listeb(4)=75 listeb(5)=120 --> form: Veuillez choisir la selection d'age: [] 33ans [] 50ans [] 73ans [] 75ans [] 120ans JE NE DEMANDE PAS COMMENT FAIRE LA "FORM" (ca je sais), MAIS COMMENT TRIER LA COLLECTION "LISTE" pour en faire "listeb" en fonction d'arguments de choix de la propriété.... Ca fais une semaine que je patauge la dessus... (voir mes précédentes questions toutes liées à ce problème...) Merci d'avance !!
|
|
|
lundi 10 juillet 2006 à 13:26:53 |
Re : trier une collection vba-excel

jrivet
|
Salut, Je ne pense pas que en posant 4 fois la même question (juste pour qu elle soit dans les derniers messages du forum) soit la meilleure façon de procéder. Si cela fait une semaine que tu essaie de faire quelque chose, peu être devrait tu penser à une autre solution . Exemple: Une classe pouvant posséder une liste de classes Classe1 et possédant des fonctions permettant de te retourner une liste (de ce que tu veux). @+, Julien Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
|
|
|
lundi 10 juillet 2006 à 14:10:38 |
Re : trier une collection vba-excel

FENETRES
|
La classe Collection de VB6 ne comprend ni méthode de tri ni critère de filtre. Il te faudra donc l'enrichir (cf. adresse ci-dessous) pour répondre à tes besoins. Méthodes de tri : [ Lien ]Fenêtres
|
|
|
lundi 10 juillet 2006 à 14:12:36 |
Re : trier une collection vba-excel

larsene67
|
Désolé pour la répétition, mais ce ne sont pas les mêmes questions, même si au final, cela concerne le même sujet. Les 2 premières question m'ont appris des choses, et la dernière devait me permettre de trouver effectivement si il était possible d'effectuer ma manip d'une autre manière.
D'ailleurs, pourrais-tu développer un tout petit peu ton exemple, car je n'arrive pas à comprendre de quoi tu parles :(
Je reste encore assez débutant en vb, et j'ai un peu de mal avec son champ lexical....
|
|
|
lundi 10 juillet 2006 à 14:16:35 |
Re : trier une collection vba-excel

larsene67
|
@FENETRES: c'est effectivement ce que j'ai essayé de faire, mais je bute sur des transferts d'items de collections, et de classes d'une sub à l'autre (c'est pour ca que je métait un lien avec mes autres questions)
:(
|
|
|
lundi 10 juillet 2006 à 15:09:37 |
Re : trier une collection vba-excel

jrivet
|
Salut, Alors, J'ai essayer de te faire un exemple. je n'ai pas eu le temps de le commenter (j'ai du taf quand même). Essaie de regarder le fonctionnement peu être que cela pourra te donner des idées. Alors. Code D'un module de classe Appelé Personne  Option Explicit
Public Nom As String Public Prenom As String Public Age As Integer
 Code D'un Module De classe Appelé Col_Personne  Option Explicit Public Enum StyleListe By_Age = 1 By_Nom = 2 By_Prenom = 3 End Enum
Private Tab_Personne As New Collection
Public Sub Add_Personne(Nom As String, Prenom As String, Age As Integer) Dim Tmp_Personne As New Personne With Tmp_Personne .Nom = Nom .Prenom = Prenom .Age = Age End With Call Tab_Personne.Add(Tmp_Personne) Set Tmp_Personne = Nothing End Sub
Public Function GetList(Typ As StyleListe, ReturnList()) As Integer ReDim ReturnList(Tab_Personne.Count - 1) Dim i As Integer Dim Tmp_C As Personne
i = 0 For Each Tmp_C In Tab_Personne Select Case Typ Case By_Age: ReturnList(i) = Tmp_C.Age Case By_Nom: ReturnList(i) = Tmp_C.Nom Case By_Prenom: ReturnList(i) = Tmp_C.Prenom End Select i = i + 1 Next GetList = UBound(ReturnList)
End Function

Et enfin pour finir Code pour tester

Option Explicit
Dim P As New Col_Personne Dim Col() Dim i As Integer
Private Sub Command1_Click() Call P.GetList(By_Age, Col) Call FillList End Sub
Private Sub FillList() Call List1.Clear For i = LBound(Col) To UBound(Col) Call List1.AddItem(Col(i)) Next i End Sub
Private Sub Command2_Click() Call P.GetList(By_Prenom, Col) Call FillList End Sub
Private Sub Command3_Click() Call P.GetList(By_Nom, Col) Call FillList End Sub
Private Sub Form_Load() Call P.Add_Personne("CHRIST", "Jesus", 33) Call P.Add_Personne("LUCAS", "GEORGES", 50) Call P.Add_Personne("LUCAS", "Gérard", 50) Call P.Add_Personne("DES BATIGNOLES", "Marie-thérese", 75) Call P.Add_Personne("DES BATIGNOLES", "Marie-thérese", 73) Call P.Add_Personne("DES BATIGNOLES", "Marie-thérese", 120) End Sub

Coloration syntaxique automatique [AFCK] 
NOTE: J ai fait cela avec VB6 mais il devrait fonctionner sous VBA
@+, Julien Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
|
|
|
lundi 10 juillet 2006 à 15:43:42 |
Re : trier une collection vba-excel

larsene67
|
Euh.... En tout cas, merci beaucoup, mais je crois que je vais passer le reste de l'après-midi à comprendre tout ca, donc j'en dirais plus plus tard. Ceci n'est plus (ou en tout cas à cette heure-ci) de mon niveau, il va falloir que je me derrouille un peu les neurones ;)
En tout cas merci beaucoup...
|
|
|
lundi 10 juillet 2006 à 16:40:05 |
Re : trier une collection vba-excel

larsene67
|
Ok, je commence à comprendre ce que sont des classes ;) En fait, ce que tu m'a donné ressemble assez à ce que j'avais fait, mis à part que je l'avais fait au travers de sub de module, et non de classes. Toutefois, mon soucis reste encore:
Le resultat que j'essai d'obtenir à partir de la premiere collection est une autre collection dont j'utilise une des propriété pour mes optionbuttons, et les autres pour un traitement ultérieur en fonction de ceux cochés (en fait, un nettoyage du tableau excel dont sortent les infos de la premiere collection) Cette deuxieme collection est dans mon code créé par une copie de la première, puis un nettoyage (enlevement de lignes) en fonction de conditions qui changent suivant les lancement de cette dernier sub. C'est pourquoi j'essayais sans succès de passer cette condition à la sub qui doit me faire ce nettoyage.
Pfff...
En fait, plus j'essaie d'éxpliquer, plus j'ai l'impression que mes expliquations manquent de clarté.
Enfin, à défaut de pouvois envoyer le fichier excel complet, on va essayer de continuer comme ca ;)
En tout cas, je ne vois pas l'avantage que pourra me donner le traitement par classes pour mon traitement conditionnel...
Ou bien?
|
|
|
lundi 10 juillet 2006 à 16:43:08 |
Re : trier une collection vba-excel

jrivet
|
Epsylon9@gmail.com c est mon adresse pour l'envoi du fichier excel. C est vrai que tes explication manquent un peu de clarete... j ai absolument rien compris. @+, Julien Pensez: Moteur de Recherche, Réponse Acceptée, Règlement/FONT>
|
|
|
Cette discussion est classé dans : prénom, age, add, machin, machinset
Répondre à ce message
Sujets en rapport avec ce message
TRI DANS UN LISTVIEW [ par reyman ]
J'utilise un controle listview en mode "détails" avec 3 colonnes.Une pour le nom, la 2eme pour le prénom, la 3eme pour l'age.J'arrive a trier les donn
bazar de mélange de collection, propriétés, conditions en vba-excel [ par larsene67 ]
bon ,maintenant, je commence à patauger, si quelqu'un pouvait m'aider sur ce bout de code que je n'arrive pas à faire marcher:(suite de http://www.vbf
présentation fichier txt [ par neg03 ]
Bonjour,j'insère dans un fichier texte différentes données que je classe de cette façon :Nom Prénom Age VilleLe probleme est que je ne sais pas
création combobox [ par fred263 ]
Bonjour,Voila je cherche a faire une combobox qui appellerai un fichier tableur (.ods) regroupant "nom, prénom, age" de personnesLe but est de sélecti
gridview et Dtarow [ par ddove53 ]
Bonjour,j'ai un datagridview et je veux ajouter dans ma colonne 1 des lignes en dur par exemple "toto" et "tata". Pour ce, je fais comme suit mais j'a
Comment paramétrer une requête SQL avec 2 critères ? [ par Tursiop60 ]
Bonsoir,Je travaille avec Visual Basic 2008 Express et vb.net.J'ai une base de donnée (Diet) avec une table (Clients) qui comporte plusieurs colonnes
Programmation 3D [ par papse ]
Bonjour à tous vous verez un un code ci-dessous que je veux exécuter sur VB 2008 mais ya messsage d'erreur qui me dit que : MeshGeometry3D t
Probleme DATASET suivant resultat requete sql [ par kowalska ]
bonjour a tous, voila je recupére une liste de ma class métier par rapport a ma requete. Tous se passe pour le mieux sauf que j'ai recupere la dernie
fichier texte [ par neg03 ]
Bonjour,je possède un fichier texte déja près formaté de la manière suivante :Fichier n°1 Le 03/01/2008Nom Prénom Ville AgeDupond Jacqu
Appel d'une fontion VBscript [ par Maroxye ]
Bonjour à vous tous,Désolé, je ne trouve pas la section correspondante à ma question qui parle de VB.net mais aussi de JAVASCRIPTVoilà, j'ai une table
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|