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

foutje in VBA code

Status
Niet open voor verdere reacties.

Alexander86

Gebruiker
Lid geworden
22 feb 2007
Berichten
83
Yow,

Ik zit met een probleembij het programmeren in VBA, waarschijnlijk wel heel simpel maar toch vind ik het niet.

ik wil in cel L 17 deze formule krijgen:
=ALS(K19=Binnenkast!B63;VERT.ZOEKEN('Ingave blad'!K18;Binnenkast!A65:E68;2;0);"")&ALS(K19=Binnenkast!C63;VERT.ZOEKEN('Ingave blad'!K18;Binnenkast!A65:E68;3;0);"")&ALS(K19=Binnenkast!D63;VERT.ZOEKEN('Ingave blad'!K18;Binnenkast!A65:E68;4;0);"")"

als ik deze gewoon invul in een cel dan lukt het wel, maar via vba lukt het niet. Dit heb ik ingevuld in VBA:

Range("L17").Value = "=If(K19=Binnenkast!B63;VLOOKUP('Ingave blad'!K18;Binnenkast!A65:E68;2;0);"")&If(K19=Binnenkast!C63;VLOOKUP('Ingave blad'!K18;Binnenkast!A65:E68;3;0);"")&If(K19=Binnenkast!D63;VLOOKUP('Ingave blad'!K18;Binnenkast!A65:E68;4;0);"")"

ik heb ook al geprobeerd om ALS en VERT.ZOEKEN te vervangen door If en VLOOKUP, maar dit helpt ook niet.

Hopelijk kan mij iemand helpen aub.?

Mvg, Alexander
 
Alexander,
Is heel simpel. Zet je formule in de betreffende cel.
Start de Macro-recorder. Ga met de muis achter de formule staan in de formulebalk.
Klik op het groene vinkje links op je formulebalk.
Beeindig de opname met de Macro-recorder.
Kijk in de VBE naar het resultaat.
 
Alexander,

je moet in ieder geval .Value vervangen door .Formula


Probeer het dan nog maar eens.


Koosl
 
In VBA werk je altijd in het engels. Daarom moet je voor de scheidingstekens ook altijd een , gebruiken i.p.v. ;
Vervang je ; dus overal door , daarna zou het moeten werken.
 
Hallo,

alvast al bedankt voor de reactie, maar met de wijziging van de 3 zaken die hier werden voorgesteld werkt het nog altijd niet. bij de tip om de macro op te nemen lukt dit niet. er komt altijd een fout melding dat dit nie opgenomen kan worden.
dit is nu hier de laatste 'versie' van de formule die ik heb, maar nog altijd niet werkt:s

Range("L17").Formula = "=If(K19=Binnenkast!B63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,2,0),"")&If(K19=Binnenkast!C63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,3,0),"")&If(K19=Binnenkast!D63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,4,0),"")"

aan wat zou dit nog kunnen liggen dat er een fout in zit?

mvg, Alexander
 
2 opmerkingen:

- kan de formule niet simpeler gemaakt worden?

- de "" moeten er 4 zijn: """"

Wigi
 
Nog even gepuzzeld zonder bestandje maar met hernoemde tabbladen.
Onderstaande regel werkt!

Code:
Range("L17").Formula = "=If(K19=Binnenkast!B63,VLOOKUP(Ingave blad!K18,Binnenkast!A65:E68,2,0)," & Chr$(34) & Chr$(34) & "),If(K19=Binnenkast!C63,VLOOKUP(Ingave blad!K18,Binnenkast!A65:E68,3,0)," & Chr$(34) & Chr$(34) & "),If(K19=Binnenkast!D63,VLOOKUP(Ingave blad!K18,Binnenkast!A65:E68,4,0)," & Chr$(34) & Chr$(34) & ")"

Het probleem zat hem in het gebruik van de aanhalingstekens.
Deze kun je in VBA niet gebruiken als teken wat je wilt plaatsen. Daarvoor moet je dan Chr$ met het juiste nummer voor gebruiken. Chr$(34) is het dubbele aanhaalteken, Chr$(39) het enkele.
 
Yow,

hierbij zit het bestand bijgevoegd.

ik heb zojuist ook die nieuwe formule uitgeprobeerd maar dit lukt ook niet, als ik dit typ dan komt een venster met de titel: "waarden bijwerken: blad"

het is in cel L17 dat de formule zou moeten komen. deze moet enkel en alleen maar komen als er in J17 SLAGLAT komt te staan. als er GEEN SLAGLAT komt te staan moet de formule er niet komen. of er SLAGLAT of GEEN SLAGLAT komt te staan is afhankelijk van de keuze in cel D6. als je in cel D6 een keuze maakt met "zwaaideur" in de naam dan komt er GEEN SLAGLAT. bij alle andere mogelijkhedne is er wel SLAGLAT.

om de macro uit te voeren moet je wel na verandering van keuze in D6 2x links klikken met de muis in gelijk welke cel.

hopelijk lukt het toch nog.
 

Bijlagen

Deze werkt.
Meteen de verkorte code voor de dubbele aanhalingstekens van Wigi erin verwerkt.
Vraag voor blad komt doordat enkele aanhalingsteken verwijderd was (mag dus wel gebruikt worden) rondom de tabbladnaam. Extra aanbeveling: Gebruik alleen aaneengesloten namen voor tabbladen, eventueel met Underscore i.p.v. spatie. Dat voorkomt fouten.

Range("L17").Value = "=If(K19=Binnenkast!B63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,2,0),"""")&If(K19=Binnenkast!C63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,3,0),"""")&If(K19=Binnenkast!D63,VLOOKUP('Ingave blad'!K18,Binnenkast!A65:E68,4,0),"""")"

Ik heb hem ook in je sheet gezet.
 

Bijlagen

Bedankt Jan.

Nog wat korter:

Code:
Range("L17").Value = "=If(K19=Binnenkast!B63,VLOOKUP(K18,Binnenkast!A65:E68,2,0),"""")&If(K19=Binnenkast!C63,VLOOKUP(K18,Binnenkast!A65:E68,3,0),"""")&If(K19=Binnenkast!D63,VLOOKUP(K18,Binnenkast!A65:E68,4,0),"""")"

'Ingave blad'! mag weg nl. (3 keer)
 
Bedankt hé Jan en Wigi !!!

dit moest het zijn !!

ik wil niet moeilijk doen, maar wnn bv bij type binnendeur iets met zwaaideur is, dan komt er GEEN SLAGLAT , en wnn je dan de macro laat lopen (door 2x te klikken) dan komt er ipv eenheidsprijs '#waarde' is dit te vermijden dat dit niet komt?

als je dit tenminste nog ziet zitten om dat eventueel nog eens te bekijken?

heel erg bedankt hoor !!!

Alexander
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan