![]() |
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
|
|
|
LinkBack | Discussietools | Weergave |
|
#1
|
|||
|
|||
|
Beste Exceldeskundigen,
Ik heb het volgende probleem : In een excelsheet heb ik een invoer nodig ( ik heb hiervoor 3 cellen onder elkaar), deze kan uit 3 verschillende soorten gegevens bestaan, ofwel actuele liters, ofwel standaard liters ofwel kilo's. nu is het de bedoeling, dat als ik 1 van deze 3 cellen invoer de andere 2 brekend worden. Mijn VBA kennis reikt niet zo ver, en in een excel-formule lukt het mij niet. Is er hier misschien iemand die mij hier bij kan helpen ? Groeten, Frits |
| Sponsored Links |
|
#2
|
||||
|
||||
|
Beste Frits,
Als eerste hartelijk welkom op Worksheet.nl Met de vraag stelling waar je mee komt is de kans op direct een oplossing vrij klein. Kom eens met een voorbeeldbestandje, ontdaan van gevoelige en privé informatie - dit in kombinatie met een duidelijke vraagstelling geeft vaak vrij snel een juist antwoord op. Succes,
__________________
Martin Communicatie is vaak het grootste probleem van de oplossing. Vertaling van Excel formules |
|
#3
|
|||
|
|||
|
Hallo Martin,
Ik probeerde mijn vraag zo duidelijk mogelijk te stellen, maar ik begrijp dat het met een voorbeeld nog beter gaat. Vandaar dat ik een bestandje bijvoeg. Sorry, ik heb de vraag een beetje verkeerd gesteld, ik heb geen rekenprobleem, maar ik krijg de juiste getallen niet op de goede plaats. Deze moeten dus in de lichtblauwe cellen komen Groeten, Frits Laatst gewijzigd door formatfrits; 5 februari 2012 om 00:24 Reden: zag dat ik de vraagstelling fout had |
|
#4
|
||||
|
||||
|
plak dit in de module van Blad1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, c As Range
Set isect = Intersect(Target, Range("I14:I16"))
If isect Is Nothing Then Exit Sub
If isect.Cells.Count <> 1 Then MsgBox "foutje, meer dan 1 cel tegelijk gewijzigd" & "fatal error": Exit Sub
Application.EnableEvents = False
Select Case Target.Address
Case "$I$14"
Range("I15").Value = Range("I14").Value * Range("Y20").Value
Range("I16").Value = Range("I15").Value * Range("J11").Value
Case "$I$15"
'andere 2 cellen
Case "$I$16"
'andere 2 cellen
End Select
Application.EnableEvents = True
End Sub
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
|
#5
|
|||
|
|||
|
@formatfrits
Waar staan je omrekennormen van de 3 te kiezen opties? Ik zie ze in je bestand niet terug.
__________________
met vriendelijke groeten, Oeldere |
|
#6
|
|||
|
|||
|
@bsalv
Bedankt voor deze oplossing De macro werkt ten dele, als ik actuele liters (i14) invoer, dan worden i15 en i16 ingevuld. Maar als liter15 (i15) of kilo's (i16) invoer, blijven de andere 2 leeg. Dat is nu precies het probleem wat ik heb. Ik wil graag dat bij een invoer de andere 2 worden berekend en ingevuld. @oeldere Ik heb de berekende waardes rood omlijnd ( bij R20 ) en wat uitleg er bij getikt. Tevens heb ik nu een voorbeeldje bijgesloten met de macro van Bsalv |
|
#7
|
||||
|
||||
|
Bsalv had de voorzet toch al gegeven, je moest enkel de macro vervolledigen:
__________________
Mvgr. & succes, Cobbe --------------------------------------------------------- Ik hoop dat je er iets uit geleerd hebt. Wil je de vraag op opgelost zetten als alles werkt. |
|
#8
|
|||
|
|||
|
Hallo Cobbe,
Dat is exact wat ik gedaan heb, de macro van Bsalv aangepast. Dus de formules omgezet naar hetgeen wat zij moeten gaan aangeven. Bij mij lukte het helaas niet. Het voorbeeld wat jij meegeeft werkt al wat beter. Maar als ik i15 invul geeft i14 een nul, als ik i16 invoer geeft i15 een nul. Misschien een versie probleem, ik werk met Excel 2010, maar meestal in compabiliteit voor 2003. Ik ga nog even verder met zoeken, ben nu weer een stapje verder gelukkig. Bedankt voor je hulp alvast, Frits |
|
#9
|
|||
|
|||
|
Beste Deskundigen,
Bedankt voor jullie hulp, ik ben op het goede spoor gezet. Met wat verder puzzelen ben ik (misschien met een omweg) tot de oplossing gekomen. Ik heb het uiteindelijke resultaat bijgevoegd. Misschien dat er iemand nog een elegantere oplossing heeft, daar houd ik me voor aanbevolen. Groeten, Frits |
|
#10
|
||||
|
||||
|
zonder omweg
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim isect As Range, c As Range
Set isect = Intersect(Target, Range("I14:I16"))
If isect Is Nothing Then Exit Sub
If isect.Cells.Count <> 1 Then MsgBox "foutje, meer dan 1 cel tegelijk gewijzigd" & "fatal error": Exit Sub
Application.EnableEvents = False
Select Case Target.Address
Case "$I$14"
Range("I15").Value = Range("I14").Value * Range("Y20").Value
Range("I16").Value = Range("I15").Value * Range("J11").Value
Case "$I$15"
Range("I14").Value = Range("I15").Value / Range("Y20").Value
Range("I16").Value = Range("I15").Value * Range("J11").Value
Case "$I$16"
Range("I15").Value = Range("I16").Value / Range("J11").Value
Range("I14").Value = Range("I15").Value / Range("Y20").Value
End Select
Application.EnableEvents = True
End Sub
__________________
bsalv ![]() "Er gaat meer boven je petje dan eronder" Toon Hermans Is je vraag afgehandeld, gelieve die dan op "opgelost" te zetten via de daarvoor voorziene knop |
![]() |
| Discussietools | |
| Weergave | |
|
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
Soortgelijke discussies
|
||||
| Discussie | Auteur | Forum | Reacties | Laatste bericht |
| Rekenprobleem | Petertje | Afgehandelde vragen | 4 | 23 september 2010 17:08 |