Vert.Zoeken Criteria

Status
Niet open voor verdere reacties.

DeArie

Gebruiker
Lid geworden
15 jul 2016
Berichten
159
Goedemiddag,

Is het mogelijk om bij VBA de zoek criteria in de code erbij te schrijven ipv op de sheet?

Code:
Sub PrijzenAanpassen()


    Range("F10").Select
  
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],R10C12:R34C13,2,0),RC[-1])"
    Range("F10").Select
    Dim lr As Long
    lr = Cells(Rows.Count, "E").End(xlUp).Row
    Selection.AutoFill Destination:=Range("f10:F" & lr)
    Range("f10:F" & lr).Select
    Range("f10:f" & lr).Copy
    Range("E10:E" & lr).PasteSpecial Paste:=xlPasteValues
    Range("f10:f" & lr).ClearContents
    
End Sub

Dus in dit voorbeeld dat hij hieruit zoekt alleen dan in de code erbij geschreven?

Brieven Binnenland 0 - 20 gr € 0,85
Brieven Binnenland 20 - 50 gr € 1,70
Brieven Binnenland 50 - 100 gr € 2,55
Brieven Binnenland 100 - 350 gr € 3,40
Brieven Binnenland 350 - 2000 gr € 4,10

Brieven Buitenland EUR1 0 - 20 gr € 1,44
Brieven Buitenland EUR1 20 - 50 gr € 2,88
Brieven Buitenland EUR1 50 - 100 gr € 4,32
Brieven Buitenland EUR1 100 - 350 gr € 7,20
Brieven Buitenland EUR1 350 - 2000 gr € 8,64

Brieven Buitenland EUR2 0 - 20 gr € 1,44
Brieven Buitenland EUR2 20 - 50 gr € 2,88
Brieven Buitenland EUR2 50 - 100 gr € 4,32
Brieven Buitenland EUR2 100 - 350 gr € 7,20
Brieven Buitenland EUR2 350 - 2000 gr € 8,64

Brieven Buitenland ROW 0 - 20 gr € 1,44
Brieven Buitenland ROW 20 - 50 gr € 2,88
Brieven Buitenland ROW 50 - 100 gr € 4,32
Brieven Buitenland ROW 100 - 350 gr € 7,20
Brieven Buitenland ROW 350 - 2000 gr € 8,64

Brieven C4 XL € 4,10

Als dat mogelijk is heeft dat nog een specifieke naam? Krijg geen voorbeeld gevonden helaas.
 
Moeilijk zonder voorbeeld.
Gokje

Code:
Cells(1, 1) = Application.Index(Range("M1:M1000"), Application.Match("XL", Range("L1:L1000"), 0))

of

Cells(1, 1) = Range("L1:L2000").Find("XL").Offset(, 1).Value
 
Laatst bewerkt:
Dank voor je bericht, is helaas niet wat ik bedoel.
Grof weg zou het er zo uit moeten zien ( snap dat het zo totaal niet kan maar is wel duidelijker denk ik )

Code:
Sub PrijzenAanpassen()


    Range("F10").Select
  
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],Brieven Binnenland 0 - 20 gr € 0,85               € 4,10,2,0),RC[-1])"
                                                                             Brieven Binnenland 20 - 50 gr € 1,70
                                                                             Brieven Binnenland 50 - 100 gr € 2,55
                                                                             Brieven Binnenland 100 - 350 gr € 3,40
                                                                             Brieven Binnenland 350 - 2000 gr € 4,10

                                                                             Brieven Buitenland EUR1 0 - 20 gr € 1,44
                                                                             Brieven Buitenland EUR1 20 - 50 gr € 2,88
                                                                             Brieven Buitenland EUR1 50 - 100 gr € 4,32
                                                                             Brieven Buitenland EUR1 100 - 350 gr € 7,20
                                                                             Brieven Buitenland EUR1 350 - 2000 gr € 8,64

                                                                             Brieven Buitenland EUR2 0 - 20 gr € 1,44
                                                                             Brieven Buitenland EUR2 20 - 50 gr € 2,88
                                                                             Brieven Buitenland EUR2 50 - 100 gr € 4,32
                                                                             Brieven Buitenland EUR2 100 - 350 gr € 7,20
                                                                             Brieven Buitenland EUR2 350 - 2000 gr € 8,64

                                                                             Brieven Buitenland ROW 0 - 20 gr € 1,44
                                                                             Brieven Buitenland ROW 20 - 50 gr € 2,88
                                                                             Brieven Buitenland ROW 50 - 100 gr € 4,32
                                                                             Brieven Buitenland ROW 100 - 350 gr € 7,20
                                                                             Brieven Buitenland ROW 350 - 2000 gr € 8,64

                                                                             Brieven C4 XL 
    Range("F10").Select
    Dim lr As Long
    lr = Cells(Rows.Count, "E").End(xlUp).Row
    Selection.AutoFill Destination:=Range("f10:F" & lr)
    Range("f10:F" & lr).Select
    Range("f10:f" & lr).Copy
    Range("E10:E" & lr).PasteSpecial Paste:=xlPasteValues
    Range("f10:f" & lr).ClearContents
    
End Sub
 
Of je doet wat JVeer als eerste zei.
 
Beste Jveer En Edmoor

Mijn kennis van VBA is hier niet toereikend voor, kunnen jullie me misschien wat meer op weg helpen?
 
Waarom via VBA? Waarom geen bestandje geplaatst?
 
Beste VenA,

Hierbij het bestand waarvoor ik de bovenstaande code wil gebruiken. En ik nu elke keer de tarieven ernaast moet plakken leek het mij makkelijker als ik dat in de code erbij kon zetten.
 

Bijlagen

Waar mag ik beginnen te zoeken? 97 tabjes lijkt mij niet echt een voorbeeldbestand. Alles in losse tabjes zetten is nooit een goed idee.
 
Haha, die tabbladen gebruik ik om mijn facturen te maken dat zijn de specificaties.
Hiervan moeten op sommige blade de bedragen aangepast worden.
Vandaar ook mijn keus voor VBA.

Met de eerder geplaatste code en de tarieven op L10 t/m M34 werkt het precies zoals ik wil maar ik moet nu dus op alle tabbladen eerst de tarieven plakken en later weer verwijderen.
Dus leek het mij makkelijker omdat in die code te plakken.

Ik hoop dat het zo een beetje duidelijker is ( weet dat iets uitleggen niet mijn sterkste kant is :o )
 
Waar komen die tarieven dan vandaan? Kan je toch gewoon in tab 98 zetten en er dan naar verwijzen. Kortom ik begrijp er niet veel van. Hebben ze bij Quadient niet een paar slimme mensen rondlopen die jou verder kunnen helpen?
 
de tabbladen komen uit mijn (frankeer)machine welke ik voor mijn werkzaamheden gebruik.
De aantallen variëren afhankelijk van hoeveel klanten er post aangeboden hebben die maand.

En ongetwijfeld dat er bij Quadient mensen rondlopen die mij erbij kunnen helpen maar dat kost veel geld.
En ik ben hier op helpmij al vaak ongelooflijk goed geholpen vandaar dat ik de vraag hier stel.

Maar zou dus graag deze

Code:
Sub PrijzenAanpassen()


    Range("F10").Select
  
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-4],R10C12:R34C13,2,0),RC[-1])"
    Range("F10").Select
    Dim lr As Long
    lr = Cells(Rows.Count, "E").End(xlUp).Row
    Selection.AutoFill Destination:=Range("f10:F" & lr)
    Range("f10:F" & lr).Select
    Range("f10:f" & lr).Copy
    Range("E10:E" & lr).PasteSpecial Paste:=xlPasteValues
    Range("f10:f" & lr).ClearContents
    
End Sub

en deze:
Brieven Binnenland 0 - 20 gr € 0,85
Brieven Binnenland 20 - 50 gr € 1,70
Brieven Binnenland 50 - 100 gr € 2,55
Brieven Binnenland 100 - 350 gr € 3,40
Brieven Binnenland 350 - 2000 gr € 4,10

Brieven Buitenland EUR1 0 - 20 gr € 1,44
Brieven Buitenland EUR1 20 - 50 gr € 2,88
Brieven Buitenland EUR1 50 - 100 gr € 4,32
Brieven Buitenland EUR1 100 - 350 gr € 7,20
Brieven Buitenland EUR1 350 - 2000 gr € 8,64

Brieven Buitenland EUR2 0 - 20 gr € 1,44
Brieven Buitenland EUR2 20 - 50 gr € 2,88
Brieven Buitenland EUR2 50 - 100 gr € 4,32
Brieven Buitenland EUR2 100 - 350 gr € 7,20
Brieven Buitenland EUR2 350 - 2000 gr € 8,64

Brieven Buitenland ROW 0 - 20 gr € 1,44
Brieven Buitenland ROW 20 - 50 gr € 2,88
Brieven Buitenland ROW 50 - 100 gr € 4,32
Brieven Buitenland ROW 100 - 350 gr € 7,20
Brieven Buitenland ROW 350 - 2000 gr € 8,64

Brieven C4 XL € 4,10

samengevoegd zien voor vert.zoeken zodat ik dat niet telkens de zoek criteria hoef te plakken in al die tabbladen.
 
Nogmaals
Waar komen die tarieven dan vandaan? Kan je toch gewoon in tab 98 zetten en er dan naar verwijzen.
Hele berichten herhalen met dezelfde vraag heeft weinig toegevoegde waarde.
 
Heb nu de tabelmatrix in het eerste blad gedaan en ernaar verwezen. Denk gezien de reacties dat het niet mogelijk is wat ik voor ogen heb.

Nu loop ik alleen tegen een ander probleem aan.

Als alleen lijn 10 gevuld is dan geeft hij een fout code 1004, methode autofill van klasse range is mislukt.

Dit zal waarschijnlijk komen doordat er maar 1 lijn gevuld is en niet meerdere. wat moet hiervoor aangepast worden zodat hij het wel doet?
 
analoog aan jouw reactie, op het eerste blad staan alle mogelijke verzendopties (verzameld aan de hand van al je tabbladen) en de eenheidsprijs.
Nu zijn er sommige opties met 2 prijzen.
Het is nu aan jou om vooraf uit te maken hoeveel verschillende tariefplannen je wenst aan te maken
Daarna koppel je aan ieder tabblad een specifiek tariefplan.
De eerste keer veel werk, daarna peanuts.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan