adhv een checkbox totaal bepalen

Status
Niet open voor verdere reacties.

Ravermaya

Gebruiker
Lid geworden
25 jun 2008
Berichten
18
Goeiemiddag,

Mijn probleem is als volgt:

Ik heb een database
Bij het openen vraagt adhv een inputbox hij het aantal lijnen dat je in je pakket wil en het maximum is 9
Dus dan heb je aantal, prijs per eeheid en totaal
Nu daarnaast heb je een checkbox. Indien je dit aanvinkt, betekent dit dat die lijn in het pakket verkocht is, met gevolg dus dat het totaal moet verminderd worden met de waarde van die rij.
Nu zou ik adhv mijn input en als de checkbox aangevinkt word code willen schrijven om dit op te lossen.
Kunnen jullie nog volgen?

Alvast bedankt
 
Zoiets ?


Onderstaande code even plaatsen in een module met de naam "Module3"
Code:
Public vRij
Public vWaarde
Public vWaarde2
Public vWaarde3

Public Sub Test3()

With Worksheets(1).Range("B:B")
Set a = .Find("Totaal", LookIn:=xlValues)
If Not a Is Nothing Then
    vRij = a.Row

    vWaarde = Range("C" + CStr(vRij)).Formula
    vWaarde2 = Range("D" + CStr(vRij)).Formula
    vWaarde3 = Range("E" + CStr(vRij)).Formula
End If
End With


End Sub

Onderstaande code plaatsen in de map "Sheet1"
Code:
Private Sub CheckBox2_Click()

Module3.Test3
If CheckBox2.Value = True Then
    vWaarde = vWaarde & "-C2"
    vWaarde2 = vWaarde2 & "-D2"
    vWaarde3 = vWaarde3 & "-E2"
    Range("C" + CStr(vRij)).Formula = vWaarde
    Range("D" + CStr(vRij)).Formula = vWaarde2
    Range("E" + CStr(vRij)).Formula = vWaarde3
ElseIf CheckBox2.Value = False Then
    vWaarde = vWaarde & "+C2"
    vWaarde2 = vWaarde2 & "+D2"
    vWaarde3 = vWaarde3 & "+E2"
    Range("C" + CStr(vRij)).Formula = vWaarde
    Range("D" + CStr(vRij)).Formula = vWaarde2
    Range("E" + CStr(vRij)).Formula = vWaarde3
End If

End Sub


Private Sub CheckBox3_Click()

Module3.Test3
If CheckBox3.Value = True Then
    vWaarde = vWaarde & "-C3"
    vWaarde2 = vWaarde2 & "-D3"
    vWaarde3 = vWaarde3 & "-E3"
    Range("C" + CStr(vRij)).Formula = vWaarde
    Range("D" + CStr(vRij)).Formula = vWaarde2
    Range("E" + CStr(vRij)).Formula = vWaarde3
ElseIf CheckBox3.Value = False Then
    vWaarde = vWaarde & "+C3"
    vWaarde2 = vWaarde2 & "+D3"
    vWaarde3 = vWaarde3 & "+E3"
    Range("C" + CStr(vRij)).Formula = vWaarde
    Range("D" + CStr(vRij)).Formula = vWaarde2
    Range("E" + CStr(vRij)).Formula = vWaarde3
End If
End Sub


Nu moet je wel voor elke checkbox die je hebt de code invullen zoals hierboven. Wel even de checkbox-naam en cel-namen even wijzigen. Trouwens nu werkt e.e.a. naar mijn inziens wel goed echter ik heb de code ingevuld voor 2 checkboxen (dus 2 Lines). Je moet hem zelf even aanvullen.

Ik vond je code wel heel erg omslachtig (heel veel is naar mijns inziens overbodig). Ik denk dat je even moet kijken naar de functies "Do....Loop" etc. Hierdoor wordt je code veel kleiner (dat is makelijker met laden en opslaan, tevens wordt het bestand niet te groot).
 
nee ik zou eigenlijk moeten kunnen de waarde die ingegeven werd bij de inputbox recupereren

manman, zit echt in de miserie want mijn baas blijft ernaar vragen
 
nee ik zou eigenlijk moeten kunnen de waarde die ingegeven werd bij de inputbox recupereren

manman, zit echt in de miserie want mijn baas blijft ernaar vragen

Recupereren ?
Leg eens uit wat niet goed is, want voor alsnog voldoet de code aan je eisen.
Snap het niet helemaal.

Hoor het wel.
 
Maar hoe test ik hier hoeveel lijne er zijn weergegeven?
 
Laatst bewerkt door een moderator:
Recupereren ?
Leg eens uit wat niet goed is, want voor alsnog voldoet de code aan je eisen.
Snap het niet helemaal.

Hoor het wel.

Inderdaad, mijn excuses nu ben ik mee
ga het sebiet testen
Ik hou u op de hoogte

alvast hartelijk bedankt
 
Laatst bewerkt door een moderator:
Recupereren ?
Leg eens uit wat niet goed is, want voor alsnog voldoet de code aan je eisen.
Snap het niet helemaal.

Hoor het wel.

nope
hij loopt vast op volgende

Range("C" + CStr(vRij)).Formula = vWaarde

ga er vanavond es op zoeken
 
Laatst bewerkt door een moderator:
Je zou eventueel in plaats van ".Formula" ook ".value" kunnen toepassen.
Het verschil hierbij is is dat VBA in plaats van de formule invoerd in de cel de echte waarde invult.

Volgens mij lag die ".Formula" commando aan een bepaalde instelling van excel zelf.
Je zal even moeten kijken bij menu - opties.
 
Dit

Code:
Range("C" + CStr(vRij)).Formula = vWaarde

is in principe niet fout wat Formula betreft. Als is .Value beter.

Fout zit hem in +, dit moet & zijn.

Wigi
 
Dit

Code:
Range("C" + CStr(vRij)).Formula = vWaarde

is in principe niet fout wat Formula betreft. Als is .Value beter.

Fout zit hem in +, dit moet & zijn.

Wigi

ja mijn probleem is opgelost
alvast hartelijk bedankt alle twee
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan