Aide pour trier un tablo à une dimension

Résolu
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009 - 14 juin 2007 à 14:55
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009 - 14 juin 2007 à 15:36
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

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:30
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
3
cs_Exploreur Messages postés 4822 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 14
14 juin 2007 à 15:00
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

 
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:04
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:05
la solution de Exploreur n'est pas mauvaise, ca te simplifierais grandement la tache....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:08
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
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
14 juin 2007 à 15:09
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;.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:19
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
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
14 juin 2007 à 15:20
j'ai testé ton code il me dit IMPOSSIBLE D'AFFECTER A UEN LECTURE SEULE Pour celle ligne ici

List1.Sorted = true
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2007 à 15:23
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
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
14 juin 2007 à 15:24
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
0
vinzemuls Messages postés 105 Date d'inscription jeudi 22 mai 2003 Statut Membre Dernière intervention 9 septembre 2009
14 juin 2007 à 15:36
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..
0