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

Cellen leeg maken

Status
Niet open voor verdere reacties.

gerrit123456789

Gebruiker
Lid geworden
15 dec 2013
Berichten
252
Ik heb een vraag:

Als ik onder vakantie een naam invul dan wil ik hebben dat hij boven bij de namen die er al staan het vakje leeg wordt en een rode kleur krijgt.

Hoe krijg ik dat voor elkaar?
 

Bijlagen

  • Vakantieplanning 2022.xlsx
    9,8 KB · Weergaven: 30
bv.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x
If Not Intersect(Target, Range("b30:i37")) Is Nothing Then
 x = Application.Match(Target, Range("a1:a28").Offset(, Target.Column - 1), 0)
 If IsNumeric(x) Then
   With Cells(x, Target.Column)
    .ClearContents
    .Interior.ColorIndex = 3
   End With
 End If
End If
End Sub
 
Dat werkt goed, maar als ik een eerder ingevulde naam bij vakanties weer weghaal, dan komt hij niet meer op zijn plaats terug, waar hij eerst wegging.

Kan dat ook ien een code verwerkt worden.

Groet,

Gerrit
 
Andere benadering.
Vul eerst de genieters van vakantie in.
 

Bijlagen

  • vakantieplanning.xlsm
    18,8 KB · Weergaven: 22
Als er met de vakantiegangers verder geen bewerkingen worden gedaan.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x, old As String
If Not Intersect(Target, Range("b30:i37")) Is Nothing Then
 Application.EnableEvents = False
 x = Application.Match(Target, Range("a1:a28").Offset(, Target.Column - 1), 0)
 If IsNumeric(x) Then
     With Cells(x, Target.Column)
      .ClearContents
      .Interior.ColorIndex = 3
     End With
    Target = Target & "~" & Cells(x, Target.Column).Address
    Target.Characters(Application.Find("~", Target), 6).Font.Color = RGB(255, 255, 255)
  ElseIf Target = "" Then
        Application.Undo
        old = Target
        Application.Undo
     If UBound(Split(old, "~")) > 0 Then
        With Range(Split(old, "~")(UBound(Split(old, "~"))))
          .Value = Split(old, "~")(0)
          .Interior.Color = xlNone
        End With
     End If
  End If
 Application.EnableEvents = True
End If
End Sub
 
Harry,

Goed opgelost, echter met mijn kennis van VBA voor mij "nog niet" te begrijpen.:confused:
Weer wat te doen.

Wel het ik nog gezocht naar een mogelijkheid met VO. Misschien dat TS hier ook mee geholpen is.
 

Bijlagen

  • vakantieplanning met VO.xlsm
    20,9 KB · Weergaven: 19
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan