Erreur de tri - Mauvaise macro ?

Bonjour,

J'ai trouvé sur le net un exemple de macro pour trier une feuille

Je l'ai adapté, de manière a pouvoir lui passer des paramètres, et avoir ainsi une seule macro pour tous les tri que l'on veut faire

Mais je n'arrive pas a trier correctement les départements !

J'ai enregistré la macro pour ce tri par département avec l'enregistreur de macro

Quand je l'exécute, cela fonctionne bien !

J'ai comparé les deux macro, mais je suis loin d'être un expert, et je ne vois pas ce qui "cloche"

Pouvez-vous donner un coup d'œil et m'indiquer mes erreurs ?

Merci

Je joint le classeur de test

22tri.xlsm (32.95 Ko)

bonjour

Excel dipose de tout ce dont tu as besoin

mettre sous forme de tableau

et hop ! il y a de petits boutons gris dans chaque cellule du haut, permettant le tri et le filtre

j'ai ajouté des segments pour trier plus sympas

pas de VBA, quelle idée

bon travail

11copie-de-tri.xlsm (32.60 Ko)

Bonjour

au plus simple

Sub Test()
Dim Sh As Object
Dim Nlig&
' Par department
Set Sh = Feuil1
Nlig = Sh.Range("A" & Rows.Count).End(xlUp).Row
    Sh.Range("A3:E" & Nlig).Sort Key1:=Sh.Range("E3"), Order1:=xlAscending
End Sub

Sub Test1()
Dim Sh As Object
Dim Nlig&
' Par R?gion
Set Sh = Feuil1
Nlig = Sh.Range("A" & Rows.Count).End(xlUp).Row
    Sh.Range("A3:E" & Nlig).Sort Key1:=Sh.Range("A3"), Order1:=xlAscending
End Sub

A+

Maurice

Bonjour

les premiers chiffres des des code dep ne sont pas au même format, facile à voir petit encart vert en haut à gauche de chaque cellule concernée.

Les sélectionner et un petit mathcode apparait, faire convertir en nombre.

Ensuite sélectionner l'ensemble des code dep et dans format de cellule,

  • Personnalisé
  • Type : saisir : 00.

Ensuite le tri avec filtre fonctionne parfaitement sans macro.

Cordia5

6copie-de-tri.xlsm (33.43 Ko)

@jmd

screen

(au risque de perdre toutes les macros, mais c'est juste un léger détail ! )

dhany

re

oui, tu as raison dhany, il faut en profiter pour supprimer les autres macros aussi

bonne soirée

Bonjour à tous,

Merci d'avoir pris un peu de votre temps pour ce problème

En fait, quelque soit la solution proposée, j'ai toujours, pour ce que je veux faire, un mauvais résultat du tri

Je m'explique : tous les département numériques sont bien classés

J'ai mit comme format de colonne 00 pour avoir 01 ou 06 parexemple

Mais l'exception Corse ? Il faudrait que 2A et 2B viennent entre 19 et 21

Est-ce impossible ? Comment faire ?

Cordialement

Sauveur

re

créer une colonne numérotée avec des identifiants selon lesquels tu vas trier

la France a choisi un système de numérotation non robuste, qui ne résiste pas aux modifications. Les fonctionnaires de Napoléon pensaient le monde immobile

rem : ils se foutent des évolutions par la suite, car ils ont tout le temps et l'argent pour s'y adapter et refaire leurs paperasses. Toi et moi, non.

les informaticiens doivent voir à long terme

crée tes ID

suggestion : de 10 en 10, comme les lignes en Basic, de manière à pouvoir insérer de nouveaux ID sans souci.

ton problème disparaît totalement

bon travail

Bonjour Scn68100 JMD le forum

Pour avoir le classement comme tu le souhaites avec corse entre cote d'or et corrèze, il suffit de filtrer sur les noms de département et non sur le code!! mais les Guadeloupe Guyane et autre DOM seront eux aussi classés Alpha!!

a+

Papou

note

la solution ci-dessus consistant à créer des ID (qu'on masque aux utilisateurs) est celle pratiquée avec succès depuis des dizaines d'années par tous les informaticiens qui gèrent des données, notamment quand il faut gérer des ID farfelus ou pas pratiques imposés par les utilisateurs

on évite ainsi tout blocage, et les évolutions sont faciles et ultra rapides (et souvent se font sans intervention)

[quote="dans son post de 08:39, jmd"]suggestion : de 10 en 10, comme les lignes en Basic[/quote]

ah ben ça, c'est la meilleure ! jmd qui parle de Basic !!! (lui qui déteste VBA !)


salut jmd,

si t'as déjà fait du Basic, pourquoi tu t'es pas mis à VBA ? VBA est pourtant du Basic aussi : « Visual Basic for Appplication »

contrairement aux premiers Basic, VBA est structuré et sans numérotation de ligne, donc c'est plus facile et agréable !

essaye ce code VBA :

Sub Essai()
  MsgBox "Hello world ! jmd va apprendre le VBA !!! youpi !!!!!"
End Sub

en général, on commence par ça : juste l'affichage d'un message. »

dhany

Bonjour le forum

SCN68100

je vous propose alors de créer directement votre liste personnalisée, ce qui vous permettra de trier selon vos envies.

Pour se faire :

  • Fichier
  • Options
  • Options avancées
  • tout en bas de liste à droite, cliquez sur Listes personnalisées.
  • dans matchcode en bas allez sélectionner les données de la colonne K, faire importer
toutes les données sont alors insérées dans la liste, les une en-dessous des autres.

- faire ajouter

ensuite cliquez n'importe ou dans votre tableau, puis allez dans ruban Accueil, trier-filtrer

choisir tri perso

puis dans la fenêtre de tri, trier par : code dept, , puis au-bout à droite, liste perso, allez sélectionner votre liste créée.

Voilà, espérant être clair, sinon n'hésitez pas.

Cordia5

4copie-de-tri.xlsx (15.86 Ko)

Je me rend compte que cette codification de département rend le tri impossible, du moins dans l'ordre que je veux

Effectivement, il faut créer une colonne invisible réservée pour ce tri, et y ranger les départements sous une autre codification

Merci à tous

Bonjour

pour ma part cela fonctionne très bien, les listes perso sont faites pour ça, (entre-autre).

capture

si tu obtiens cela, de 01à 988 en passant par 2A et 2B, alors tu dois pouvoir dans l'ordre que tu souhaites.

Cordia5

Re-bonjour,

C'est vrais, mais j'ai extrait cette difficulté d'un système plus vaste

Merci encore pour l'aide

[quote=dhany post_id=700843 time=1540715481 user_id=51200]

[quote="dans son post de 08:39, jmd"]suggestion : de 10 en 10, comme les lignes en Basic[/quote]

ah ben ça, c'est la meilleure ! jmd qui parle de Basic !!! (lui qui déteste VBA !)


salut jmd,

si t'as déjà fait du Basic, pourquoi tu t'es pas mis à VBA ? VBA est pourtant du Basic aussi : « Visual Basic for Appplication »

contrairement aux premiers Basic, VBA est structuré et sans numérotation de ligne, donc c'est plus facile et agréable !

[/quote]

je n'ai repris que l'idée de numérotation par ID de 10 en 10, très pratique dans certains cas de gestion de données

la liste perso de CORDIAS est sans doute une meilleure solution, car c'est une fonction d'Excel. Excel est bien pimenté, inutile d'ajouter des bricolages, même assez simples.

amitiés à tous

ah, ok ! merci pour tes infos !

Rechercher des sujets similaires à "erreur tri mauvaise macro"