Vraag & Antwoord

Anders (software)

Excel: een cel leegmaken als een andere cel wijzigt

Anoniem
Tha Duke
8 antwoorden
  • Hoi,
    Een Excel-vraag: in cel B1 staat een getal. Ik wil deze cel automatisch leegmaken (of een streepje erin ofzo) als de tekst (van een voorkeuzelijst) in cel A1 wijzigt. Weet iemand of dit mogelijk is en zo ja hoe?

    Groet,
    N.
  • =ALS([logische test];[voorwaarde als waar];[voorwaarde als onwaar])

    (maximaal 8 "voorwaarden-als-waar" met deze functie)

    Voorbeeld:

    [code:1:8d788975b3]=ALS(A1=1;"een";ALS(A1=2;"twee";ALS(A1=3;"drie";ALS(A1=4;"vier";ALS(A1=5;"vijf";ALS(A1=6;"zes";ALS(A1=7;"zeven";ALS(A1=8;"acht";"-"))))))))[/code:1:8d788975b3]
  • Dank voor je reactie,maar dit is niet precies wat ik bedoel. De als/if-functie ken ik wel. In cel A1 kunnen allerlei teksten komen te staan, die niet in een if-functie te vangen zijn. Het gaat erom dat als er [i:c4ebf9191b]een wijziging [/i:c4ebf9191b] optreedt, cel B1 leeggemaakt wordt. Het zou niet moeten uitmaken wat er precies in A1 komt te staan. In pseudocode:

    als (wijziging (A1)) dan (B1="")
  • [quote:38ecc327c7="nelizzz"]voorkeuzelijst
    [/quote:38ecc327c7]

    [quote:38ecc327c7="FlvanSon"](maximaal 8 "voorwaarden-als-waar" met deze functie)[/quote:38ecc327c7]

    [quote:38ecc327c7="nelizzz"]allerlei teksten komen te staan, die niet in een if-functie te vangen zijn[/quote:38ecc327c7]

    Maar wel een voorkeuzelijst? Als je het omdraait, kijkt ie naar tekst:

    [code:1:38ecc327c7]ALS(A1="een";1;ALS(A1="twee";2;ALS(A1="drie";3;ALS(A1="vier";4;ALS(A1="vijf";5;ALS(A1="zes";6;ALS(A1="zeven";7;ALS(A1="acht";8;"-"))))))))[/code:1:38ecc327c7]

    ??

    Anders ff wachten op de VB-guru :)
  • wel een voorkeurslijst, maar veel langer dan 8, en bovendien flexibel….
  • Wat doet B1 verder?-ook handig voor de guru :wink: -
  • Als je het onderstaande in VBA (bij de code van de betreffende sheet)invoert krijg je volgens mij wat je wilt.

    Public oudeTekst As String

    Private Sub Worksheet_Activate()
    oudeTekst = Worksheets("Sheet1").Cells(1, 1)
    'Sla het vergelijkingsmateriaal op
    End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
    'wordt uitgevoerd als er iets op de sheet veranderd

    If Worksheets("Sheet1").Cells(1, 1) <> oudeTekst Then
    'vergelijk A1 met de oude inhoud, anders? dan:

    oudeTekst = Worksheets("Sheet1").Cells(1, 1)
    Worksheets("Sheet1").Cells(1, 2).ClearContents
    'je kan ClearContents natuurlijk ook veranderen in iets anders, bv. .Value="-"

    End If

    End Sub
  • yes, dat is het! Dank voor het antwoord!
    N.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.