VBA & Filtres

Fermé
Signaler
-
 Utilisateur anonyme -
Bonjour,

Je dois faire le tri a l'ouverture d'un fichier sur une colonne
Le tri doit se faire a partir de la ligne 3 .Actuellement il fait bien le tri croissant de la colonne 3 mais place tout sur la ligne 2, alors que ligne1 & 2 sont des titres.
Ce doit être tout con mais je ne trouve pas et je ne sais pas ce qu'il faut que je change sur mes codes ci dessous.

Si quelqu'un peu m'aider , ce serait trop super!


<code>Private Sub Workbook_Open() 

Sheets("BD").Select

Dim mdp As String

Application.ScreenUpdating = False

ActiveSheet.Unprotect "lilop16"
On Error Resume Next

Columns("A:BL").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Selection.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd

Feuil1.EnableAutoFilter = True
ActiveSheet.Protect "lilop16", UserInterfaceOnly:=True
Application.ScreenUpdating = True
Feuil1.Protect Contents:=True, UserInterfaceOnly:=True

Sheets("Nouveau").Select
Range("D5").Select

End Sub</code>
            
                

1 réponse

Bonjour,

Suggestion :

Option Explicit  

Public Const MDP = "lilop16"  
'  

Sub Test()  

    Dim Limite As Long  
      
    On Error Resume Next  
      
    Application.ScreenUpdating = False  
      
    Sheets("BD").Select  
    ActiveSheet.Unprotect MDP  
      
    Limite = ActiveSheet.Range("B65536").End(xlUp).Row  
    Range("B3:B" & Limite).Select  
    Selection.Sort Key1:=Range("B3:B" & Limite), Order1:=xlAscending, _  
        Header:=xlYes, OrderCustom:=1, MatchCase:= _  
        False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal  

    Columns("A:BL").Select 
    Selection.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd  
    Feuil1.EnableAutoFilter = True  
      
    ActiveSheet.Protect MDP, UserInterfaceOnly:=True  
    Feuil1.Protect Contents:=True, UserInterfaceOnly:=True  
      
    Sheets("Nouveau").Select  
    Range("D5").Select  
      
    Application.ScreenUpdating = True  

End Sub  
'  


En fait, je crois que la ligne [Columns("A:BL").Select] est de trop!
À valider :-)

Cdt

Lupin
0