VBA trie automatique par date

yannfab

XLDnaute Nouveau
Bonjour à tous,

Dans le cadre de mon travail, j'ai créé un fichier Excel permettant de gérer la péremption des masques à cartouche que nous distribuons à l'accueil de notre site.

Grâce à la fonction "AUJOURDHUI" et à de la mise en forme conditionnelle sous forme de couleur, j'arrive à gérer sans problème.

Jusqu'ici tout va bien :D

A ce jour, je trie par ordre croissant les dates de péremption de mes masques grâce à la fonction "filtre automatique".
A chaque changement de masque, je suis obligé de changer la date de validité de mon nouveau masque et de réaliser manuellement le nouveau filtrage pour trier à nouveau par ordre croissant.

J'aimerais que le trie se fasse automatiquement dès modification de la date dans la cellule. J'ai vu sur certains forum que l'on pouvait le faire en vba mais je n'y arrive pas...

Si qqn a une solution, je suis preneur!

Merci
 

Pièces jointes

  • Gestion des masques accueil.xlsm
    15.6 KB · Affichages: 57

Caillou

XLDnaute Impliqué
Re : VBA trie automatique par date

Bonjour et bienvenue sur le forum,

1. tu enregistres une macro qui fait le tri comme tu veux : je l'ai fait, ça donne ça :
Code:
Sub macro_tri()
    ActiveWorkbook.Worksheets("Gestion des masques accueil").AutoFilter.Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Gestion des masques accueil").AutoFilter.Sort. _
        SortFields.Add Key:=Range("B3"), SortOn:=xlSortOnValues, Order:= _
        xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Gestion des masques accueil").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

2. si tu veux que cette macro s'éxécute à chaque fois que tu modifies une date dans ta feuille :
-tu vas dans l'éditeur VBA
-double clic sur Feuil1
-dans la fenetre Code, tu choisis Worksheet dans la liste déroulante en haut à gauche
- et Change dans la liste déroulante en haut à droite
- et tu appelles ta macro, je l'ai fait ça donne ça:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 2 Then
    macro_tri
  End If
End Sub

Caillou
 

yannfab

XLDnaute Nouveau
Re : VBA trie automatique par date

Merci pour l'accueil et la réponse rapide Caillou :D

La macro marche nikel, le trie est maintenant automatique.

J'aimerais en apprendre un peu plus sur le VBA et éviter de passer par des forums dans le futur. Que me conseillerais tu? Par quoi commencer?

Merci encore!!!!

yannfab
 

Discussions similaires

Réponses
12
Affichages
198
Réponses
12
Affichages
217
Réponses
2
Affichages
412
Réponses
4
Affichages
491

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal