VBA excel

Résolu
calimero33160 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
calimero33160 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
up ?
0
florent5528 Messages postés 104 Date d'inscription   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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