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

Range aanpassen binnen Macro

Status
Niet open voor verdere reacties.

Dappre

Gebruiker
Lid geworden
28 mei 2017
Berichten
102
Hi forumleden,

Wie kan mij helpen bij de onderstaande VB code die is gegengeerd d.m.v. een macro-opname:

ActiveSheet.Range("$A$1:$AJ$4071").AutoFilter Field:=26, Criteria1:=Array( _
"Den Haag", "Amsterdam", "Midden-Nederland", "Oost-Brabant", "West-Brabant") _
, Operator:=xlFilterValues
ActiveWindow.SmallScroll Down:=-30
Rows("9:9").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Regio").Select
ActiveWindow.SmallScroll Down:=-15
Range("A2").Select
ActiveSheet.Paste
End Sub

Wat ik in principe met deze macro doe is een filter toepassen op een kolom en deze vervolgens wegschrijven naar een tabblad dat overeen komt.
De uitdaging zit hem in de range die iedere actie verschillend kan zijn. Na het toepassen van de filter zal de range wijzigen en het plakken zal altijd vanaf rij A2 blijven.

Alvast bedankt.
 
Iets als dit?
Code:
Sub DemoJKP()
    ActiveSheet.Range("A1").CurrentRegion.AutoFilter _
            Field:=26, _
            Criteria1:=Array("Den Haag", "Amsterdam", "Midden-Nederland", "Oost-Brabant", "West-Brabant") _
          , Operator:=xlFilterValues
    ActiveSheet.Range("A1").CurrentRegion.Offset(1).SpecialCells(xlCellTypeVisible).Copy
    Worksheets("Regio").Range("A2").Paste
End Sub
 
Beste VenA, Ik dacht dat dit een ander probleem was vandaar dat ik een nieuw topic was gestart.
Sorry hiervoor! Ik zal naderen vragen in het voorgaande topci stellen.

Bedankt jkpieterse voor de oplossing, ik ben geholpen.
 
@jkpieterse,
Ik blijf me lichtjes storen aan:
-Het onnodig gebruik van ActiveSheet;
-Het onnodig gebruik van Specialcells;
-Het niet gebruiken van With;
-En volgens mij werkt deze niet:
Code:
Worksheets("Regio").Range("A2").Paste
-De gebruikte methode omdat de CutCopyMode 'aan' blijft staan;
-Het filter niet uitgezet wordt.

Wie kaatst kan......:p:d
Wel vreemd dat de code bij de TS wel werkt.

Mijn voorkeur en nog steeds leesbaar
Code:
Sub VenA()
With Range("A1").CurrentRegion
  .AutoFilter Field:=26, Criteria1:=Array("Den Haag", "Amsterdam", "Midden-Nederland", "Oost-Brabant", "West-Brabant"), Operator:=xlFilterValues
  .Offset(1).Copy Worksheets("Regio").Range("A2")
  .AutoFilter
End With
End Sub

Of iets minder leesbaar
Code:
Sub VenA()
With Cells(1).CurrentRegion
  .AutoFilter 26, Array("Den Haag", "Amsterdam", "Midden-Nederland", "Oost-Brabant", "West-Brabant"), xlFilterValues
  .Offset(1).Copy Sheets("Regio").Cells(2, 1)
  .AutoFilter
End With
End Sub
 
:-)
Overigens is er een Excel versie geweest die bij een gefilterd bereik gewoon alles kopieeerde, dus je moest wel specialcells gebruiken. Die gewoonte heb ik nog steeds.
 
Klopt @jkpieterse,

Die gewoonte had ik ook de jaren erna.
 
Beste forumleden,

Is er iemand die deze code netter kan maken zodat hij niet specifiek een bereik nodig heeft.
Het idee met dit stukje code is enkel terug springen van een bepaald tabblad naar een hoofd tabblad waarbij hij de filter op kolommen disabled.

Sheets("Totaal").Select
ActiveSheet.Range("$A$1:$AJ$4071").AutoFilter Field:=26
ActiveWindow.SmallScroll Down:=-21

Alvast bedankt.
 
Staat al in de aangereikte codes. Google maar even op CurrentRegion VBA.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan