Bloquer 2 colonnes VBA pour filtration

Bonjour,

Je suis dans une impasse par rapport à mon fichier.

La filtration me bloque, vous trouverez ci-joint mon document excel.

Toutes les explications sont à l'intérieur.

Je vous remercie d'avance de l'aide que vous pourrez m'apporter

Jonathan

7excel-power1.xlsm (19.18 Ko)

bonjour

tu veux que les col A et B restent figées, et que tu puisses trier (et non filtrer ? ? ? ) les col C et D ?

Bonjour,

Tu confonds filtrage et tri... !

Si je comprends bien, tu veux pouvoir trier dans un sens ou l'autre en gardant fixes 2 colonnes ! Si cela :

Sub TriSaufA1B1()
    Dim plgFix, n%, i%, ad%
    With ActiveSheet
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        plgFix = .Range("C3:D" & n).Value
        If .Range("A3") > .Range("A" & n) Then ad = xlAscending Else ad = xlDescending
        Application.ScreenUpdating = False
        .Range("A2:H" & n).Sort key1:=.Range("A2"), order1:=ad, Header:=xlYes
        .Range("C3:D" & n).Value = plgFix
    End With
End Sub

Voilà qui fera les deux, tri selon l'ordre existant, il l'inversera à chaque fois ! et conserve C et D...

et un peu plus court que ton code enregistré ! Non ?

Bouton Tri sélectif pour tester.

Franchement tu gères !

C'est exactement ce que je voulais !!!!!!

Merci Beaucoup

Par contre serait possible d'avoir un petit tuto sur la formule très compliquée pour moi à assimiler par rapport a mon dossier (un autre que celui que je t'ai présenté)

jonathan

re

salut MFerrand

sans macro

6excel-power1.xlsm (19.34 Ko)

très compliquée pour moi

Sais-tu que le code que tu utilisais est largement plus compliqué ! Je ne te demanderai pas de me l'expliquer mais réfléchis au fait que tu enregistres du code sans savoir vraiment ce qu'il fait...

Ici c'est simple, on dimensionne le tableau, on prélève dans un tableau la plage à conserver fixe, on compare la première ligne et la dernière ligne de données en A pour savoir dans quel ordre elles se trouvent et déterminer le prochain ordre de tri, on trie (avec la méthode que l'enregistreur ne veut plus connaître mais qui pour tous les tris classiques est aussi efficace et s'écrit généralement en une ligne...), puis on rétablit la plage qui doit rester fixe.

Tu retrouveras cette liste d'opérations dans la macro, chacune occupant une ligne de code...

Cordialement.

Salut jmd !

Rechercher des sujets similaires à "bloquer colonnes vba filtration"