Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment faire un tri si il y a une lettre?

7 réponses
Avatar
Rex
Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement (facile)

MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par une
lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe avant le
56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chamboule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux colonnes
et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) dans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charactère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex

7 réponses

Avatar
JB
On suppose que les codes sont en colonne A:

Sub tri()
[b:b].Insert
For Each c In Range([A2], [a65000].End(xlUp))
c.Offset(0, 1) = String(10 - Len(c), "0") & c
Next c
Range("A2").CurrentRegion.Select
'Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
Selection.Sort Key1:=[B2]
[b:b].Delete
End Sub

http://cjoint.com/?dlqhDA8Luf

JB


On 11 mar, 15:37, "Rex" wrote:
Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement (fa cile)

MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par une
lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe ava nt le
56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chambo ule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux colonn es
et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) d ans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charact ère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex


Avatar
dre
Bonjour,

Il faut savoir que le tri de nombres se fait sur la valeur des nombres,
tandis que la tri de texte se fait caractère après caractère.

Fais l'expérience suivante :
Colonne A en format nombre, A1 = 2 et A2 = 11
Colonne B en format texte , B1 = 2 et B2 = 11
trie séparement les deux colonnes.
En colonne B le 2 se place avant le 11

Pour trier de la façon dont tu le désires il faut que les chaînes de
caractères aient le même nombre de caractères.
Supposons que le maximum de caractères soit 5 (comme le 2549A).
Dans une colonne voisine tu écris :
=GAUCHE(A1;NBCAR(A1)-1)&REPT(0;5-NBCAR(A1))&DROITE(A1)
copie cette formule vers le bas et trie les deux colonne sur cette dernière.

Â+



Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement (facile)

MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par une
lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe avant le
56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chamboule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux colonnes
et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) dans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charactère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex







Avatar
isabelle
bonjour Rex,

est ce qu'une fonction perso ferait l'affaire ?

Function chiffre(cellule As Range)
For i = 1 To Len(cellule)
If IsNumeric(Mid(cellule, i, 1)) Then chiffre = CDbl(chiffre & Mid(cellule, i, 1))
Next
End Function

isabelle

Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement (facile)

MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par une
lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe avant le
56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chamboule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux colonnes
et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) dans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charactère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex






Avatar
JB
Solution tableur:

=REPT("0";10-NBCAR(A2))&A2

http://cjoint.com/?dlrI3oExl8

JB
On 11 mar, 15:37, "Rex" wrote:
Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement (fa cile)

MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par une
lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe ava nt le
56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chambo ule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux colonn es
et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) d ans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charact ère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex


Avatar
Rex
Bonsoir


Et ça marche!!

Une p'tite chose
qui ne me gène pas du tout (tout mes chiffres ont le même format)
il classe d'abords les cellules contenant trois chiffres et une lettre
puis ceux contenant trois chiffres et une lettre
etc
MAIS cela ne me gène pas du tout pour ce que j'ai à faire

Merci à toi

Et pour les graphiques, j'ai changé mon fusil d'épaule

Comme l'assemblé générale est prévue pour mardi il se passeront de
graphiques mobiles
mais se contenteront de plusieurs graphiques fixes

MAIS je gardes toutes les infos et je m'y colle plus tard

PS

Je ne sais pas si toi (ou quelques autres du groupes) sont de la région
mais je serais au Rewics lundi 19 mars avec mes tableaux interactifs
www.rewics.be
Ce pourrait être l'occasion de se rencontrer
Sinon on finira par se retrouver au souper MPEFR un jour

Bonsoir et merci
"JB" a écrit dans le message de news:

On suppose que les codes sont en colonne A:

Sub tri()
[b:b].Insert
For Each c In Range([A2], [a65000].End(xlUp))
c.Offset(0, 1) = String(10 - Len(c), "0") & c
Next c
Range("A2").CurrentRegion.Select
'Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
Selection.Sort Key1:=[B2]
[b:b].Delete
End Sub

http://cjoint.com/?dlqhDA8Luf

JB


On 11 mar, 15:37, "Rex" wrote:
Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement
(facile)


MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par
une

lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe avant
le

56E

La solution que j'envisage, mais qui ne plaît pas parce que cela chamboule
tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux
colonnes

et de mettre le dernier charactère (il n'y a toujours qu'une lettre ) dans
une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier charactère,
puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex


Avatar
Rex
Bonsoir et merci

La solution offerte par JB me convient (pour le moment)

MAIS

Un grand merci à toi

Et à bientôt

Rex


"dre" a écrit dans le message de news:

Bonjour,

Il faut savoir que le tri de nombres se fait sur la valeur des nombres,
tandis que la tri de texte se fait caractère après caractère.

Fais l'expérience suivante :
Colonne A en format nombre, A1 = 2 et A2 = 11
Colonne B en format texte , B1 = 2 et B2 = 11
trie séparement les deux colonnes.
En colonne B le 2 se place avant le 11

Pour trier de la façon dont tu le désires il faut que les chaînes de
caractères aient le même nombre de caractères.
Supposons que le maximum de caractères soit 5 (comme le 2549A).
Dans une colonne voisine tu écris :
=GAUCHE(A1;NBCAR(A1)-1)&REPT(0;5-NBCAR(A1))&DROITE(A1)
copie cette formule vers le bas et trie les deux colonne sur cette
dernière.


Â+



Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement
(facile)



MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par
une


lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe
avant le


56E

La solution que j'envisage, mais qui ne plaît pas parce que cela
chamboule


tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux
colonnes


et de mettre le dernier charactère (il n'y a toujours qu'une lettre )
dans


une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier
charactère,


puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex









Avatar
Rex
Bonsoir

C'est gentil de me proposer de travailler avec des fonctions

MAIS

J'ai déjà assez des difficultés avec les formules et les macros

Je gardes ta réponse
Qui sait elle me sevira peut-être un jour

Bonsoir MERCI et à bientôt

Rex


"isabelle" a écrit dans le message de news:
#GbOo$#
bonjour Rex,

est ce qu'une fonction perso ferait l'affaire ?

Function chiffre(cellule As Range)
For i = 1 To Len(cellule)
If IsNumeric(Mid(cellule, i, 1)) Then chiffre = CDbl(chiffre &
Mid(cellule, i, 1))

Next
End Function

isabelle

Bonjour

Toujours occupé sur ce fichu fichier de location de livres

Chaque client à un numéro (c'est normal)
Et je voudrais utiliser ce numéro pour faire des tris et classement
(facile)



MAIS

Ben oui, chez moi il y a toujours un MAIS

Le problème vient du format du numéro, puisqu'il se termine toujours par
une


lettre (soit A soit E)

Exemple 152A 3569A 1245E 56E 2549A 235E

Ce qui fait qu'Excel les considère comme lettres et le 2549A passe
avant le


56E

La solution que j'envisage, mais qui ne plaît pas parce que cela
chamboule


tout,
est d'utilser cette astuce (faut que je la retrouve) de faire deux
colonnes


et de mettre le dernier charactère (il n'y a toujours qu'une lettre )
dans


une colonne et le reste dans une autre

Mais si quelqu'un à une idée pour faire un tri sur le premier
charactère,


puis sur le deuxième, etc

cela serait très appréciée

A bientôt

Rex