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

Excel VBA formule

Status
Niet open voor verdere reacties.

raoulduivestein

Gebruiker
Lid geworden
7 aug 2012
Berichten
115
Goedemiddag,

Ik probeer een berekening te maken in VBA met informatie uit excel cellen.
De laagste uitkomst moet vervolgens worden geplakt in excel cel h3
wie kan mij helpen? zie bijlage :)

Bekijk bijlage Berekening.xlsm
 
Laatst bewerkt:
Met formule
 

Bijlagen

  • Berekening(jp).xls
    37,5 KB · Weergaven: 41
Beste Niels,

Bedankt voor je oplossing!

Ik snap alleen onderstaand gedeelte van de code niet zou je me daar wat meer uitleg over kunnen geven :)

Code:
Private Sub TextBox1_AfterUpdate()
For i = 1 To 3
Controls("textbox" & i + 1).Value = Sheets("blad1").Cells(2 + i, 2) + Sheets("blad1").Cells(2 + i, 3) * TextBox1.Value
Next
End Sub

Groet,

Marvin
 
Ik ben zo slecht in het uitleggen van code:

Private Sub TextBox1_AfterUpdate()
For i = 1 To 3
voor i met een waarde van 1 t/m 3 , dus eerst i=1 voer stappen tot next uit , dan i = 2 voer stappen tot next uit enz.
Controls("textbox" & i + 1).Value = Sheets("blad1").Cells(2 + i, 2) + Sheets("blad1").Cells(2 + i, 3) * TextBox1.Value
textbox i(1) +1= textbox2 (na next krijgt i een waarde van 2 dus wordt het textbox3)
de waarde die in de textbox moet komen is:
blad1 cel 2+i(1),2) (cel verwijzing wordt aangegeven dmv (rij,kolom) dus cel B3 + cel (3,3) dus C3 * de waarde van textbox1

bij de volgende waarde van i wordt het B4 en C4
Next volgende waarde van i
End Sub

Niels
 
Nogmaals bedankt voor je begrijpelijke uitleg.

In ben de code nu een beetje aan het aanpassen, maar loop tegen een probleem aan.
Als ik de formule langer maak, krijg ik een foutmelding..

Wat doe ik verkeerd

Code:
Private Sub TextBox30_AfterUpdate()
For i = 1 To 3
Controls("textbox" & i + 1).Value = Sheets("blad1").Cells(1 + i, 2) * TextBox30.Value + TextBox31.Value / 100 * TextBox10.Value
Next
End Sub
 
Iets meer info zou wel makkelijk zijn zoals:
-foutmelding
-voorbeeldbestand

Niels
 
Bekijk bijlage Berekening2.xlsm

foutmelding compileerfout: ongeldige of niet gekwalificeerde verwijzing

Code:
Private Sub TextBox30_AfterUpdate()
For i = 1 To 3
Controls("textbox" & i + 1).Value = Sheets("blad1").Cells(1 + i, 2) * TextBox30.Value + TextBox31.Value / 100 * TextBox10.Value * .Cells(1 + i, 3)
Next
End Sub
 
Mijn opmerking in mijn eerste post was niet voor niks, je heb weer je textboxen door elkaar staan.
Zet die nou eens gewoon op volgorde.
En waar zijn textbox 1 t/m 4 gebleven, als je deze verandert , dan zul je dat in je macro ook moeten doen.


Niels
 
Dit is de 'bedoeling' :

Product 1 = (TB30 * B2) + (TB31 /100* TB10*D2) + (TB31 /100* TB11*D2) + (TB31 /100* TB12*E2) + (TB31 /100* TB13*F2) + (TB32 * G2) + (TB33 /100* TB10*H2) + (TB33 /100* TB11*I2) + (TB33 /100* TB12*J2) + (TB33 /100* TB13*K2)
 
Sorry voor de bemoeienis maar heb de testboxen hernummerd van 1 tot 16.

Met al die ontbrekende en niet opeenvolgende nummers moet je toch in de war raken.
 

Bijlagen

  • Berekening3.xlsm
    20,4 KB · Weergaven: 36
@Cobbe

Geen probleem die bemoeienis, dat heb ik nl ook al 2x gemeld.

Niels
 
Dankjewel Cobbe.
Echter werkt de code nu nog steeds niet wat doe ik verkeerd.

Code:
Private Sub TextBox1_AfterUpdate()
For i = 1 To 8
Controls("textbox" & i + 8).Value = Sheets("blad1").Cells(1 + i, 2) * TextBox1.Value + TextBox2.Value / 100 * TextBox5.Value * .Cells(1 + i, 3)
Next
End Sub
 
Geen flauw idee wat hier juist moet gebeuren. Sorry!
 
Raoul,

De fout kun je er gewoon uithalen als je de regel goed (herhaal goed !) leest.
Daar heb je geen forummers voor nodig.
 
Bedankt allen, de fout is er uit.
Nu heb ik nog een laatste vraag.
Ik wil dat de waarde van TextBox 5 t/m 8 elkaar opgeteld altijd 100 moet zijn. (anders een foutmelding)
Daarnaast moet als erop Commandbutton 1 word klikt automatisch een vooraf ingestelde getallen worden in gevuld in TextBox 5 t/m 8.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan