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

vervolg vraag op filteren

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

GerV

Gebruiker
Lid geworden
21 aug 2015
Berichten
175
Goedemiddag,

Ik wilde de code die ik vanmorgen van Snb heb gekregenook in een ander bestand gaan gebruiken omdat de te filteren range altijd varieert.
Hier wordt de uitkomst van de filtering gecopieerd naar een ander werkblad.
Ik merkte dat mijn sheets ("E").select erin resulteert dat niet het filterresultaat maar de gegevens van "E" continu worden gebruikt.
Dit probeer ik op te lossen door de regel Blad1.range("a1:p1").select in de macro op te nemen maar nu krijg ik foutmeldingen.

Waar ga ik de mist in?


Code:
Blad1.Columns(16).AutoFilter 16, Criteria1:="E"
    Blad1.Range("A1:p1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("E").Select
    Range("A1").Select
    ActiveSheet.Paste


GerV
 
Code:
Blad1.Columns(16).AutoFilter 16, Criteria1:="E"

Ga naar de VBEditor

Markeer in de code het woord 'autofilter' en druk op F1
Lees wat het eerste argument van autofilter inhoudt en wat het tweede.
 
Snb,

het filteren werkt perfect. In bovengenoemd sheet staat standaard een autofilter op elke kolom.

Het probleem zit in de kopieerslag. Doordat niet het blad1 opnieuw geselecteerd werd kopieerde de macro de gegevens van blad E.

Dat wilde ik ondervangen door <Blad1.Range("a1:p1").select op te nemen. Hier krijg ik de foutmelding op.

GerV
 
Laatst bewerkt door een moderator:
Beneden een stuk van de oude code die ik gebruikte. Door het vervangen van
Code:
Sheets("Totaal").Select
    ActiveSheet.Range("$A$1:$Q$200").AutoFilter Field:=16, Criteria1:= _
        "V"
moet ik ook het selecteren veranderen.

Dat dacht ik te doen door
Code:
Blad1.Range("a1:p1").select
op te nemen. Helaas krijg ik hier een foutmelding op.

Hier de oude code:


Code:
Sheets("Totaal").Select
    ActiveSheet.Range("$A$1:$Q$200").AutoFilter Field:=16, Criteria1:= _
        "V"
    Range("A1:P1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Sheets("V").Select
    Range("A1").Select
    ActiveSheet.Paste
    Sheets("Totaal").Select
    ActiveSheet.Range("$A$1:$Q$200").AutoFilter Field:=16, Criteria1:= _
        "P"
    Range("A1:p1").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("P").Select
    Range("A1").Select
    ActiveSheet.Paste

dit gaat dan nog 6x door voor andere selecties
 
Gebruik een lusje als je repeterende handelingen hebt.

Code:
Sub VenA()
  ar = Split("p v")
  With Sheets("Totaal").Cells(1).CurrentRegion
    For j = 0 To UBound(ar)
      .AutoFilter 16, ar(j)
      .Resize(, 16).Copy Sheets(ar(j)).Cells(1)
      Next j
    .AutoFilter
  End With
End Sub
 
VenA,

In mijn voorbeeld heb ik alleen de 1ste letter van de filter cq het werkblad genomen. De filternaam wijkt af van de werkbladnaam. Beide namen bevatten ook spaties.

Kun je me niet helpen met de code die ik al heb?
 
Laatst bewerkt door een moderator:
Vermijd 'Select' en 'Activate' in VBA.
 
snb,

ik heb bij vba voor smarties onderstaande code "geleend":

Deze werkt perfect zolang ik ze maar uitvoer terwijl het blad "totaal Zuid" voor staat (actief is).
Aangezien je aangeeft select en activate te vermijden vraag ik me af wat ik moet toevoegen dat de code vanaf elk blad werkt.

Code:
Sub test()

Sheets("Totaal Zuid").Columns(16).AutoFilter 1
With Cells(1).CurrentRegion
.AutoFilter 1, "A Vos"
 .Copy Blad9.Cells(1)
 .AutoFilter
End With

End Sub

GerV
 
Code:
Sub M_snb()
  With Sheets("Totaal Zuid").Cells(1).CurrentRegion
    .AutoFilter 1, "A Vos"
    .Copy Blad9.Cells(1)
   .AutoFilter
  End With
End Sub
 
VenA,

mijn kennis van Vba is niet zodanig dat ik jouw code krijg toegepast op mijn probleem.

Jouw code zal een stuk korter zijn maar de code die ik nu gebruik "begrijp" ik enigszins en kan dus bij problemen de oorzaak vinden (hoop ik).

Bedankt.

GerV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan