Transfert automatique feuilles excel

tinitoune -  
pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai cherché un peu partout sans trouvé la solution à mon problème...
Ma feuille 1 est une liste de bénéficiaires (5 colonnes) complétée au fur et à mesure. Elle est triée par ordre croissant de matricule en colonne E (de 1 à xx).

Je souhaiterais que la feuille 2 reprenne l'ensemble de la liste en feuille 1, mais triée par les noms en ordre alphabétique (colonne B).

Avez-vous la solution ?

Merci beaucoup pour votre aide !

1 réponse

  1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    On peut utiliser l'enregistreur de Macro.

    Mettre en place le filtre pour les deux feuilles (Accueil, trier et Filtrer, Filtrer).
    Activer la première feuille et créer la macro (onglet Développeur, Enregisstrer un macro), lui donner un nom un raccourci Clavier et définir le classeur.
    a partir de là, toutes les opérations à la souris seront enregistrées.
    Sélectionner toute la première feuille (Ctrl+A ou bien clic dans le rectangle à l'intersection des numéros de lignes et des noms de colonnes)
    faire un copier (Ctrl+C)
    Activer la deuxième feuille
    Faire un coller (Ctrl+V)
    Cliquer sur le menu déroulant situé à côté de l'en-tête de colonne contenant les noms et sélectionner trier dans l'ordre croissant)
    Arrêter l'enregistrement de la macro.
    Il suffira ensuite d'utiliser le raccourci clavier défini plus haut pour que la deuxième feuille reprenne toutes les infos de la première et classe les éléments d'après le nom et non pas le matricule.

    la programmation de la macro donnera cela :
    Sub Macro3()
    '
    ' Macro3 Macro
    '
    ' Touche de raccourci du clavier: Ctrl+w
    '
    Cells.Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A1").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    ActiveWorkbook.Worksheets("Feuil2").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Feuil2").AutoFilter.Sort.SortFields.Add Key:=Range _
    ("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
    xlSortNormal
    With ActiveWorkbook.Worksheets("Feuil2").AutoFilter.Sort
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
    End With
    End Sub

    A+

    pépé
    0