Transfert automatique feuilles excel

tinitoune -  
pépé35530 Messages postés 2943 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 !
A voir également:

1 réponse

pépé35530 Messages postés 2943 Date d'inscription   Statut Membre Dernière intervention   1 389
 
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