XL 2010 tri date avec la formule =DatSem(B$1;B3;C3)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shitoryu

XLDnaute Occasionnel
Bonsoir,
j'ai une colonne qui génère automatiquement la date dans une colonne : =DatSem(B$1;B3;C3); =DatSem(B$1;B4;C4); etc.
Cela donne les dates : lundi 28 septembre 2020, mardi, etc.

Tout fonctionne bien sauf que je n'arrive pas à faire le tri par date, le menu déroulant ne me propose que le choix A-Z ou Z-A ou part contenu.

J'ai essayé de transformer le format du contenu des cellules mais ça ne marche pas.

Une idée ?
En vous remerciant,
S.
 
Bonjour,

Avec du VBA cela reste possible.
VB:
Sub Tri()

    ActiveSheet.Unprotect
    
    Range("Tableau1[Colonne1]").Select
    ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort.SortFields. _
        Add2 Key:=Range("E5"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
    
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        
End Sub

Cordialement.
 
cool, merci beaucoup !
L'objet est que le tri soit possible pour chacune des colonnes et que la saisie de la date dans la colonne D soit verrouillée pour les utilisateurs (le tableau sera partagé).
j'ai fait quelques essais, mais je n'y arrive pas.
Merci à vous !
 

Pièces jointes

merci pour votre temps.
j'ai essayé, cela m'indique "erreur d'exécution 438", j'ai lancé le débogage mais c'est resté en erreur.
1601477655604.png
 
re,
la macro a été écrite avec l'enregistreur de macro. Essaie sur ton poste pour voir si la syntaxe est la même.

VB:
 ActiveWorkbook.Worksheets("2020 (janv-juillet)").ListObjects("Tableau1").Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("2020 (janv-juillet)").ListObjects("Tableau1").Sort. _
        SortFields.Add2 Key:=Range( _
        "Tableau1[[#All],[Ne pas écrire la date" & Chr(10) & "(ne pas modifier la formule)]]"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("2020 (janv-juillet)").ListObjects("Tableau1"). _
        Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .Apply
    End With
Cordialement.
 
merci encore ! très bonne idée pour la colonne C, parfait.
par contre si je comprends bien, il faut être en lecture seule pour que la colonne D ne soit pas modifiable. Par contre le tri à partir de la cellule D2 est inopérante dans ce cas. Je m'y prends mal ?
 
re,
Je ne comprend pas le sens de ta question, les cellules D3 : D498 sont verrouillées.
le verrouillage n'est effectif qu'à partir du moment où la protection de la feuille est activée.
Onglet Révision, Protéger, Ôter la protection de la feuille ou Protéger la feuille.
La macro tri retire la protection, fait le tri et remet la protection.
Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
12
Affichages
1 K
Retour