Als fout (verticaal zoeken)

Status
Niet open voor verdere reacties.

Cruimel

Gebruiker
Lid geworden
21 feb 2009
Berichten
56
Hallo forumleden,

Regelmatig veel hulp en baat gehad met de topics die hier staan.
Ik zoek nu een reden waarom een bepaald stukje vba code een foutmelding geeft.
Hier eerst de code:

Code:
Range("G2").Select
    ActiveCell.FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],weekverdeling.xls!C2:C4,3,0));'aanmanen';VLOOKUP(RC[-1],weekverdeling.xls!C2:C4,3,0))"
    Selection.AutoFill Destination:=Range("G2:G65000")
Wat ik probeer te bereiken is, in kolom G2 beginnen met vertikaal zoeken, zoekgegeven kolom F, ophalen blad "weekoverzicht" om daar waarde kolom 3 op te halen.. Als vervolgens er geen gegeven is om op te halen dan moet de formule de tekst "aanmanen" presenteren.

Diverse kleine varianten geprobeerd, echter geen echte oplossing kunnen vinden. Ook niet met doorzoeken van dit forum.
Wie weet raad??

Cruimel
 
Laatst bewerkt door een moderator:
Verplaatst naar de juiste sectie
 
Beste huijb ;)

Verplaatst naar de juiste sectie

Ik zie niet in waarom je deze topic verplaatst hebt naar VBA :confused:

Deze past perfect in Excel, trouwens het gaat over een excel formule die omgezet wordt in VBA code.


Groetjes Danny. :thumb:
 
Hallo,

Ik plaats altijd mijn vraagjes op de excel sectie, ook mijn vorige vragen die ook met vba te maken hadden.
Ik zal even zoeken waar deze sectie is, hopelijk krijg ik daar ook reacties en hulp :rolleyes:

Cruimel
 
Beste huijb ;)

Hierbij het antwoord op je vraag;
Ik zoek nu een reden waarom een bepaald stukje vba code een foutmelding geeft.

De helft van de Excel vragen is met VBA beantwoord, DUS ???

Groetjes Danny. ;)
 
Hallo vba-ers,

Wie ziet wat er in de formule de fout veroorzaakt? Zit er teveel in of juist teweinig.

Hopelijk een tip?? :)

Dank,
Cruimel
 
Vermijd Select en activate in VBA-code

Code:
Range("G2").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],weekverdeling!C2:C4,3,0))," & Chr(34) & "aanmanen" & Chr(34) & ",VLOOKUP(RC[-1],weekverdeling!C2:C4,3,0))"
Range("G2:G65000").autofill
 
Beste Giga,

Dank voor je snelle antwoord, het stukje code gelijk ingelast.
Echter krijg de foutmelding:
Compileer fout
Het argumetn is niet optioneel
.Autofill is dan geselecteerd.

Waarschijnlijk zal er vooraf nog een voorwaarde hiervoor moeten komen? Als beginnend vba gebruiker.. Hoe pak je dat aan??

Dank,
Cruimel
 
Hallo Giga,

Je hebt me heel goed geholpen met deze laatste tip, werkt goed.
In de code heb ik voor het gemak van cel 2: cel 65000 gekozen voor FillDown.
Maar is de code ook flexibel toe te passen als de voorgaande rij waarop met VLookup wordt gezocht varieerd in lengte?
Is gewoon voor het cosmetisch aanzicht, met de hand zijn natuurlijk de rijen ook te verwijderen. Net zoals de formule na afloop te kopieeren en te vervangen door de waarde die is opgezocht (copy paste value??)
Als ik te hebberig wordt, gewoon melden hoor :o
Want ik ben al heel blij met deze aanvulling.

Cruimel
 
Hallo,

Ik ben weer een eindje verder. De selectie selecteren en de codes omzetten naar waardes is gelukt.

Code:
Range("F:M").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select

Het enige waar ik naar op zoek ben nog is. Het Vlookup met de voorgaande rij en de uitkomst .FillDown variabel maken aan de lengte van de rijlengte. Wat ik gebruik is van b.v. F2:F65000 dat zou ik graag flexibel zien aan de aantal rijden die het excel bestand dan bevat.

Iemand nog een suggestie? :rolleyes:

Dankjewel,
Cruimel
 
Laatst bewerkt door een moderator:
Het omzetten van formules naar waarden voor kolom F t/m M

Code:
With Sheets(1).UsedRange.Columns(6).Resize(, 7)
  .value=.value
End with
Variabel 'doortrekken'
Code:
Cells(2,7).resize(usedrange.rows.count).filldown
 
Hallo Giga,


Dankjewel voor de tips. Het omzetten van het resultaat in waardes is mooi korter zo en werkt ook goed.

Alleen het variabel vlookup stukje geeft een foutmelding.
Ik heb het geplaatst in plaats van : Range("K2:K35000").FillDown

Range("K2").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],weekverdeling!C2:C4,3,0))," & Chr(34) & "aanmanen" & Chr(34) & ",VLOOKUP(RC[-1],weekverdeling!C2:C4,3,0))"
Range("K2:K35000").FillDown

Zit de code op een verkeerde plaats?

Cruimel
 
Code:
With Range("K2")
   .Formula = replace("=IF(ISERROR(VLOOKUP($J2,weekverdeling!C2:C4,3,0)),#aanmanen#,VLOOKUP($J2,weekverdeling!C2:C4,3,0))","#",chr(34))
   .resize(.parent.usedrange.rows.count).FillDown
End with
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan