Totaalsom bereken via verschillende optionbuttons

Status
Niet open voor verdere reacties.

snitsel

Gebruiker
Lid geworden
12 feb 2008
Berichten
199
Beste

Ik wil bepaalde commands koppelen, maar weet niet meer hoe ze te programmeren. Tijdens het googlen kon ik ook nie veel terug vinden naar wat ik op zoek ben.
(Ik heb vroeger nog geprogrammeerd in VBA, maar het is blijkbaar te lang geleden om dit te doen werken)

Wat ik wens te doen kort uitgelegd:

Zodra een optionbutton ingeschakeld is, mogen bepaalde Checkboxen ingeschakeld worden die eronder staan.
Aan iedere optionbutton en Checkbox dient een waarde (lees: prijs) gekoppeld te worden.
Eens op de knop "Bereken deur" geklikt wordt, dient de totaal prijs van de optionbutton + alle checkboxen die er onder aangevinkt werden geplakt te worden in cel A1.
Als op de knop "Bereken deur" geklikt wordt, maar er werd nog geen optionbutton aangeklikt binnen frame 1, dan dient er een msgbox te verschijnen.
De totaalprijs voor een enkele deur is de prijs die gekoppeld wordt aan de optionbutton of checkbox, de totaalprijs van een dubbel deur is de prijs van een enkele deur + 50 %.

Hopelijk kunnen jullie mij op weg helpen.

Alvast bedankt
Met vriendelijke groeten
Steven Desnyder

Bekijk bijlage Deur berekenen test.xlsm
 
Als het VBA betreft hoort het ook in deze sectie. Verplaatst.
 
Beste,

Ik had dit ook opgemerkt, maar ik kon bericht niet meer verplaatsen naar de VBA sectie. Bedankt voor het verplaatsen.

Ik vermoed een eigen oplossing gevonden te hebben en als volgt te programmeren per optionbutton of checkbox. Ik denk wel dat deze code omslachtig is voor wat ik wil doen:

Code:
Private Sub ServiceDeLuxe1_Click()
If ServiceDeLuxe1.Value = True Then
Sheets("Deuren").Range("H5").Value = 1893
End If
If ServiceDeLuxe1.Value = False Then
Sheets("Deuren").Range("H5").Value = 0
End If
End Sub
 
Laatst bewerkt door een moderator:
Ik denk wel dat deze code omslachtig is voor wat ik wil doen:

Het kan anders; ook nog wel in andere manieren van schrijven.
Code:
Private Sub ServiceDeLuxe1_Click()
 Sheets("Deuren").Range("H5").Value = IIf(ServiceDeLuxe1.Value, 1893, 0)
end sub
 
Bedankt HSV, een heel stuk korter en overzichtelijker.

1
Wat is hier foutief aan?
Code:
ActiveSheet.Range("C7").Value = IIf(Enkeledeur.Value, "Enkele deur", "Dubbele deur")

Enkeldeur.Value = een keuzerondje
Dit keuzerondje zit wel in Frame1. Of dient dit niet vermeld te worden in de formule?


2
Verder heb ik nog probleem met de msgbox:
Code:
    If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    Msgbox "Enkele of dubbele deur invullen aub", vbCancel, "Type deur"
    End If

Het is de bedoeling, als geen van beide keuzerondjes werd ingevuld dat de msgbox verschijnt met een knop "OK" en dat je terug naar het UserForm1 gaat zodanig dat je deze kan invullen.
Ofwel moeten de 2 keuzes verschijnen in de messagebox zodanig dat dit ingevuld kan worden om verder te doen.


3
Is er mogelijkheid om keuzevakjes te koppelen aan keuzerondjes?
Zolang een keuzerondje niet actief is, mogen de keuzevakjes niet bruikbaar zijn
 
Laatst bewerkt:
Ik weet niet wat voor foutmelding je krijgt.
Zet het bestand hier eens neer a.u.b.
 
Bij het maken van een nieuw excel bestand om het probleem te genereren, werkt de formule blijkbaar toch.
Ik weet niet waarom ze niet werkt in mijn huidig bestand (kan ik niet posten wegens veel te groot bestand), maar ik heb de formule later geplaatst in mijn programma, en nu krijg ik de fout niet meer.
Gisteren kreeg ik fout 424. Via de help functie kan ik het probleem ook niet oplossen.
Deze vraag is dus opgelost.

Kan u mij verder helpen met vraag 2 en 3 aub?
 
2: Zoiets?
Code:
If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    Msgbox "Enkele of dubbele deur invullen aub", vbCancel, "Type deur"
 userform1.show
    End If
3:
Zoek eens op "enable" in de help van Excel.
 
De OK knop verschijnt om de functie Cancel uit te voeren:

Code:
    If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    Msgbox "Enkele of dubbele deur invullen aub", vbCancelOnly, "Type deur"
    blnCancel = True
    UserForm1.Show
    End If

Als ik op "OK" klik, dan is het de bedoeling dat mijn Userform met ingevulde waarden terug verschijnt.
Het is niet te bedoeling dat mijn Userform wordt gesloten.
Userform1.show werkt niet, want ik krijg hier een foutmelding "Fout 400 tijdens uitvoering" "het formulier wordt al weergegeven en kan niet modaal worden weergegeven"

Hoe kan ik dit oplossen?


Extra vraag:
Ik probeer volgende code toe te passen in VBA:
Code:
Sheets("Berekeningen").Range("F7").Value = "=ALS(D7="";"-";AFRONDEN.BOVEN(AG7;0,01))"

VBA wilt deze niet accepteren aangezien ze in het nederlands staat. Ik heb de macro laten schrijven via Macro opnemen en deze code werkt wel:
Code:
Sheets("Berekeningen").Range("F7").Value = "=IF(RC[-2]="""",""-"",CEILING(RC[27],0.01))"

Ik heb een hele reeks formules om te zetten naar VBA, maar kan dit onmogelijk telkens doen via Macro opnemen.
Iemand een oplossing hiervoor?
 
Laatst bewerkt:
Code:
Private Sub CommandButton1_Click()
 UserForm1.Show [COLOR=#FF0000]0[/COLOR]
End Sub

Code:
Private Sub Totaal_Click()
If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    MsgBox "Enkele of dubbele deur invullen aub", vbCancelOnly, "Type deur"
    End If
End Sub

Extra vraag:
Code:
Sheets("Berekeningen").Range("F7").[COLOR=#FF0000]formulalocal[/COLOR] = "=ALS(D7="";"-";AFRONDEN.BOVEN(AG7;0,01))"
of:
Code:
Sheets("Berekeningen").Range("F7").[COLOR="#FF0000"]formula[/COLOR] = "=IF(RC[-2]="""",""-"",CEILING(RC[27],0.01))"
 
Laatst bewerkt:
Dag Harry

Bedankt voor de hulp, maar het lukt nog steeds niet.

Betreft deze code:
Code:
    If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    Msgbox "Enkele of dubbele deur invullen aub", vbCancelOnly, "Type deur"
    blnCancel = True
    UserForm1.Show
    End If

U geeft 2 verschillende codes, maar wat dien ik nu te verwijderen of aan te passen?
Ik heb geprobeerd met uw formules, maar geen enkele werkt

Extra vraag:
Dit is mijn macro tot nu toe voor deze opdracht:
Code:
Private Sub NieuweDeur_Click()
'
' Bereken deur
'  
    Range("A6:AH6").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Sheets("Berekeningen").Range("F7").FormulaLocal = "=ALS(D7="";" - ";AFRONDEN.BOVEN(AG7;0,01))"
  
'Verwijderen van (eerder) ingevulde cellen op tabblad van de deuren
    Sheets("Deuren").Range("B5:K8").ClearContents
    Sheets("Deuren").Range("B13:K16").ClearContents
    Sheets("Deuren").Range("B21:K24").ClearContents

Unload UserForm1
UserForm1.Show

End Sub

Ik krijg de volgende foutmelding bij de regel met FormulaLocal:

Fout 13 tijdens uitvoering: Typen komen niet met elkaar overeen
 
Verwijder jouw codes die beginnen met dezelfde instructie-naam, en zet die van mij daarvoor in de plaats.
Bij mij werkt het prima, en daarbij zet ik hier niet iets neer wat niet werkt.

Extra vraag zal zo beter gaan.
Code:
Range("F7").FormulaLocal = "=ALS(D7="""";"" - "";AFRONDEN.BOVEN(AG7;0,01))"
 
Ah, nu lukt het inderdaad. Ik had uw formule getest in mijn ander excel bestand, maar daar werkte het niet omdat er nadien nog meer formules zijn.

Volgende toegepaste formule werkt nu wel:
Code:
If Enkeledeur.Value = False And Dubbeledeur.Value = False Then
    Msgbox "Enkele of dubbele deur invullen aub", vbCancelOnly, "Type deur"
    Exit Sub
    End If

'Andere formule hier onder ...

End Sub

Wat betreft de extra vraag met de extra aanhalingstekens werkt nu ook, waarvoor dank!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan