[Excel]Probleem met VBA

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Wazzaaaaa
  • Registratie: Mei 2010
  • Laatst online: 11-08-2022

Probleem is opgelost!

Hallo,

ik probeer een excel macro werkend te krijgen maar om de een of andere reden lukt dit niet helemaal vlekkeloos. Heb al redelijk wat dingen geprobeerd. Heeft iemand van jullie een idee wat het probleem kan zijn?
Het probleem zit m in lijn 11, ik weet alleen niet precies waar. :?

Me.CoBoAandeel.Text is een waarde die verkregen wordt door een user form in te vullen d.m.v. een pulldown.
LiBoBeursgang.Value wordt op dezelfde manier verkregen.

code:
1
2
3
4
5
6
7
8
9
10
11
Dim wspick As Worksheet
Dim rng As Range

If LiBoBeursgang.Value = ("AEX") Then
    Set wspick = Worksheets("AEX Koersen")
ElseIf LiBoBeursgang.Value = ("AMX") Then
    Set wspick = Worksheets("AMX Koersen")
End If

Set rng = wspick.Range("A115:D180")
ws.Cells(iRow + 7, 4).Formula = "=VLOOKUP(" & Me.CoBoAandeel.Text & ";'" & wspick & "'!" & rng & ";3;FALSE)"

[ Voor 1% gewijzigd door Wazzaaaaa op 03-08-2010 16:35 . Reden: Probleem is opgelost! ]


Acties:
  • 0 Henk 'm!

Verwijderd

Nee...ik heb geen idee... 8)7

(zou handig zijn als je eerst zou vertellen wat er precies niet werkt...krijg je een foutmelding? Wat voor foutmelding? Wat heb je zelf al geprobeerd? Enz...)

Acties:
  • 0 Henk 'm!

  • Coffeemonster
  • Registratie: Juli 2000
  • Laatst online: 03-09 19:08
Als je een onderbrekingspunt zet op regel 11, kan je de waarden van de variabelen uitlezen (door er met de muiscursor boven te hangen) om zo te controleren of de betreffende cel wel een correcte formule krijgt toegewezen.

Volgens mij zijn wspick en rng geen string, maar een object. Volgens mij kan je die niet zo in een string bakken. Bovendien, als LiBoBeursgang.Value niet gelijk is aan AEX of AMX, dan is wspick ongedefinieerd. Dat gaat geheid mis in regel 11.

Look for something long enough and you will find it; look for something without understanding, and it will find you.
A normal day at the stock exchange


Acties:
  • 0 Henk 'm!

Verwijderd

neem eens een macro op waar je de vlookup (vert.zoeken) manueel inbrengt. kijk dan in het bijzonder naar het lijstscheidingsteken.
daarnaast kan het niet expliciet vernoemen van de objecteigenschap (in jouw formule bij de objecten wspick & rng) voor problemen zorgen.

Acties:
  • 0 Henk 'm!

  • Wazzaaaaa
  • Registratie: Mei 2010
  • Laatst online: 11-08-2022
Coffeemonster schreef op dinsdag 03 augustus 2010 @ 14:19:
Bovendien, als LiBoBeursgang.Value niet gelijk is aan AEX of AMX, dan is wspick ongedefinieerd. Dat gaat geheid mis in regel 11.
Klopt, alleen deze kan niet verkeerd ingevoerd worden omdat de gebruiker geen eigen waarde kan invullen maar alleen een keuze krijgt tussen AEX of AMX, waarbij hij standaard op AEX staat. Het stukje code wat checkt of dat het allemaal doet heb ik jullie bespaard.


Kopie van een ander forum bericht van mij:
Got it working! Figured out that i was missing the " " Around my text input for the lookup value, besides that i had the wrong defenition of a range.

Working code:
code:
1
2
3
4
5
Dim luws As String
luws = "'AMX Koersen'"
Dim naam As String
naam = Me.CoBoAandeel.Value
ws.Cells(iRow + 7, 4).Value = "=VLOOKUP(" & Chr(34) & naam & Chr(34) & "," & luws & "!A115:D180,3,FALSE)"

In this function the & Chr(34) does the trick to get the " " placed in the cell so the string value can be searched in the 'luws' worksheet.