Aide pour trier un tablo à une dimension

Résolu
Signaler
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009
-
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009
-
Bonjour, voilà depui ce matin je me prends la tête pour trier un tableau à une dimension. Mon tableau comporte un type (entreprise,service,bureau).

Sachant que les enregistrements qui sont enregistrés dans ce tableau sont dans le désordre. Il y a par exemple les 5 premiers enregistrant qui ont comme service="Comptabilité" puis les 2 suivants 'Informatique" puis de nouveau "Comptabilité"..

Pour pouvoir sortir un document Word regroupant tout par service il me faut retraiter mon tableau pour ranger par service.

Merci pour votre aide

Voici mes variables.

dim t_conso(100) as ty_conso
dim indice as integer

Je pense qu'il faut recréer un autre tableau ou je sais pas si vous pouvez m'aider..je suis vraiment bloqué

11 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
si t'as pas d'info, c'est que ton tableau est vide.... bien que de taille non null

ajuste ca :

For i = 0 To UBound(t_conso)

NB, évite de faire un tableau de 100 si tu as 4 elements...
fais un tableau dynamique :

Dim t_conso() as ty_conso

et quand tu veux ;

ReDim tConso( 5 )

ou
ReDim Preserve tConso( 5 )

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
14
Salut,

Une idée comme une autre mais pas forcement la meilleur, envois ton tableau dans un listbox avec sa propriété Sorted = True, et inject par la suite dans ton document Word...

Je propose cela car je ne sais pas sin on peut faire un tri directement dans le tableau....

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
tu peux faire un tri a bulle...

avec plusieurs passages, pour trier par entreprise, pui par service, et enfin par bureau

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
la solution de Exploreur n'est pas mauvaise, ca te simplifierais grandement la tache....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
de retour,

La preuve en ces quelques lignes

Avec List1 un listbox caché

Dim xsParts() As String
   List1.Sorted = True
   List1.Clear
   For i = 0 To UBound(t_conso)
       With t_conso(i)
           List1.AddItem .entreprise & ";" & .service & ";" & .bureau
       End With
   Next i
   For i = 0 To UBound(t_conso)
       xsParts = Split(List1.List(i), ";")
       With t_conso(i)
           .entreprise = xsParts(0)
           .service = xsParts(1)
           .bureau = xsParts(2)
       End With
   Next i, ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

Ok pour le tri par service dans une listbox mais après comment le réinjecter dans le tableau sans perdre toutes les données du type

t_conso(indice).service
                        .bureau

etc;.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
euh.....
je t'ai filé le code, jsute au dessus, qui fait le tri et réinjecte dans le tableau.....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

j'ai testé ton code il me dit IMPOSSIBLE D'AFFECTER A UEN LECTURE SEULE Pour celle ligne ici

List1.Sorted = true
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
vires la

et affecte cette propriété dans la fenetre des propriétés
(j'ai codé ça de tête, dsl)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

et aussi dans la liste box il m'affiche que les ; et non les infos.

Désolé mais j'avais répondu et j'avais pas rafraichi la page donc je n'avais pas vu que tu avais répondu. Merci pour ton aide
Messages postés
105
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
9 septembre 2009

Voilà j'ai trouvé c'est le Ubound qu'il aime pas..j'ai mis jusqu'à l'indice de mon tableau..C'est réglé MERCI BEAUCOUP pour ton aide et ton temps..