Ongeldig gebruik van het sleutelwoord Me

  • Onderwerp starter Onderwerp starter ZZ1
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

ZZ1

Gebruiker
Lid geworden
21 jul 2009
Berichten
116
Hallo helpmijers.

Ik ben bezig met een lus aan het schrijven waar ik van andere helpmijers hulp heb gekregen.

Nu heb ik achter de volgende commandbutton de volgende code:
Code:
Private Sub SPPLMOM2Optellen_Click()
SPPLMOM2
End Sub

En SPPLMOM2 staat in module 1 en dat is de code:
Code:
Sub SPPLMOM2()
Dim teller As Integer
For teller = 1 To 9
    Me("SPPLMOM2Subtotaal_" & teller).Text = "€ " & Me("SPPLMOM2Prijs_" & teller).Text * Me("SPPLMOM2Aantal_" & teller).Text
Next teller
    SPPLMOM2Totaal.Text = "€ " + FormatNumber((CDbl(SPPLMOM2Subtotaal_1.Text) + CDbl(SPPLMOM2Subtotaal_2.Text) + CDbl(SPPLMOM2Subtotaal_3.Text) + CDbl(SPPLMOM2Subtotaal_4.Text) + CDbl(SPPLMOM2Subtotaal_5.Text) + CDbl(SPPLMOM2Subtotaal_6.Text) + CDbl(SPPLMOM2Subtotaal_7.Text) + CDbl(SPPLMOM2Subtotaal_8.Text) + CDbl(SPPLMOM2Subtotaal_9.Text)), 2)
End Sub

Als ik nu het userform laat dan krijg ik de volgende foutmelding:

Compileerfout:

Ongeldig gebruik van het sleutelwoord Me

Heb de hulp van F1 toets gebruikt maar kan dit probleem niet verhelpen.
Wie kan mij verder opweg helpen?


Alvast bedankt!
 
Schaf een boek aan over VBA. bijv. van Guy Hart-Davis.
Gebruik kortere code en namen voor de objekten:
Code:
for j= 1 to 300
   Me("tekst" & j).Text="test"
Next
ipv
Code:
for teller to 9
  Me("overbodiglangenaam_" & teller).Text="voorbeeld hoe het niet moet"
next
gebruik geen overbodiege zaken als formatnumber, CDbl etc.

Je kunt tekstvakken met cijfers optellen met textbox1.Text +textbox2.text.
De VBA compiler is net iets slimmer dan jij denkt.
 
Hallo snb,

Iedergeval bedankt voor je info! Ik zal kijken wat ik aan de namen kan doen en nog wat leerstof kan zoeken.

Hoe kan het dat ik deze foutmelding krijg als hij de macro nu uit een module moet halen en niet direct onder commandbutton?
Als ik heb direct onder de commandbutton neerzet dan doet hij het wel!
En ik verplaats hem naar een module en geef aan dat hij deze macro moet oproepen en dan komt de foutmelding over het sleutelwoord "Me".

Wie kan mij extra info geven hiervoor? Zodat ik het werkend kan krijgen.


Alvast bedankt!! :D
 
Hoe kan het dat ik deze foutmelding krijg als hij de macro nu uit een module moet halen en niet direct onder commandbutton?
Als ik heb direct onder de commandbutton neerzet dan doet hij het wel!
Daar staat bijna het antwoord op je vraag.
Soms kun je een antwoord deduceren.
Wat heb je gevonden in de hulpfunktie van de VBEditor bij de zoekterm Me ?
 
Hallo snb,

Ik heb "Me" nu veranderd in de naam van de userform. En deze werkt nu :D:D!!

Nou zit ik alleen nog met 1 foutje :(
Dat gaat over de functie die na Next teller staat:
Code:
 SPPLMOM2Totaal.Text = "€ " + FormatNumber((CDbl(SPPLMOM2Subtotaal_1.Text) + CDbl(SPPLMOM2Subtotaal_2.Text) + CDbl(SPPLMOM2Subtotaal_3.Text) + CDbl(SPPLMOM2Subtotaal_4.Text) + CDbl(SPPLMOM2Subtotaal_5.Text) + CDbl(SPPLMOM2Subtotaal_6.Text) + CDbl(SPPLMOM2Subtotaal_7.Text) + CDbl(SPPLMOM2Subtotaal_8.Text) + CDbl(SPPLMOM2Subtotaal_9.Text)), 2)

Die FormatNumber en CDbl heb ik er nog niet uitgehaald.
Als ik hier de naam van de userform neerzet werkt het niet.

Wat moet ik hier veranderen, of kan je hier makkelijk een lus van maken?

Alvast bedankt!! :D
 
Zet alle code die te maken heeft met het verwerken van de gegevens uit het userform in de module van het userform (en niet in een aparte macromodule). Dan hoef je ook niet te verwijzen naar het userform in de code.
 
Hallo snb,

Ik zou het graag door in een aparte module te plaatsen overzichterlijker maken.
Want mijn prijslijst bestaat uit verschillende type producten en dan wil ik ze in verschillende modules plaatsen om zo orde erin te brengen.

Ik heb iets vast over het hoofd gezien om die laatste code goed te doen. :(
Wat is hier de oplossing voor kun je mij daarmee helpen?

Alvast bedankt!! :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan