Berekening verplaatsing

Status
Niet open voor verdere reacties.

erikmourik

Nieuwe gebruiker
Lid geworden
27 mrt 2013
Berichten
3
Beste lezer,

Ik heb een vraag over het programmeren in Visual basic.
Ik ben bezig met een programma die uit een versnelling een verplaatsing bepaalt.
De bedoeling is dat er een bereik wordt opgegeven in de vorm van een frequentie en een tijd. Is de tijd 6 en de frequentie 3, dan wordt de som hiervan 18, dan zal er in kolom 3, 1 tot 18 onder elkaar komen te staan. De tijd wordt gedeeld en deze zal in kolom 4 optellen tot 6 (dus 0.33, 0.66, 1, 1.33 enz)
De versnelling moet handmatig worden ingevoerd in kolom 4 tussen 1 en 18 (er wordt gecheckt of dit ook zo is).
Mijn vraag is nu: hoe ga ik van die 18 opgegeven versnellingen de verplaatsing berekenen door één keer de berekening toe te passen?
Deze berekening ziet er zo uit: moet er ongeveer zo uit komen te zien:

Code:
tijd = Sheets("blad2").Range("C3").Value
v = tijd * a
s = tijd * v
a=?

Tijd wordt als vast genomen uit cel 3. Alleen moet de versnelling niet alleen uit D3 worden gehaald, maar dus ook verder. (D4, D5, D6 enz.)
De berekende verplaatsing per versnelling moet weer onder elkaar in kolom 5 worden neergezet.
Hebben jullie een idee hoe ik dat ga doen?
 
Laatst bewerkt door een moderator:
Wat ik niet helemaal begrijp, is dat je voor het uitrekenen van de snelheid de versnelling gebruikt, terwijl je die niet weet (" a=?" ). Of zit ik nu dom te doen?
Alle mogelijke formules m.b.t. verplaatsing:
Code:
s=v*t
s=0,5at^2 (>a= 2 *s /t^2 ; t = wortel (s / 2*a) ) 
v=at  (-> a = v/t)
 
Laatst bewerkt door een moderator:
Hoi AndreazZz,

Dom is het zeker niet, was daarin misschien niet helemaal duidelijk. Het idee is om de versnelling handmatig op te geven binnen het uitgerekende bereik. Dan pakt Visual Basic deze waarden en maakt hier de verplaatsing van. Het moeilijkste was alleen om deze berekening eenmalig toe te passen op elke versnelling en hier in de cel ernaast in het berekende bereik als verplaatsing neer te zetten. Ik heb het als volgt opgelost en met deze methode werkt het ook:

Code:
aantal_rijenmeetwaarden = Sheets("Blad2").Cells(Cells.Rows.Count, 2).End(xlUp).Row
aantal_rijentijd = Sheets("Blad2").Cells(Cells.Rows.Count, 3).End(xlUp).Row
aantal_rijenversnelling = Sheets("Blad2").Cells(Cells.Rows.Count, 4).End(xlUp).Row

If aantal_rijenversnelling < aantal_rijentijd Then
MsgBox "U heeft binnen het opgegeven bereik niet alle versnellingen ingevoerd. Doe dit alsnog voor een correcte berekening"
GoTo einde:
End If

For verplaatsing = 3 To aantal_rijenmeetwaarden
tijd = Sheets("blad2").Range("C3").Value
a = Sheets("blad2").Range("D" & verplaatsing).Value
v = tijd * a
s1 = (tijd ^ 2 * a)
s = v * tijd + (tijd * s1)
Sheets("blad2").Range("E" & verplaatsing).Value = s * 100
Next verplaatsing
End If

einde:
 
Laatst bewerkt door een moderator:
Aah, zo zat het! Sorry, ik kan niet altijd helemaal helder nadenken.
Maar is het nu opgelost (daar lijkt het wel op, denk ik)? Zet dan gelijk de vraag bovenaan op opgelost;)
Heel veel succes nog met je VB!
 
Ja, het probleem is opgelost! Bedankt voor je input!
Ik wachtte even jouw reactie nog af, zal hem nu op beantwoord zetten.
 
De vraag is nu dus, gaat het wel over Visual Basic of gaat het over Visual Basic for Applications?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan