VBA excel

Résolu/Fermé
calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012 - 16 juin 2010 à 18:07
calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012 - 17 juin 2010 à 14:00
Bonjour,

En fait j'ai un tableur avec des filtres (tri de A à Z), et je souhaite envoyer le classeur à des personnes qui ont un niveau "0" en informatique :-) Voila pourquoi je voudrais trouver un moyen d'intégrer une réactualisation du tri à chaque changement des données, pour pas qu'ils aient à déclencher soit un bouton de macro, soit le raccourci CTRL+ALT+L qui permet de réactualiser.
Une solution ? Merci d'avance.

6 réponses

calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012
17 juin 2010 à 11:11
up ?
0
florent5528 Messages postés 104 Date d'inscription mercredi 20 juin 2007 Statut Membre Dernière intervention 24 juin 2022
17 juin 2010 à 11:14
A la rigeur pour simplifier tu mets sur la page un "bouton" relié à ta macro avec marquer en gros "pour faire le tri, appuis moi dessus avec la souris"

Il n'y aura qu'a cliquer dessus et là même en étant une bille en informatique...

(solution que j'avais trouvé pour mon père et ça a marché)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
17 juin 2010 à 12:07
bonjour,

la macro ci dessous se déclenche à un changement dans la Zone A2:A100 et trie cette zone dans l'ordre ascendant (ta demande n'indique pas les coordonnées du tableau, donc...)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim liste As Range
Set liste = Range("A2:A100")
If Intersect(Target, liste) Is Nothing Then: Exit Sub
Application.EnableEvents = False
liste.Sort Range("A2"), xlAscending
Application.EnableEvents = True
End Sub


installation: copier cette macro
clic droit dans le nom de l'onglet-visualiser code
coller
0
calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012
17 juin 2010 à 13:41
ok ça c'est pas mal, je connaissais pas Worksheet_Change(ByVal Target As Range)

En fait plus exactement, si on a un tableau de A1 à B100, on peut utiliser range pour faire le setlist ? genre range (A1:B100) ?

Mon problème est que je souhaiterais que la colonne A et la colonne B restent liées. Si on a :
a 1
b 2
c 3
e 4
f 5
g 6
h 7

et qu'on change le a en z, que le 1 se mette à la fin aussi, qu'il suive le z quoi. C'est possible ? merci d'avance
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 17/06/2010 à 13:47
qu'on change le a en z, que le 1 se mette à la fin aussi, qu'il suive le z quoi.

tu voulais dire qu'il suive le a quoi ??

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim liste As Range 
Set liste = Range("A2:A100") 
If Intersect(Target, liste) Is Nothing Then: Exit Sub 
Application.EnableEvents = False 
range("A2:B100").Sort Range("A2"), xlAscending 
Application.EnableEvents = True 
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012
17 juin 2010 à 13:53
est ce que tu pourrais mettre des petits commentaires pour chaque ligne, parce que je comprends pas pourquoi le range du setlist c'est A2:A100.

et oui c'était bien qu'il suive le a :-)
0
calimero33160 Messages postés 31 Date d'inscription mardi 18 mai 2010 Statut Membre Dernière intervention 18 avril 2012
17 juin 2010 à 14:00
ok j'ai compris le truc ^^

Private Sub Worksheet_Change(ByVal Target As Range)
Dim liste As Range
Set liste = Range("B2:B100")
If Intersect(Target, liste) Is Nothing Then: Exit Sub
Application.EnableEvents = False
Range("A2:B100").Sort Range("B2"), xlAscending
Application.EnableEvents = True
End Sub

donc si je fais ça, ça fait la même chose avec pour base un tri en colonne B. Et c'est possible de pas s'arrêter à B100, je veux dire de sélectionner tout A et tout B ?
0