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

Keuzelijst veranderen in "normale" cel

Status
Niet open voor verdere reacties.

savageh

Gebruiker
Lid geworden
5 mrt 2007
Berichten
52
Hoi,

Is het mogelijk om met een keuzelijst een ander keuzelijst te veranderen in een gewone cel?

Dus bvb:
A1 is een keuzelijst met keuzes uit A en B.
Als A gekozen wordt moet B1 een keuzelijst worden.
Als B gekozen wordt moet B1 een normale invul cel worden.

Iemand een idee?

Alvast bedankt,
 
zie bijlage.

Hoewel, 2 keuzelijsten zal volgens mij niet gaan. Maar de data validatie is wel zo ingesteld dat het werkt.

Wigi
 

Bijlagen

Zet hem dan maar op opgelost, als ik het ooit eens tegenkom en ik kan mij deze topic herinneren, dan zal ik het melden :D (duh, die kans is zo goed als 0)
 
Nog een vraagske,

Is het mogelijk om met een keuzelijst de inhoud van een bereik van cellen te verwijderen?

bvb:
A1 is keuzelijst met A en B;
Als A gekozen word moet de inhoud van B1:B10 gewist worden. (deze cellen moeten ook zelf invulbaar zijn, hiermee bedoel ik dat er geen formules in B1:B10 mogen zijn.)

Ik heb een poging gedaan met de voorwaardelijke opmaak... Maar dat zal het waarschijnlijk wel niet zijn...
 
Met voorwaardelijke opmaak kan je bv. de celinhoud onzichtbaar maken, maar verwijderen doe je dan niet.

Jij zal met VBA moeten werken denk ik.
 
hmm ja, onzichtbaar is niet goed genoeg...

Het probleem is dat ik nix weet over VBA.
 
Helpfiles nagaan, internet, dit forum, ... kortom, zelf iets proberen.
 
Ok, een beetje zoek- en prulwerk heeft zoiets opgeleverd:

Code:
Public Sub delete()
   If Worksheets("blad1").Range("A1:A1").Value = "A" Then
        Worksheets("blad1").Range("B1:B10").ClearContents
   End If
End Sub

Ma het probleem nu is, dat ik telkens macro moet uitvoeren...
Terwijl het bij elke verandering van de keuzelijst uitgevoerd zou moeten worden.

Iemand die mij kan helpen of een duwtje in de juiste richting kan geven? :)
 
Dit is de code voor achter het werkblad waar je het nodig hebt:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" And Target.Value = "A" Then
        Application.EnableEvents = False
        Range("B1:B10").ClearContents
        Application.EnableEvents = True
    End If
End Sub

Wigi
 
Bedankt, maar ik krijg hem niet aan de praat.
ik heb het onder "blad1" gekopieerd...
 
ok,

Ik heb eerst mijn excel bestand geopend

daarna rechtermuisknop op "blad1" >> programmacode weergeven

daarna in blad1 gekopieerd (bij microsoft excel -objecten)
 
Ik heb dus een kleine aanpassing gedaan en zo werkt het dus wel. :D
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Range("A1") = "A" Or Target.Range("A1") = "B" Then
        Application.EnableEvents = False
        Range("B1:B10").ClearContents
        Application.EnableEvents = True
    End If
End Sub
Wigi, bedankt voor het duwtje :thumb:

Hierbij dus nog een vraagske :)

Is er een manier om de cellen als variabele in te geven, zodat als ik de keuzelijst kopieer op "E1" dat het ook nog werkt? ( "B1:B10" moet dan in "F1:F10" veranderen)
((dus geen willekeurige kopie maar altijd 3 kolommen er tussen in))
 
Doe toch eerst eens dit:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Then
        If Target.Value = "A" Then
            Application.EnableEvents = False
            Range("B1:B10").ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub

Dit is het antwoord op je eerdere vraag. Jouw code doet iets anders. Bovendien zal jouw code helemaal uitgevoerd worden vanaf dat er ergens op het blad een wijziging gedaan wordt. Dat is volgens mij waarschijnlijk niet wat je wilt.

Klaar eerst dit uit vooraleer naar de volgende vraag te springen.

Wigi
 
Jouw code doet iets anders.
Idd :D raar, eerst deed het wat het moest doen... Bij deze; volgende keer meer tests uitvoeren :p

Ok uw code werkt perfect... nogmaals bedankt :)


Hup naar de volgende:
I
Is er een manier om de cellen als variabele in te geven, zodat als ik de keuzelijst kopieer op "E1" dat het ook nog werkt? ( "B1:B10" moet dan in "F1:F10" veranderen)
((dus geen willekeurige kopie maar altijd 3 kolommen er tussen in))
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$A$1" Or Target.Address = "$E$1" Then
        If Target.Value = "A" Then
            Application.EnableEvents = False
            Target.Offset(, 1).Resize(10).ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub
 
Bedankt, wigi... Maar dat werkt niet zoals het moet bij samengevoegde cellen?

bvb: ik heb A B en C als een samengevoegde cel, nu wil ik de inhoud van B wissen, maar met de offcet(3,1) springt het automatisch naar D, zonder offcet springt het naar A...
 
Ik heb het al veel keer gezegd hier op het forum: samengevoegde cellen brengen doorgaans meer problemen met zich mee dan dat ze er oplossen. Als het kan, verander dit en vermijd die samengevoegde cellen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan