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

gebruikerswaarde toevoegen aan een reeds ingevoerde formule

Status
Niet open voor verdere reacties.

renosaurus

Gebruiker
Lid geworden
11 aug 2007
Berichten
15
Hey iedereen,

Vraagje. Ik ben bezig met een excell sheet maken die allerlijk gegevens automatisch uitrekend voor me. Nu wil ik een formule invoegen in vakje A2 bv, maar die formule moet compleet gemaakt worden met waarde die later in hetzelfde hokje wordt toegevoegd, en moet dan dus ook weer verwijderd kunnen worden zonder dat de formule naar de haaien is.

Of, met de =als() formule, een berekening laten doen, maar dat de formule in A3 staat, maar het andwoord in A2 gezet wordt (als je begrijpt wat ik bedoel)

Enig idee OF dit kan, en hoe?

Bedankt,
Reno
 
ik heb geen idee wat je bedoelt.

met een voorbeeldbestandje, ontdaan van gevoelige info, waarin je ook de gewenst uitkomst aangeeft zul je vast beter en sneller geholpen worden.

als ik je vraag zo lees, denk ik dat je tegen een kringverwijzing aanloopt; maar een voorbeeldje zal dat kunnen verduidelijken.
 
Reno,

Wat je wilt kan niet. Een formule in een cel geeft een resultaat in die cel. In een andere cel kun je daar wel een verwijzing naar maken aangevuld met een verwijzing naar een andere cel waar je dan ook weer iets aanvult. Je zult dus twee hulpcellen nodig hebben om één cel te vullen.
 

Bijlagen

  • bij elkaar.xlsx
    8,1 KB · Weergaven: 51
Dat wist ik inderdaad, maar dat bedoel ik niet.

uuhm, ik heb geen excel hier, want ik ben op mn werk, en thuis is mijn internet nog niet aangesloten.

Even zo proberen.

In hokje A2 moet een getal ingevuld worden, maar op het moment dat dat getal ingevoerd is, moet er 3 bij opgeteld worden, als A1 positief is.

dus: in hokje A2:=als(a1="X";[het getal wat ingevuld is in A2]+3;[het getal van A2)
 
Laatst bewerkt:
Je krijgt zo een kringverwijzing.
Stel in A1 staat een "X" en in A2 staat 3
Dan moet A2 3+3=6 worden omdat in A1 "X" staat.
in A2 staat dus 6 maar moet 3 bij opgeteld worden omdat in A1 "X" staat
Dus A2 wordt 3+6=9
en het verhaal begint opnieuw.
 
Reno,

Dat bedoel ik dus, in A2 staat of een formule of je zet er een getal in. Beide kan niet. Vermoedelijk is er een vba-oplossing, maar bij mijn poging die te vinden liep Excel vast, omdat gebeurde wat Willem beschrijft.
 
Laatst bewerkt:
Oke dat werkt dus niet. En kan ik zo iets met een drop lijst doen? Em er is geen andere manier? En wat is een vba oplossing?
 
Laatst bewerkt:
Plaats even een relevante xls bestandje, met daarin beschreven wat je waarom wilt hebben.
 
Druk Alt+F11 (Vb editor opent zich).
Aan linkerkant dubbelklikken op Blad1.
Zet onderstaande code in het grote witte vlak.
Alt+Q om terug te keren naar Excel.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
   If Target = Range("A2") And InStr("X", LCase(Range("A1"))) = 0 Then
     Target = Target.Value + 3
   End If
  Application.EnableEvents = True
End Sub
 
Ik heb geen office ter beschikking nu, maar ik zal omschrijven wat precies de bedoeling is.


Dit is de opstelling: totaal = score + ranks + misc. Score en Ranks is in orde, dat zijn verwijzingen. Maar die misc kan van alles zijn. Voor "totaal" zit een hokje met een droplijstje, om "" of "X" te selecteren. Als "x" geselecteerd wordt, moet bij de waarde van Misc 3 worden opgeteld, maar dus ook als misc leeg is, moet er 3 komen te staan. en als in het hokje Misc dan iets ingevuld wordt, zeg 2 bv, dan moet Misc 2+3=5 worden...

En later moet het nog ingewikkelder worden, want er moeten nog meer verwijzingen naar komen. In sommige gevallen moet er (bv 6) vanaf getrokken worden. Die 6 wordt op een andere plaats in de sheet ingevuld.

En dit is puur nieuwschierigheid hoor maar, die code, wat houd dat precies in en wat doe ik dan? Kan je me leren hoe dat werkt?
 
Laatst bewerkt:
Als de code in moduleblad blad1 staat, wordt, als je in cel A2 een getal typt, 3 bij het ingevoerde getal bijgetelt (mits er in cel A1 een "x" of "X" staat, anders niet).
 
Oke dat is idd wat ik wil. En als ik nou in B2 een 6 heb staan die ervan afgetrokken moet worden?
 
Code:
Target = Target + 3 - Range("B2")
 
Oke ik heb die code geprobeerd, maar er zit een fout in volgens Excel.

Na the "Then" code, zegt hij dat hij een eind teken of een ) mist...

Ik heb een excel sheet gemaakt om aan te geven wat de bedoeling is, maar ik kan hem niet uploaden...
 
Dan zet ik er even een bestandje neer.
Verander cel A2 i.c.m. A1 wel of geen "X".
 

Bijlagen

  • X.xls
    32,5 KB · Weergaven: 46
ik zie al wat ik fout heb gedaan, ik heb TAB gebruikt ipv spatie.

Oke. Het plan is alleen iets gewijzigd, ik moet niet 1 cel hebben, maar een rijtje.

Dus B1 moet +3 zijn als er in A1 een x staat, en B2 moet +3 zijn als er in A2 een x staat enz...
Wat veranderd er dan aan de code? en kan dat direct opnieuw berekend worden, net zoals elke formule in excell, of krijg je echt dat dat alleen werkt als je het getal opnieuw invoert?
 
Laatst bewerkt:
Met een changeevent voor alle cellen zou het steeds opnieuw berekent worden, en er bij elke verandering drie bij opgetelt worden (drie + drie + drie enz.)
Dan kan het in een standaardmodule en evt. onder een knop.

Optie 1; zoals het was met target.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Application.EnableEvents = False
 If Target.Column = 2 Then
   If InStr("X", LCase(Target.Offset(, -1))) = 0 Then
     Target = Target + 3
    End If
   End If
  Application.EnableEvents = True
End Sub

Optie 2; In een standaardmodule, en evt aan een knop hangen.
Code:
Sub tst()
 Dim cl As Range
  With Sheets("Blad1")
   For Each cl In .Range("A1:A" & .Cells(.Rows.Count, 1).End(xlUp).Row)
     If cl = InStr("X", LCase(cl)) = 0 Then
    cl.Offset(, 1) = cl.Offset(, 1) + 3
   End If
  Next
 End With
End Sub
 
Laatst bewerkt:
Ik heb ze allebij ingevoerd, maar het werkt niet. Ik denk dat dat komt omdat mijn sheet er anders uitziet, als ik hier beschrijf. Er staat nog veel meer informatie in en ik dacht dat als ik de code wist, ik het zelf op zn plek kon zetten en de cell nummers aanpassen.

Nog een laatste poging, anders verzin ik iets anders.

De "x" staat in cell AB21; AB23; AB25 enz t/m AB97. De cel die veranderd moet worden (+3) is een samengevoegde cel van AR21 en AR22, AR23 en 24, AR 25 en 26 enz.

het idee is, als er in AB21 een "X" geselecteerd wordt, dan wordt er in AR21,22 een 3 gezet als het vakje leeg is (niet een 0, maar leeg), en als er een waarde staat, wordt er 3 bij opgeteld. en dat dus ook voor AB23 met AR23,24, t/m AB97 met AR 97,98.


Over dat "iets anders verzinnen". Kan ik een drop lijstje maken met een tekst erin, maar dat als je die tekst selecteert, dat er een berekening in de cel komt?
dus de droplijst geeft dit weer:

-
0+3
1+3
2+3
3+3

maar als je er een selecteert, komt er in het hokje respectievelijk 3, 4, 5 of 6 te staan.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan