Macro pour trier automatiquement sans cliquer dans un bouton

Résolu/Fermé
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - Modifié par kikou93 le 30/12/2015 à 22:33
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 - 31 déc. 2015 à 22:11
Bonjour,

mon problème est le suivant :

J'ai une liste de contacts avec :

Les photos dans la colonne D ( de D7 à D300 ), les nom dans la colonne E ( de E7 à E300 ) et les numéros dans la colonne F ( de F7 à F300 ).

Je veux les trier automatiquement de A à Z par rapport au nom (Colonne E) bien sûr sans cliquer dans un bouton et à chaque fois que j'entre un nouveau nom.
J'ai fait des recherches et j'ai trouvé que néné à crée le macro suivant :

Private Sub Worksheet_Activate() 
Range("B5:C22").Select 'plage par exemple où sont tes noms et adresses
Selection.Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'B5 est la cellule où il y a le premier nom
Range("B5").Select
End Sub


Mais j'arrive pas à l'adapter à mon macro.

Pouvez-vous m'aider à écrire un macro pour ça s'il vous plaît.

Merci d'avance pour votre aide.
A voir également:

1 réponse

eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
30 déc. 2015 à 23:11
Bonjour,

tu n'arrives pas à l'adapter, le mieux c'est de déposer un fichier réduit et anonyme dans ce cas qu'on ait tous les éléments.
Cette macro se lance à l'activation de la feuille. Va sur une autre feuille et revient, ton adaptation est peut-être correcte
eric

0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
Modifié par kikou93 le 31/12/2015 à 00:01
j'ai fait comme tu m'a demandé mais la feuille ne veut plus s'ouvrire, le message d'erreur suivant s'affiche :

Microsoft Excel a cessé de fonctionner 
Un problème a fait que le programme a cessé de fonctionner correctement. Windows va fermer ce programme et vous indique si une solution est disponible
heureusement que je l'ai enregistré 2 fois.


voici le macro que j'ai crée :

Private Sub Worksheet_Activate() 
Range("D7:H12").
Selection.Sort Key1:=Range("E7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("E5").Select
End Sub


Voici un exemple du fichier :
https://www.cjoint.com/c/ELExa6hWs2K
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
31 déc. 2015 à 16:25
Aucun intérêt à trier après chaque saisie. Ta ligne va bouger et il faudra que tu la recherches pour compléter la saisie.
Supprime la fusion de cellule et met un simple filtre automatique sur la ligne 6, tu y trouves le tri. En 2 clic c'est trié. Pas vraiment besoin de vba...
eric
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
Modifié par kikou93 le 31/12/2015 à 21:14
Merci pour ta réponse.

Je comprends ce que tu veux dire et tu as raison, mais moi je vais utiliser un macro pour entrer les valeurs des 5 cellules (exemple A10, B10, C10, D10, E10) de la même ligne en même temps alors ça n'affecte en rien le triage automatique.

Je veux qu'il trie de A à Z par rapport à la 2ème colonne (B) et quand par exemple la cellule B10 se déplacer les autres cellules de la même ligne (A10, C10, D10, E10) se déplacer avec elle, et tout ça automatiquement sans aucun bouton .

J'espère que tu comprends ce que je veux dire.
0
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
31 déc. 2015 à 22:11
Merci eriiic de m'avoir consacré du temps.

J'ai fini par trouver une solution qui me convient la voici :

Private Sub Worksheet_Change(ByVal Target As Range)
Range("D7:N303").Select 'plage par exemple où sont tes noms et adresses
Selection.Sort Key1:=Range("E7"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'E7 est la cellule où il y a le premier nom
Range("E7").Select
End Sub


Mais d'abord il faut créer un macro qui permet de remplir les 5 cellules de la meme ligne en même temps.
0