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

VBA/ Formule die waarde in veld invult

Status
Niet open voor verdere reacties.

Coowly

Gebruiker
Lid geworden
15 okt 2013
Berichten
23
Beste,

In de bijlage zit een soort kostprijs berekening.
Hier zijn in het tabblad 'afmetingen' verschillende afmetingen weergegeven in de vorm van Breedte en Hoogte..

In het tabblad 'Kostprijs Nieuw' zit de hele berekening.
Ik heb hierin de formules/ bereken waarde aangegeven met 'Breedte' en 'Hoogte'.
In elke formule waar nu 'Breedte' of Hoogte' wordt weergegeven, zou eigenlijk de daadwerkelijke waarde van de Breedte of Hoogte berekend dienen te worden.
Het resultaat wat hier uitkomt, zou weer terug gestuurd dienen te worden naar het tabblad afmetingen en dit voor alle 144 artikelen.

Ik weet niet waar ik moet beginnen, kan iemand mij helpen?

Bekijk bijlage Kostprijs berekening - Voorbeeld.xlsx

Alvast bedankt.
 
Hey Coowly,

Als ik het goed begrijp wil je alle afmetingen zoals deze staan weergegeven op het tabblad
"afmetingen" op een makkelijke manier verwerken in de formules.

Ik denk dat de meest makkelijke optie is om een validatiescherm op het tabblad "Kostprijs Nieuw"
te zetten welke de bijbehorende afmetingen oproept en deze verwerkt in de formules.

Mocht je nog vragen hebben dan hoor ik het wel.

Groet Neuz
 
Beste Neuz,

Bedankt voor de reactie!
Ja, wat ik eigenlijk wil is dat de formule alle afmetingen doorloopt. Daar komt een prijs uit, en die wordt dan achter de betreffende afmeting gezet.

Dit zou eigenlijk automatisch dienen te gaan.
Het kan natuurlijk zijn dat in de toekomst de staalprijs, of andere prijzen/ waarden aangepast worden. eigenlijk wil ik dan met 1 druk op de knop alle afmetingen een nieuwe kostprijs geven.

dit gaat volgens mij toch niet via een validatiescherm? je moet ze dan alsnog 1 voor 1 nalopen?

Groet,
 
Beste Haije,

Dit is wat ik aan het zoeken was.
Ik heb nu hier nog wel een vraag voer.
ik begrijp niet helemaal wat je nu gedaan hebt.

Ik probeer nu om dezelfde berekening, op een ander tabblad (i.v.m. andere prijzen/ waarden) uit te voeren, ik krijg nu alleen elke keer dezelfde waarde terug.

Dit zit in het tabblad dat de commandbutton aanroept, hoe kan ik (via een 2e button) de waarde van "tabblad 3" terug krijgen?
 
Laatst bewerkt door een moderator:
Coowly,

verklaar je nader, of plaats een nieuw en beter voorbeeld
 
Wat je moet weten is het volgende:

Op tabblad "Kostprijs Nieuw" heb ik cel D2 de naam hoogte gegeven en cel E2 breedte
M.b.v. offset verwijs ik naar de cel x regels onder de cel in Range()

Dan doet de macro het volgende:

Code:
[FONT=Courier New]Sub berekenopnieuw()
    x = 1                                                                  ' stel de teller in op de beginwaarde 1
Do Until Range("A1").Offset(x) = ""                                        ' doe totdat er in kolom A een lege cel gevonden wordt
    [hoogte] = Range("B1").Offset(x)                                       ' zet in benoemd bereik hoogte de waarde die in kolom B staat
    [breedte] = Range("A1").Offset(x)                                      ' zet in benoemd bereik breedte de waarde die in kolom A staat
    Range("C1").Offset(x) = [uitkomst].Value                               ' zet in kolom C de waarde die in tabblad "Kostprijs Nieuw" berekend is op basis van de waarden in hoogte en breedte
    x = x + 1                                                              ' verhoog de teller met 1
Loop
MsgBox "De nieuwe kostprijzen zijn berekend"                               ' als in kolom een lege cel voorkomt wordt de boodschap getoond
End Sub[/FONT]

Hopelijk is het nu duidelijker...
 
Wat je moet weten is het volgende:

Op tabblad "Kostprijs Nieuw" heb ik cel D2 de naam hoogte gegeven en cel E2 breedte
M.b.v. offset verwijs ik naar de cel x regels onder de cel in Range()

Dan doet de macro het volgende:

Code:
[FONT=Courier New]Sub berekenopnieuw()
    x = 1                                                                  ' stel de teller in op de beginwaarde 1
Do Until Range("A1").Offset(x) = ""                                        ' doe totdat er in kolom A een lege cel gevonden wordt
    [hoogte] = Range("B1").Offset(x)                                       ' zet in benoemd bereik hoogte de waarde die in kolom B staat
    [breedte] = Range("A1").Offset(x)                                      ' zet in benoemd bereik breedte de waarde die in kolom A staat
    Range("C1").Offset(x) = [uitkomst].Value                               ' zet in kolom C de waarde die in tabblad "Kostprijs Nieuw" berekend is op basis van de waarden in hoogte en breedte
    x = x + 1                                                              ' verhoog de teller met 1
Loop
MsgBox "De nieuwe kostprijzen zijn berekend"                               ' als in kolom een lege cel voorkomt wordt de boodschap getoond
End Sub[/FONT]

Hopelijk is het nu duidelijker...

Beste Haije,

Het is me deels duidelijk.
Wat ik nog niet begrijp is;
Hoe geef jij nu aan op welk tabblad hij de gegevens moet gaan zetten/ zoeken?

Ik snap nu eigenlijk nog niet hoe ik hetzelfde kan gaan doen in mijn overzicht voor alle tabbladen.
 
Coowly,

de macro wordt gestart door op een knop te klikken. Die knop staat op een bepaald tabblad.
De programmacode van de knop is als volgt:

Code:
Private Sub CommandButton1_Click()
     Call berekenopnieuw
End Sub

Als je de Sub berekenopnieuw() in een algemene module zet, dan bepaalt de knop waar je op klikt het tabblad dat gebruikt wordt.
 
Coowly,

de macro wordt gestart door op een knop te klikken. Die knop staat op een bepaald tabblad.
De programmacode van de knop is als volgt:

Code:
Private Sub CommandButton1_Click()
     Call berekenopnieuw
End Sub

Als je de Sub berekenopnieuw() in een algemene module zet, dan bepaalt de knop waar je op klikt het tabblad dat gebruikt wordt.

Sorry, maar ik kan het niet volgen.
Ik begrijp niet hoe/ wat ik nu moet doen om op het tabblad "afmetingen" 3x een verschillende prijsberekening te krijgen.
De prijsberekening welke in de 3 tabbladen "kostprijs Nieuw", "Kostprijs Ponsen & "Kostprijs Oud" staat.

ik zie dat de verschillende knoppen zoals ik in 'voorbeeld 3' heb, wel het goede tabblad doorlopen (daar lijkt het mij tenminste op), maar ik krijg niet de juiste waarde in de juiste kolom terug.
Als ik de macro laat lopen, krijg ik in alle 3 de kolommen in het tabblad "afmetingen" dezelfde waarde van de berekening "kostprijs nieuw" terug.
 
Coowly, je was er bijna!!
Je dient op elk tabblad de benodigde bereiken te benoemen.
De door mij gemaakte bereiken staan op tabblad [Kostprijs Nieuw], voor de andere tabbladen moetje andere bereiken benoemen, bv
PONShoogte, PONSbreedte en PONSuitkomst op tabblad [Kostprijs Ponsen]
OUDhoogte, OUDbreedte en OUDuitkomst op tabblad [Kostprijs Oud]

zie bijlage
 

Bijlagen

Coowly, je was er bijna!!
Je dient op elk tabblad de benodigde bereiken te benoemen.
De door mij gemaakte bereiken staan op tabblad [Kostprijs Nieuw], voor de andere tabbladen moetje andere bereiken benoemen, bv
PONShoogte, PONSbreedte en PONSuitkomst op tabblad [Kostprijs Ponsen]
OUDhoogte, OUDbreedte en OUDuitkomst op tabblad [Kostprijs Oud]


zie bijlage

Beste Haije,

Aha, ik begrijp nu aardig wat de bedoeling is.
Weer wat geleerd.

Ik snap echter 1 ding nog niet.
hij past nu de uitkomst aan in de juiste kolom op het tabblad "afmetingen".

Echter, de daadwerkelijke uitkomst klopt niet.
Hij zet nu enkel de uitkomst van afmeting 1200x1100 in elke regel neer als uitkomst.

ik krijg dus in de Kolom D en Kolom E 144x dezelfde uitkomst van de grootste afmeting te zien.
 
Op de tabbladen Ponsen en Oud werd in de formules nog verwezen naar de bereiken hoogte en breedte ipv resp PONShoogte/PONSbreedte en OUDhoogte/OUDbreedte.
Dat is nu aangepast
 

Bijlagen

Op de tabbladen Ponsen en Oud werd in de formules nog verwezen naar de bereiken hoogte en breedte ipv resp PONShoogte/PONSbreedte en OUDhoogte/OUDbreedte.
Dat is nu aangepast

Beste Haije,

helemaal geweldig, heel erg bedankt.

ik zie dat ik zelf nog een foute instelling had aanstaan.
ik had nog aanstaan dat formules enkel handmatig berekend werden.
Dan werkt de macro ook niet goed.

Heel erg bedankt voor je hulp en snelle reacties!
 
Norbert,

graag gedaan!
Één tip nog voor een volgende keer: als je direct reageerd op een bericht, dan svp zonder Quote, dat oogt een heel stuk rustiger. Gebruik de quote alleen als je reageert op een antwoord dat niet het laatste in de opsomming is.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan