Trier des cellules avec formules

Résolu
pinpon59 Messages postés 324 Statut Membre -  
pinpon59 Messages postés 324 Statut Membre -
Bonjour,

Je n'arrive pas à trier par ordre alphabétique des cellules avec une formule.
Je m'explique :
ex : dans la colonne B j'ai 5 noms, dans la D j'ai 3 noms, et dans la F j'ai 9 noms (ces noms ont été rentrés avec une validation de données)

Je voudrais copier ces noms (donc au total 13) dans la colonne J, les trier par ordre alphabétique, et enlever les doublons( tout ça si possible en automatique) avec prise en compte s'il y a des changements dans les colonnes B, D et J, c'est a dire que si je change un nom dans l'une des colonnes B, D ou J, j'aimerai que le tri et la suppression des doublons se re-fasse s'il y a besoin.

Je joint le lien du fichier.

https://www.cjoint.com/c/CLmtdHtm3EZ

3 réponses

  1. via55 Messages postés 14392 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir

    Il faut faire un copier-coller special uniquement des valeurs pour ensuite pouvoir les trier et supprimer les doublons

    J'ai automatisé cette copie et la suite par une macro à déclencher avec le bouton sur la feuille
    https://www.cjoint.com/?0Lmu2S0H6FL

    Cdlmnt
    0
  2. pinpon59 Messages postés 324 Statut Membre 111
     
    Bonjour,
    c'est exactement ce que je voulais. Par contre est il possible de triée et de supprimer les doublons avec la liste actuelle (sans refaire une liste à coté) et j'aimerai savoir comment faire pour copier la macro dans d'autres onglet.
    Encore merci pour votre aide. Je me doutais qu'il fallait une macro, mais je ne sais pas du tout comment en faire une.
    Cordialement.
    0
    1. via55 Messages postés 14392 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour

      La liste à côté est obligatoire car les cellules de la colonne J contiennent les formules de références à d''autres cellules (ce qui occasionnait l'erreur REF lors du tri)

      Pour adapter la macro à d'autres onglets

      1) Il faut copier la macro et donner un nouveau nom à la Sub (par exemple tri2 au lieu de trietdoublons) pour chaque onglet différent et modifier les references d'adresse de feuille et de cellules qui ne seront pas les même (celles que j'ai mis en gras dans la macro)

      Sub trietdoublons()
      '
      Range("J2:J14").Select
      Selection.Copy
      Range("K2").Select
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
      Application.CutCopyMode = False
      ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Clear
      ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort.SortFields.Add Key:=Range( _
      "K2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
      xlSortNormal
      With ActiveWorkbook.Worksheets("vendredi 19 à 23").Sort
      .SetRange Range("K2:K14")
      .Header = xlNo
      .MatchCase = False
      .Orientation = xlTopToBottom
      .SortMethod = xlPinYin
      .Apply
      End With
      ActiveSheet.Range("$K$2:$K$14").RemoveDuplicates Columns:=1, Header:=xlNo
      End Sub

      2) Mettre un bouton dans l'onglet et lui affecter la macro correspondante (clic droit sur le bouton puis Visualiser le code et dans la Private sub indiquer le nom de la macro
      ex :
      Private Sub CommandButton1_Click()
      tri2
      End Sub

      Cdlmnt
      0
      1. pinpon59 Messages postés 324 Statut Membre 111 > via55 Messages postés 14392 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour
        OK merci. peut tu m expliquer plus précisément comment copier une macro, je ne mis connaît pas du tout
        merci.
        0
      2. pinpon59 Messages postés 324 Statut Membre 111 > via55 Messages postés 14392 Date d'inscription   Statut Membre Dernière intervention  
         
        bonjour
        OK merci. peut tu m expliquer plus précisément comment copier une macro, je ne mis connaît pas du tout
        merci.
        0
    2. via55 Messages postés 14392 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      bonjour

      Tu peux faire un copier coller à partir de mon précédent message

      Alt +F11 pour ouvrir l'éditeur Visual Basic
      Puis Insertion Module

      et tu colles la macro dans la partie droite blanche de la fenetre
      ensuite tu modifies les references de feuille dans les 3 lignes où elles se trouvent et éventuellement toutes les références de cellules si ce ne sont pas les mêmes

      et tu changes le nom de la macro sur la 1ere ligne

      enfin tu fermes l'éditeur et tu selectionnes la feuille où appliquer la macro
      pour activer la macro :
      soit tu vas dans le menu Developpeur, Macros et tu fais executer ta macro
      soit comme j'avais fait tu crées un bouton et tu lui affectes la macro

      pour créer le bouton : menu Developpeur, Inserer, Controle active X, Bouton
      ensuite clic droit sur le bouton Visualiser le code et entre les 2 lignes Sub et End sub tu mets le nom de la macro puis tu desactives le mode Création

      Si le menu Développeur n'apparait pas dans ta barre de menu en haut il faut aller dans Options Excel (à partir du bouton Office en haut à gauche) , Standard et cocher l'option Afficher l'onglet Developpeur

      Cdlmnt
      0
  3. pinpon59 Messages postés 324 Statut Membre 111
     
    bonjour,
    merci beaucoup d'avoir pris le temps de m'expliquer, j'ai un peu galérer pour comprendre au début, mais les explications sont claires, et j'ai réussi. Encore un grand merci.
    0