VBA - Tri après concaténation de variable

TgR

XLDnaute Junior
Bonjour,

Je ne sais pas s'il est nécessaire de poster mon fichier pour ma question mais s'il s'avère que oui, faites le moi savoir.

J'aimerais comprendre pourquoi après concaténation d'une variable au sein d'une macro et affichage dans excel je ne peux pas effectuer de tri correct sur mes cellules.

Voici mon code qui concatène :

Code:
pourcentage = Round(((composantsCommuns / maxComposants) * 100), 0)
tabLruCommuns(indiceTab) = pourcentage & "%" & " " & tabLruCommuns(indiceTab)

Ce qui donne pour résultat des données de la sorte :

84% 45150320:F9111
8% 39275060:F9111
8% C16363AA:F9111
76% C16291AB:F9111
3% 860V1M1:F6306

Lorsque je tente ensuite d'appliquer un tri via excel le résultat donné est le suivant :

84% 45150320:F9111
8% C16363AA:F9111
8% 39275060:F9111

76% C16291AB:F9111
3% 860V1M1:F6306

Seules les deux cellules en gras ont changé de place. Le 76% sensé être après le 84% n'a pas bougé... j'ai essayé de changer le format de la cellule, d'enlever le "%" via excel (non pas dans la macro)... rien n'y fait.

Une idée?
 

david84

XLDnaute Barbatruc
Re : VBA - Tri après concaténation de variable

Bonsoir,
on peut peut-être simplifier en utilisant Val :
Code:
Sub tri()
tablo = Range("tabLruCommuns")
For n = LBound(tablo, 1) To UBound(tablo, 1)
  For m = LBound(tablo, 1) To UBound(tablo, 1)
   x = Val(tablo(n, 1))
   y = Val(tablo(m, 1))
   If x > y Then
    temp = tablo(n, 1)
    tablo(n, 1) = tablo(m, 1)
    tablo(m, 1) = temp
   End If
  Next
Next
Range("B1").Resize(UBound(tablo, 1), 1) = tablo
End Sub
Après, il faut voir ce que cela donne en vitesse de traitement sur de grandes plages.
A+
 

Discussions similaires

Réponses
12
Affichages
676
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 489
Messages
2 088 852
Membres
103 974
dernier inscrit
chmikha