[Excel] Trier des colonnes selon des valeurs

Bonjour,

je dois réaliser un programme contenant plusieurs colonnes et qu'il faut trier selon la première colonne (les lignes doivent rester cohérentes). J'ai réaliser le programme ci-dessous mais il peut trier que 3 colonnes au maximum et me marque un message d'erreur "Cette opération requiert que les cellules fusionnées soient de tailles identiques" mais je n'ai pas les même infos à marquer dans chaque cellule puis j'en ai beaucoup donc je ne vais pas changer les tailles

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("A3:J500").Select
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom '
Range("A3").Select
End Sub

Merci de me répondre et bonne journée @ vous

6 réponses

Résumé de la discussion

Aborde un tri dans Excel via VBA où il faut trier des colonnes par la première, préservant les lignes et évitant les erreurs liées aux cellules fusionnées. Plusieurs intervenants expliquent que les difficultés proviennent des cellules fusionnées et du tri sur des données hétérogènes, et recommandent d'ajuster la plage, d'utiliser colonnes fixes et de normaliser les données. D'autres proposent des solutions pratiques liées à la plage A3:J500, éviter les fusion et utiliser des boîtes de dialogue ou des boutons pour exécuter le tri via un code VBA robuste. Des échanges évoquent aussi l'usage d'un tri personnalisé et la différence entre lexicographique et numérique, précisant que le tri ne doit pas être influencé par les doublons ou les espaces.

Bobot (l’IA à votre service)
  1. Salut

    postes ton fichier xls sur http://www.cijoint.fr/, je jèterais un oeil.
    0
    1. Okay je l'ai mis sur votre site.
      Mais le problème c'est pourquoi ça ne marche pas au-delà de 3 colonnes ?? Et ce qu'il faut rajouter dans la macro car je ne vois pas ...
      0
    2. Bon, si tu le mets sur le site que je t'ai donné, il faut me donner le lien correspondant à ton fichier pour que je puisse l'ouvrir.

      Ensuite, il n'y a aucune raison pour que le tri ne marche que sur 3 colonnes. Techniquement, tu pourrais faire un tri sur les 255 colonnes...
      Donc c'est à cause de tes cellules fusionnées.
      C'est ca que je veux regarder :-)
      0
    3. Ah oui désolé j'ai oublié de mettre le lien ^^

      http://www.cijoint.fr/cjlink.php?file=cj201004/cijow3lZxo.xls
      0
  2. Bon, dans ton fichier, il n'y a pas de programme que tu dis avoir fait.
    Ensuite je ne trouve aucune cellule fusionnée qui pourrait poser problème.
    Et enfin, je n'ai aucun problème pour trier en fonction des adresses, de la colonne A à E en gardant les correspondances...

    Je peux te taper le programme et mettre un bouton sur ta feuille si tu veux, mais pour moi, tout marche...

    Ou alors tu as modifié ton fichier avant de le poster ?
    0
    1. Pfiouuuu je suis pas réveillé ce matin : http://www.cijoint.fr/cjlink.php?file=cj201004/cijiv0hwfY.xls

      J'ai modifié le fichier car y'a des données plus ou moins utile à l'entreprise : j'ai pas mis toutes les colonnes. Le programme est dedans mais j'ai un problème avec la première ligne quand j'active la macro ...
      Ne sachant pas combien d'établissements j'aurais ça ne change rien si dans la plage de données je prends plus large et qu'il y a des cellules vides ?
      0
    2. Bon je regarde ton nouveau doc (c'est le bon ce coup ci ? =P ) et te tiens au courant dans quelques minutes.
      Sinon, le fait d'avoir des cellules vides ne changent rien au tri.
      0
  3. Bon ca marche pour moi...
    J'ai rajouté une boîte de dialogue pour t'avertir quand c'est terminé et mis la plage de tri de A3 à J500.

    Voici le lien : http://www.cijoint.fr/cjlink.php?file=cj201004/cijPJpfjSU.xls
    0
    1. Je viens de relire ton précédent post...

      Tu dis que tu as enlevé des colonnes pour confidentialité ?
      Ok mais c'est peut être à cause d'elles que ton tri ne marchait pas...
      Parce que dans le doc que tu m'as envoyé, tout marchait parfaitement...
      0
      1. C'est ce que je me suis dit mais les autres cellules n'ont rien de plus que les premières.
        Le tableau que je t'ai envoyé c'est juste un copié-collé d'une partie de l'autre tableau et comme cela ça marche alors que le grand tableau ne marche pas.
        Le message d'erreur est "Cette opération requiert que les cellules fusionnées soient de tailles identiques" tu sais comment on peut résoudre cela ?
        0
      2. Aussi il y a des filtres pour chaque colonne c'est-à-dire qu'on peut choisir de visualiser qu'un seul arrondissement ou qu'un seul technicien ... ça pourrait venir de là ?
        0
      3. Oui, mais il faut que je vois ton tableau entier...
        Si tu veux cacher des données confidentielles, remplacent les par des trucs débiles, ce qui compte, c'est de voir ta mise en page complète...
        0
      4. Je crois que je viens de savoir pourquoi. J'ai fusionné certaines cellules des colonnes D et E dans le tableau que j'utilise.
        Faut-il que je les "défusionne" ou alors il existe un autre moyen ?
        0
      5. Oui il faut les défusionner.
        0
    2. Bonjour,

      J'ai un dernier petit problème. Dans la première colonne (colonne selon laquelle le tri doit être fait) il arrive que j'ai des nombres et il me les classes de la manière suivante 1, 11, 111, 2, 257, 3 ... alors que je voudrais un classement par ordre croissant sans être obligé de mettre des zéros devant à chaque fois.

      Avez-vous une solution ?
      0
      1. As tu vérifié que le format des cellules avec ces nombres est bien défíni en "Nombre" ? Sinon, il te les classera par ordre alphabétique (donc tous les 1... avant les 2... etc.)
        0
      2. Oui le format de cellules est bien définie en "nombre". Dans ces cellules il y a du texte et des nombres et je sais pas si ça peut y faire quelque chose puisque ce sont des adresses classées par nom de rue (ex : Général de Gaulle 613 rue du) et même en gardant le format nombre il me les classe par rapport au premier chiffre et pas au nombre total ...
        0
      3. C'est là le problème. Si tu mets du texte et des chiffres, il ne regardera que le premier chiffre pour classé et le second en cas de doublon.
        Par exemple, si tu as :

        1 blabla
        2 blabla
        19 blabla

        Ca sera classé comme ca :
        1 blabla
        19 blabla
        2 blabla
        0
      4. Dans mon cas j'ai forcément du texte et des chiffres donc en gros je peux pas ...
        0
      5. tes chiffres apparaissent toujours en premier ? Ou a la meme place dans la chaine de caractere ?
        Si oui, on peut toujours faire une macro...
        Mais c'est comme tuer une mouche au bazooka :-)
        0
    3. Bonjour,

      J'aurais une dernière question. Dans mon programme j'ai marqué comme sélection de A3 jusqu'à J5000 car la dernière colonne c'est la colonne J mais je ne connais pas le nombre total de lignes et j'en rajoute jour après jour.
      J'aurais aimé savoir comment je pouvais changer cela pour qu'il prenne toute la colonne ou qu'il classe jusqu'à la dernière cellule remplie.

      Merci de vos réponses et bonne journée @ tous ;)
      0
      1. Salut
        Tu peux mettre J65536, c'est la dernière ligne d'un fichier Excel (si t'es sous 2003).
        0