OVH Cloud OVH Cloud

tri sur du texte

27 réponses
Avatar
ericzzzz
Bonjour,

Je suis sous Excel 2010
Ma colonne code est au format texte car certains codes contiennent du texte=
comme ci-dessous :

51321107
51321209
51332401
51333001
4002210A
5002520B

Comment faire pour trier de telle fa=E7on =E0 avoir 4002210A et 5002520B av=
ant les 51321107 et autres ?

J'ai import=E9 ce fichier d'Access 2007 qui =E9tait pourtant convenablement=
tri=E9.

J'ai essay=E9 ""&A2 , mais =E7a ne marche pas

Merci d'avance

7 réponses

1 2 3
Avatar
moi
Désolé de ne pas avoir été plus clair depuis le début.
Justement à propos de Bilou$, il me semblait qu'il était naturel qu'il puisse exister un bouton qui permette d'avoir le tri mathématique, càd 1,2,3 ... comme le fait Access.
Car je viens de me rendre compte que le problème n'est résolu qu'à mo itié. Si j'envoie le fichier à quelqu'un et qu'il clique sur le bouton tri (AZ avec la flèche), on se retrouve au point de départ, càd que 4 A se positionnera après 51...et on aura perdu le tri mathématique
Avatar
MichD
Essaie ceci et exécute la procédure TEST

'-----------------------------------------------------------------------
Sub test()

Dim T(), A As Long, B As Long
Dim S As String

With Worksheets("Feuil1")'Nom onglet feuille à adapter
'Définir la plage où sont seulement les données, pas de ligne d'étiquette
Set Rg = .Range("A1:A" & .Range("A65536").End(xlUp).Row)
T = Rg.Value
End With

For A = 1 To UBound(T, 1)
For B = 1 To UBound(T, 2)
S = T(A, B)
T(A, B) = CLng(Left(S, Len(S) - 1) & Asc(Right(S, 1)))
Next
Next
BubbleSort T

For A = 1 To UBound(T, 1)
For B = 1 To UBound(T, 2)
S = T(A, B)
T(A, B) = Left(S, Len(S) - 2) & Chr(Right(S, 2))
Next
Next
Application.ScreenUpdating = False
Application.EnableEvents = False
Rg.Value = T
Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub
'-----------------------------------------------------------------------
Sub BubbleSort(List())
' Sorts the List array in ascending order
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
End Sub
'-----------------------------------------------------------------------
Avatar
moi
Le jeudi 10 juillet 2014 14:17:32 UTC+2, MichD a écrit :
Essaie ceci et ex�cute la proc�dure TEST




Bonjour,
2 points positifs :
- le code ne plante pas
- le code retrouve bien le nombre d'enregistrements de mon fichier

Mais c'est tout...pas de tri.
J'ai utilisé F8 (pas à pas) et des points d'arrêts avec F5.
Avatar
MichD
Fichier exemple : http://cjoint.com/?DGkrzhBfud9
Avatar
moi
Le jeudi 10 juillet 2014 17:25:12 UTC+2, MichD a écrit :
Fichier exemple : http://cjoint.com/?DGkrzhBfud9



Oui, ça marche, mais comme je disais, si j'envoie le fichier à quelqu'u n et qu'il clique sur le bouton tri (AZ avec la flèche), on se retrouve a u point de départ, càd qu'on perd le tri mathématique.

Comme disait Jacqu... il faudrait remonter le problème à qui de droit. Mais ce qui m'étonne c'est qu'on n'y ait pas pensé alors que Excel exi ste (pour moi) depuis au moins 20 ans
Merci.
Avatar
Jacquouille
Re
Tu dois simplement te dire que Bilou$ ne peut pas tenir compte de TOUTES les
possibilités.
Si je poursuis ton raisonnement, il faudrait aussi supprimer le touche
"Delete", au cas où ....
Ceci dit, moyennant une faible rétribution, tu peux demander conseil pour
modifier le comportement d'Excel à l'ouverture de ce dossier, et de demander
qu'on mette sur true ou false les commandes telles que Delete, Tri ... ou
simplement tout le ruban du Menu
Mais, c'est un peu comme si tu utilisais une voiture sans pédales et sans
direction.....

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"moi" a écrit dans le message de groupe de discussion :


Le jeudi 10 juillet 2014 17:25:12 UTC+2, MichD a écrit :
Fichier exemple : http://cjoint.com/?DGkrzhBfud9



Oui, ça marche, mais comme je disais, si j'envoie le fichier à quelqu'un et
qu'il clique sur le bouton tri (AZ avec la flèche), on se retrouve au point
de départ, càd qu'on perd le tri mathématique.

Comme disait Jacqu... il faudrait remonter le problème à qui de droit. Mais
ce qui m'étonne c'est qu'on n'y ait pas pensé alors que Excel existe (pour
moi) depuis au moins 20 ans
Merci.


---
Ce courrier électronique ne contient aucun virus ou logiciel malveillant parce que la protection avast! Antivirus est active.
http://www.avast.com
Avatar
MichD
Utilise un bouton émanant de la barre d'outils "Contrôle" et tu places le code de la macro "Test" sur l'événement "Clic" du
bouton. Tu peux insérer le code dans le même module Feuille.

Tous ceux qui utiliseront le fichier pourront employer ce bouton pour trier ladite colonne aussi souvent qu'il le désire!

Selon comment s'articule l'application, on pourrait même utiliser une macro événementielle pour lancer la macro qui trie la
colonne.

Au-delà de cela, il n'y a pas de miracle! Qu'est-ce que tu fais si quelqu'un décide de modifier le contenu de certaines
cellules?
1 2 3