• 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.

auto filter en dan snelanalyse vba

  • Onderwerp starter Onderwerp starter Ropw
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Ropw

Gebruiker
Lid geworden
12 apr 2017
Berichten
192
Bekijk bijlage ttttt.xlsx

Goedemorgen,
In een tabel wil ik graag via een macro het autofilter (CTRL-SHIFT-L) inschakelen en dan bv in kolom B (mogelijk via een keuze welke kolom) filteren op gegevens van feb en dan met snelanalyse (rechtermuisknop) het totaal daarvan laten berekenen. Als het autofilter weer wordt opgeheven, dient dat resultaat ook weer uit beeld te verdwijnen. wie kan me daarbij helpen?
groet rop
 
Let op: onderstaand is geen VBA oplossing (zoals gevraagd).


Ik zou dat oplossen met een draaitabel.

Zie de bijlage.

Tip 1: werk niet met samengevoegde cellen, daar krijg je vroeg of laat problemen mee.

Ik heb kolommen toegevoegd voor een tekst (waarop kan worden gesorteerd in de draaitabel).

Ik heb een kolom toegevoegd voor de maand (je kunt in de draaitabel ook filteren op de maand zonder toevoeging van deze kolom).

De opmaak heb ik aangepast op 00. Dit heeft als voordeel dat je dan eenvoudig kunt sorteren in de draaitabel (anders komen de maanden door elkaar te staan).

Ik heb een kolom toegevoegd voor de weekdag.

Zelf zou ik aanvullend nog 1 kolom maken voor de kas en bank, maar dat heb ik hier nu achterwege gelaten.

Kijk eens wat je van het voorbeeld vind. Heb je vragen of opmerkingen laat het gewoon even weten.
 

Bijlagen

Laatst bewerkt:
Hoi,

Bijzonder om te zien dat oeldere met een ander testbestand werkt dan ik....

Ik heb de samengevoegde cellen ongedaan gemaakt, want die blijven een 'bitch' in Excel bewerkingen.


Met deze code filter je februari er uit:

Code:
Sub Filtertje()
For K = 2 To 2 Step 1

    Blad1.Range("A3:G3").AutoFilter K, ">42766"
    
    Range("I1").Select
    Blad1.Cells(1, K - 0).Resize(Blad1.Cells.SpecialCells(11).Row, 3).Copy Range("I1")

With Blad1

            .AutoFilterMode = False

            .Range("A3:G3").AutoFilter

    End With

    
Next

Dim Msg, Style, Title, Response, MyString
Msg = "Genoeg gezien?"
Style = vbYesNo + vbQuestionOK
Title = "Maak keuze"
Style = vbYesNo + vbQuestion
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then

Sheets("Blad1").Select
    Range("I1:K40").Select
    Selection.ClearContents
        
End If

If Response = vbNo Then

ActiveSheet.Select
Range("A1").Select

End If


End Sub

Ik had geen zin om de som totaal ook nog in de macro te verwerken, dus dat is gewoon een formule in het werkblad.

NB Deze macro filtert in kolom B op data groter dan 31-1-2017, dus als je het filter wilt variëren heb je een andere macro nodig.Bekijk bijlage 306583Bekijk bijlage Kopie van ttttt (version 2).xlsb.xlsm
 
Laatst bewerkt:
@Jan

als in #3 een verkeerd bestand is bijgevoegd, kun je dat beter verwijderen.

Het is dan wel slim om dat in de tekst erbij te vermelden, dat je het oorspronkelijk bijgevoegde bestand hebt verwijderd.

Dan blijven draadjes ook leesbaar (nadat gegevens zijn verwijderd). Anders wordt door derden misschien verwezen naar die bijlage, die achteraf dan niet meer beschikbaar is. Dat is alleen maar verwarrend.
 
JanBG, dit forum heeft ook een corrigeerknop waarmee je het bestand kan verwijderen en opnieuw kunt plaatsen.
 
@HSV, je hebt ongetwijfeld gelijk, maar ik ben een boon als ik dat zie...:mad:
 
Knop: "Bericht aanpassen", daarna knop: "Ga Geavanceerd".
Naar onderen scrollen, "Beheer Bijlagen"
 
Toch nog even aan het klooien geweest.

Met deze code kun begin en einddatum van je filter instellen. Daarvoor moeten de data die gefilterd worden wel onder elkaar staan, dus dat heb ik in het bestand aangepast.

Code:
Sub AdvancedFilter()
    Sheets("Blad1").Select
    Sheets("DATA").Range("A4").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("H1:I2"), CopyToRange:=Range("A5:D5"), Unique _
        :=False
        
    Range("C6:D50").Select
    Selection.Copy
    Sheets("DATA").Select
    Range("F5").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
    
Dim Msg, Style, Title, Response, MyString
Msg = "Genoeg gezien?"
Style = vbYesNo + vbQuestionOK
Title = "Maak keuze"
Style = vbYesNo + vbQuestion
Response = MsgBox(Msg, Style, Title)
If Response = vbYes Then

Sheets("DATA").Select
    Range("F5:G50").Select
    Selection.ClearContents
        
End If

If Response = vbNo Then

ActiveSheet.Select
Range("A1").Select

End If
Bekijk bijlage Kopie van ttttt (version 3).xlsb-1.xlsm
 
Laatst bewerkt:
In een tabel wil ik graag via een macro het autofilter (CTRL-SHIFT-L)
Beiden bestaan niet in het voorbeeldbestand. Een tabel is een verzameling van eenduidige gegevens in dezelfde kolom. Een .xlsx kan geen macro bevatten.
Gewoon de gegevens gestructureerd invoeren en dan of een filter of een draaitabel gebruiken. Geen enkele VBA voor nodig.

@JanBG, De naam van een sub gelijk maken aan een gereserveerd woord binnen VBA lijkt mij niet zo'n handige keuze.;)
 

Bijlagen

bedankt allen, voor jullie meedenken. Dat samengevoegde cellen een crime zijn, weet ik inmiddels. Maar in het bestand wat ik gebruik levert dat geen enkel probleem op.
in werkelijkheid bestaat het bestand uit 60 kolommen en functioneert naar volle tevredenheid, maar een macrootje zou voor mij toch wel de handmatige repeterende acties vergemakkelijken, om het autofilter in te stellen en even via snelle analyse kijken wat b.v. het totaal is of het gemiddelde van een aantal bedragen. Ik ga weer verder experimenteren met de recorder.
groet
rop
 
Zeker als je werkt met 60 kolommen zou ik je vragen toch nog eens serieus naar de oplossing in #2 te kijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan