[RESOLU] Trier une zone par cellule

KidNap

XLDnaute Nouveau
Bonjours tout le monde.

Je solicite votre aide pour réussir à trier une zone dans ma page mais de façon un peu specifique.

En faite, j'ai un tableau qui fait 6 colonne de large et 10 de haut, je voudrait que sur tout ce tableau un tri soit effectuer de façon a obtenir un tri alphabetique.

Jusque la j'ai chercher sur internet sans touver de solution, on ne peut trier que par colonne ou que par ligne d'apres ce que j'ai peu constater. Et evidement, il me faut les deux...

Qu'un tableau ou se trouvant ainsi disposer:
b|e|d
a|f|c

Se retrouve classer comme suivant:
a|b|c
d|e|f

je vous aurais donner mon fichier excel avec plaisir mais il s'agit d'une base de donné qui est déjà plutot lourde...

Si je n'ai pas été claire n'hésiter pas a me le faire savoir.
En vous remerciant d'avance.

KidNap.
 
Dernière édition:

KidNap

XLDnaute Nouveau
Re : Trier une zone par cellule

Voila, j'ai enlever un max d'info pour alleger.
Par contre, attention les yeux, ça va piquer!

Explication sur le classeur:
3 boutons sur la droite:
-Ajouter famille
-Supprimer une famille
-Rechercher

L'ajout d'une famille créer une nouvelle page avec le nom rentrer dans la msgbox et ajoute au tableau cette famille (Toujours ajouter en 1er case vide trouver). Hyperlien creer entre la cellule du tableau et la nouvelle page. Toute les familles sont dans un tableau entre la colonne B et G.

Supprimer une famille appel un Userform qui demande quelle famille supprimer.
Pour savoir quelles données sont a afficher dans la combobox, une recherche de 1er case vide est effectuer (s'arrete si un vide est rencontrer).

Si un vide c'est créer par une mauvaise manipulation ou je ne sais quelle raison, supprimer la famille devient donc inutilisable, d'où ma recherche d'une fonction triage.
 

Pièces jointes

  • BASE DE DONNEE VIDE.xlsm
    89 KB · Affichages: 54
Dernière édition:

KidNap

XLDnaute Nouveau
Re : Trier une zone par cellule

Pas moyen, j'ai recopier betement ton code et je l'ai appliquer tout seul (sans passer par d'aute macro) et je ne recupere pas les Hyperliens... Ca commence à etre frustrant :S

Tu peux peut etre m'envoyer ton fichier pour voir si le fonctionnement est bien ce que j'attend? (desfois qu'on se soit pas compri)
 

unrender

XLDnaute Junior
Re : Trier une zone par cellule

Ok... C'est plus facile avec un fichier.
Je pensais que tu parlais de liens web, pour ça que ça n'allait pas...

Voilà la macro corrigée :

Code:
Sub TriZone2()
Dim tabtemp(500, 1)
 k = 0
 For Each c In Range("B3:G40")
     If c <> "" Then
         tabtemp(k, 0) = c
         If c.Hyperlinks.Count > 0 Then tabtemp(k, 1) = c.Hyperlinks(1).SubAddress
         k = k + 1
     End If
 Next
 
k = 0
 For Each c In tabtemp()
     If tabtemp(k + 1, 0) = "" Then Exit For
     If tabtemp(k, 0) > tabtemp(k + 1, 0) Then
         temp1 = tabtemp(k, 0)
         temp1l = tabtemp(k, 1)
         temp2 = tabtemp(k + 1, 0)
         temp2l = tabtemp(k + 1, 1)
         tabtemp(k, 0) = temp2
         tabtemp(k, 1) = temp2l
         tabtemp(k + 1, 0) = temp1
         tabtemp(k + 1, 1) = temp1l
         If k > 1 Then
             k = k - 2
         Else
             k = -1
         End If
     End If
     k = k + 1
 Next
k = 0
 For Each c In Range("B3:G40")
     c.Value = tabtemp(k, 0)
     If tabtemp(k, 1) <> "" Then c.Hyperlinks.Add c, Address:="", SubAddress:=tabtemp(k, 1)
     k = k + 1
 Next
End Sub


Dans ta procédure NouvelleFamille, tu appelles 2 fois la procédure TriZone.
Celle du début est superflue je pense.
 

Discussions similaires

Réponses
13
Affichages
1 K

Statistiques des forums

Discussions
312 318
Messages
2 087 209
Membres
103 493
dernier inscrit
Vidal Salvador