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

Cel wissen

Status
Niet open voor verdere reacties.

wacco

Gebruiker
Lid geworden
9 mrt 2006
Berichten
229
Hallo,

Ik zou graag het volgende willen bewerkstelligen :
In 2 naast elkaar gelegen cellen ( kolommen V en W) kan ik een keuze maken door hier een x in te voeren.
Nu wil ik graag als ik in een cel in kolom V een x invoer, dat de naast geleg cel in kolom W de inhoud wordt gewist, en anderom....x in cel kolom W dan inhoud cel kolom V gewist.
Ik hoop dat iemand mij hierbij kan helpen.
 
Wat je vraagt is lastig.
Ik heb een achterliggende vraag: Waarom wil je dat? Wat is het doel?
Misschien is je doel op een andere manier te bereiken.
 
De bedoeling is dat ik een soort wisselwerking krijg tussen beide cellen.
Als ik iets invul in de ene cel moet de andere cel worden gewist.
Het moet dus niet mogelijk zijn dat beide cellen, in de kolommem V en W, data bevatten
Ik wil dit gebruiken om de inhoud van 2 cellen te kunnen kiezen, en deze in 1 cel weer te geven.
Heb er een voorbeeldje bij gedaan
 

Bijlagen

  • Voorbeeld keuze.xlsx
    10,6 KB · Weergaven: 16
Terechte vraag en opmerking van Hans.
Maar met een stukje VBA is dat simpel te realiseren.
 
Met een klein stukje code achter je betreffende werkblad:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
   Application.EnableEvents = False
   If .Column = 22 Or .Column = 23 And .Count = 1 And .Value = "x" Then .Offset(, IIf(.Column = 22, 1, -1)) = ""
   Application.EnableEvents = True
 End With
End Sub
 
Laatst bewerkt:
Precies.
Misschien nog een Intersect voor het bereik er bij zetten.
 
Ik had de code al voordat het bestand er was:d

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 With Target
   Application.EnableEvents = False
   If Not Intersect(.Offset, Range("V7:W20")) Is Nothing And .Count = 1 And .Value = "x" Then .Offset(, IIf(.Column = 22, 1, -1)) = ""
   Application.EnableEvents = True
 End With
End Sub
 
Ik niet, maar voordat ik mijn versie plaatste zag ik dat je me voor was :cool:
 
Of zonder macro, met keuzelijst.
 

Bijlagen

  • Voorbeeld keuze.xlsx
    12 KB · Weergaven: 12
@JEC
Dankje wel voor de snelle reactie.
In eerste instantie leek het inderdaad goed te werken, maar nadat ik de tekst in de V6 en W6 aan paste ....werkte het geheel niet meer.
Voorbeeld bijgevoegd
 

Bijlagen

  • Voorbeeld keuze-01.xlsm
    17,2 KB · Weergaven: 11
Maak er eens dit van:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If Not Intersect(.Offset, Range("V7:W20")) Is Nothing Then
            Application.EnableEvents = False
            If .Count = 1 And LCase(.Value) = "x" Then .Offset(, IIf(.Column = 22, 1, -1)) = ""
            Application.EnableEvents = True
        End If
    End With
End Sub
 
Laatst bewerkt:
Via gegevensvalidatie is het ook eenvoudig te regelen.
 

Bijlagen

  • Voorbeeld keuze-2.xlsx
    11,9 KB · Weergaven: 13
Als het niet meer werkte is Application.EnableEvents op False blijven staan, waarschijnlijk kreeg je vlak daarvoor een foutmelding, bijvoorbeeld door meerdere cellen geselecteerd te hebben.
 
Ik zal nooit meer zeggen dat iets lastig is, want sindsdien worden we bedolven onder eenvoudige oplossingen.
 
@ AHulpje, @Edmoor

Inderdaad bij selectie van meerdere cellen gaat het fout.
Is ook nog steeds met laatste code.
Als ik ingevoerde kruisje tegelijk, dus meerdere geselteerd, dan loopt het spaak.
Sla ik dit bestand op, en start het daarna opnieuw op, dan gaat het weer goed....totdat ik weer meerdere cellen selecteer.
 
Duidelijk dan toch?
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Count <> 1 Then Exit Sub
        If Not Intersect(.Offset, Range("V7:W20")) Is Nothing Then
            Application.EnableEvents = False
            If LCase(.Value) = "x" Then .Offset(, IIf(.Column = 22, 1, -1)) = ""
            Application.EnableEvents = True
        End If
    End With
End Sub
 
@Edmoor.

Dankjewel, code werkt perfect, nu geen problemen meer met eventuele selecties.
Sluit deze af
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan