VBA Waarde cel gebruiken zonder cel te selecteren

Status
Niet open voor verdere reacties.

Morriss

Gebruiker
Lid geworden
7 feb 2008
Berichten
131
Goedemorgen,

Ik heb een macro in vba die op zich prima werkt. Echter zou ik graag het criterium van de filter (ActiveSheet.Range("$A$75:$A$2000").AutoFilter Field:=1, Criteria1:="1") willen laten afhangen van de waarde die in cel A30 staat. Hoe krijg ik dat voor elkaar?


Code:
   Range("A75").Select
    ActiveCell.FormulaR1C1 = "=Invulblad!R[-71]C"
    Range("D75").Select
    ActiveCell.FormulaR1C1 = "=Invulblad!R[-71]C[-2]"
    Range("H75").Select
    ActiveCell.FormulaR1C1 = "=Invulblad!R[-71]C[-3]"
    Range("K75").Select
    ActiveCell.FormulaR1C1 = "=Invulblad!R[-71]C[-8]"
    Range("A75:K75").Select
    Selection.AutoFill Destination:=Range("A75:K2000"), Type:=xlFillDefault
    Range("A75:K2000").Select
    
    Range("A75").Select
    Selection.AutoFilter
    Selection.AutoFilter
    ActiveSheet.Range("$A$75:$A$2000").AutoFilter Field:=1, Criteria1:="1"



    Range("A31:O52").Select
    Selection.ClearContents
    Range("O54").Select
    
    Range("A75:N2006").Select

    Range("A75:M2006").Select
    Selection.Copy
    Range("A31").Select
    ActiveSheet.Paste
    Range("G43").Select

Bij voorbaat dank!
 
Morriss,

Je vraag klinkt heel eenvoudig, wijzig Criterial1:= "1" gewoon in Criterial1:= Range("A30").
Maar dit zal wel te simpel zijn.
Ik zie ook dat je veel Select gebruikt dit is meestal niet nodig Verander de eerste twee regels maar in
Range("A75").FormulaR1C1 = "=Invulblad!R[-71]C" Scheelt de helft van de tijd en de schermen schieten niet alle
kanten op als de macro loopt.

Veel Succes.
 
Beste Elsendoorn2134,

Die .select komt vaak voor omdat ik de macro gewoon opgenomen heb, ik ben namelijk niet heel goed met vba.

De wijziging die je voorstelt lijkt me inderdaad de goede, maar ik krijg dan de volgende foutmelding:

"Fout 1004 tijdens uitvoering: door de toepassing of door object gedefinieerde fout"

Als ik dan naar foutopsporing ga is deze regel geel gekleurd:

Code:
ActiveSheet.Range("$A$75:$A$2000").AutoFilter Field:=1, Criterial1:=Range("A30")

Ik had deze oplossing zelf ook al geprobeerd geloof ik. Maar dan loop ik dus tegen deze foutmelding aan. Enig idee hoe ik dit op kan lossen?

Bedankt voor de moeite in ieder geval!
 
Morriss,

Even uit mijn blote hoofd (er zit toch bijna niets meer op) vervang Range("A30") met ActiveSheet.Range("A30").
Werkt dit niet, stuur dan even een testbestand dan kan ik hier naar kijken.

Veel Succes.
 
Activesheet ervoor geeft dezelfde foutmelding.

Hier een testbestandje, B75 t/m K2000 is de input, nu wil ik dus dat alle rijen met de waarde in cel A30 (in dit geval "1") gekopieerd worden naar A31 t/m K48

Bekijk bijlage test.xlsm

De macro heet "filteren", die andere macro is de originele.
 
Laatst bewerkt:
Moriss,

Je hebt een fout gemaakt in je functie aanroep, het is niet Criterial1 maar Creteria1 (zonder L).
Dit zal het probleem waarschijnlijk wel oplossen.

Veel Succes.
 
Je hebt gelijk Elsendoorn!! Zo istie opgelost, dankjewel! super.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan