• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Filteren ALLE tabbladen in een werkmap

Status
Niet open voor verdere reacties.

STM

Gebruiker
Lid geworden
30 jan 2012
Berichten
55
Geachte,


Ik ben op zoek hoe ik met vba-code aan de slag kan gaan voor het filteren van ALLE tabbladen in een werkmap, bij het openen van deze werkmap

Filteren kolom A sorteren van A tot Z
Kolom C lege cellen verwijderen en dan pas sorteren van A naar Z
Kolom E sorteren van A naar Z

Kan iemand mij daarbij helpen of is het niet mogelijk.

Dank,

Jo M.
 
Kolom E sorteren van A naar Z gaat (begrijpelijkerwijs) niet
 
Sorry,


Ik heb jullie op een verkeerd been gezet.

Zie bijlage

Dia1.JPG


zou hier een oplossing mogelijk voor zijn ???,


Dank

Jo M

Beste,


Zou het mogelijk zijn met VBA dit op te lossen ??

Dank

JO M
 
Laatst bewerkt door een moderator:
Als je eerst kolom A van tot Z sorteert
En daarna kolom E van Z tot A sorteert verdwijnt de eerste sortering.
Dus wat wil je precies?
 
Beste,



Sorry voor de late reactie, ik heb geprobeerd het probleem nog even duidelijk te stellen zoals ik het zou willen.
Ook een poging gedaan een code te schrijven maar komt steeds tegen een foutmelding aan.

Hierbij toegestuurd het bewuste document zoals ik het vandaag heb, kon de excel file niet doorsturen te groot.
[SQL]
Sub filterenAlleBladen()
Application.ScreenUpdating = False

Dim p As Integer, q As Integer
p = Worksheets.Count
For q = 1 To p
With Worksheets(q)
.Unprotect Password:="TEST"
With Worksheets(q).Sort
.SortFields.Clear
.SortFields.Add Key:=Range("B3:B15"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Range("B1:B15")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
.Protect Password:="TEST"
End With

Next q <-------- HIER KRIJG IK DE FOUTMELDING -- NEXT ZONDER FOR
Application.ScreenUpdating = True
End Sub[/SQL]


Dank voor de moeite,

Jo M.
 
Code:
Sub filterenAlleBladen()

    Application.ScreenUpdating = False
 
    Dim q As Integer

    For q = 1 To Sheets.Count
        With Sheets(q)
            .Unprotect Password:="TEST"
            .SortFields.Clear
            .SortFields.Add Key:=Range("B3:B15"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With .Sort
                .SetRange Range("B1:B15")
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            .Protect Password:="TEST", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
        End With
    Next q
    Application.ScreenUpdating = True
    
End Sub
 
Volgens mij moet het zo zijn:

Code:
Sub filterenAlleBladen()
Dim q As Integer
    
    Application.ScreenUpdating = False
    
    For q = 1 To Sheets.Count
        With Sheets(q)
            'Paswoord verwijderen
            .Unprotect Password:="TEST"
            
            'Code om te sorteren
            With .Sort
                'Wissen vorige sleutels
                .SortFields.Clear
                
                'Aanmaken nieuwe sleutels
                .SortFields.Add Key:=Range("A3:A15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                .SortFields.Add Key:=Range("C3:C15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                .SortFields.Add Key:=Range("E3:E15"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                
                'Uitvoeren
                .SetRange Range("A3:E15")
                .Header = xlYes
                .MatchCase = False
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
                .Apply
            End With
            
            'Paswoord terug opzetten
            .Protect Password:="TEST", DrawingObjects:=True, Contents:=True, Scenarios:=True, AllowFiltering:=True
        End With
        
    Next q
    
    Application.ScreenUpdating = True
End Sub

Merk op dat de volgorde van de kolommen en de range niet is wat je nodig hebt.
Aanpassen is dus de boodschap!
 
Beste,


Dit is het, hij doet perfect wat ik gevraagd heb met andere woorden opgelost !!!


Dank U voor de gedane inspanning.


Jo M.
 
Dit lijkt me voldoende:

Code:
Sub M_snb()
   For Each sh In Sheets
     sh.Range("A3:E15").Sort sh.Range("A3"), , sh.Range("C3"), , , sh.Range("E3")
   Next
End Sub
 
Beste,

Hartelijk dank deze werkt perfect maar niet op de beschermde bladen,
bij nader toezien heb ik gemerkt dat de blanco lijn niet verborgen worden pas dan is het perfect wat ik heb gevraagd heb maar toch al zeer tevreden.

Had ik over het hoofd gezien !


Dank U voor de geleverde inspanningen.


Jo M.
 
Sorry,

Ik krijg nu ook een foutmelding bij het heropenen van het document zoals in de bijlage, wat zou daar de reden van zijn ??

Jo M.


Dia1.JPG
 
Wat heb je in ThisWorkbook staan ??
 
Beste,

Dit staat in ThisWorkbook

Code:
Option Explicit

Private Sub Workbook_Open()

Application.ScreenUpdating = False
Application.DisplayAlerts = False
   
   Dim sh As Worksheet
 For Each sh In Sheets
 
 sh.Unprotect Password:="test"

  '   sh.Range("A8:e210").Sort sh.Range("e8"), , sh.Range("b8")
     
     sh.AutoFilter.Sort.SortFields.Clear
    sh.AutoFilter.Sort.SortFields.Add Key:= _
        Range("B7:B219"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With sh.AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
     sh.Range("$A$7:$AD$219").AutoFilter Field:=5, Criteria1:="<>"
    sh.AutoFilter.Sort.SortFields.Clear
    sh.AutoFilter.Sort.SortFields.Add Key:= _
        Range("E7:E219"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With sh.AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

        sh.Protect Password:="test", _
        DrawingObjects:=False, _
        Contents:=True, _
        Scenarios:=True, _
        AllowFormattingCells:=True, _
        AllowFormattingColumns:=True, _
        AllowFormattingRows:=True, _
        AllowInsertingHyperlinks:=True, _
        AllowSorting:=True, _
        AllowFiltering:=True, _
        UserInterFaceOnly:=True
    Next sh
    
    ' openings-venster
  ActiveWindow.Zoom = 65
   
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
     
  Range("A8").Select

End Sub


Nogmaals dank,

Jo M.
 
Laatst bewerkt:
Waar komt die Autofilter plotseling vandaan ??
Die hoort daar helemaal niet thuis.
 
Beste,

Zoals ik in voorgaande thread reeds gemeld had ik graag gewild had dat de blanco-rijen verborgen zouden zijn na de filtering (sortering).

Ondertussen met het gebruik van U aangegeven code ben ik erachter gekomen dat het mij ook niet mogelijk was
na het sorteren in A3-- de kolom D3 te filteren naar vb: alle mensen behalve deze NIET uit de stad Brugge

sh.Range("A3:E15").Sort sh.Range("A3"), , sh.Range("d3"), , , sh.Range("E3")

Vandaar mijn poging ertoe, maar helaas mislukt ?

Sorry voor het niet tijdig vermelden ervan.


Jo M.
 
Zolang je filteren en sorteren blijkbaar als equivalenten beschouwt kun je beter eerst eens het boek 'VBA voor dummies' kopen, en van voor naar achter doornemen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan