Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Integer 'déclare la variable J (incrément)
Dim TF() As Variant 'déclare la variable TF (Tableau Final)
Dim T1 As Integer 'déclare la variable T1 (Temporaire 1)
Dim T2 As String 'déclare la variable T2 (Temporaire 2)
Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
ReDim TL(1 To 2, 1 To UBound(TV, 1)) 'redimensionne les tableau des lignes TL
For I = 1 To UBound(TV) 'boucle sur toutes les lignes I du tableau des valeurs TV
TL(1, I) = CInt(Split(TV(I, 1), " ")(0)) 'définit la ligne 1 du tableau des lignes TL (la valeur du nombre)
TL(2, I) = TV(I, 1) 'définit la ligne 2 du tableau des lignes TL (la valeur entière)
Next I 'prochaine ligne de la boucle
For I = 1 To UBound(TL, 2) 'boucle 1 : sur toutes les lignes I du tableau des lignes TL
For J = 1 To UBound(TL, 2) 'boucle 2 : sur toutes les lignes J du tableau des lignes TL
'si I est différent de J et la valeur TL(1,I) est inférieure à TL(1,J), inverse les données
If I <> J And TL(1, I) < TL(1, J) Then T1 = TL(1, I): T2 = TL(2, I): TL(1, I) = TL(1, J): TL(2, I) = TL(2, J): TL(1, J) = T1: TL(2, J) = T2
Next J 'prochaine ligne de la boucle 2
Next I 'prochaine ligne de la boucle 1
TV = Application.Index(TL, 2) 'récupère dans le tableau TV la deuxième ligne du tableau TL
O.Range("E1").Resize(UBound(TV, 1), 1) = Application.Transpose(TV) 'renvoie le, tableau TV transposé dans E1 redimensionnée
End Sub