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

Macro starten na wijzigen van een cel

Status
Niet open voor verdere reacties.
Werkt nu bijna perfect Harry.
Bij invullen van een N in C25 of C26 krijgen de volgende 3 cellen (dus C26:C28, resp. C27:C29) een X.
Helemaal perfect zou zijn als dat C26:C30 resp. C27:C30 was.

Ik weet niet of het mogelijk is dat het aantal cellen met een X verschilt?
 
Zo beter?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
 If Not Intersect(Target, Union(Range("C9"), Range("C16"), Range("C25:C26"))) Is Nothing Then
  Application.EnableEvents = False
  Target.Offset(1).Resize(3).ClearContents
   If LCase(Target) = "n" Then
      If Target.Row = 25 Then
         Target.Offset(1).Resize(5) = "X"
      ElseIf Target.Row = 26 Then
         Target.Offset(1).Resize(4) = "X"
       Else
         Target.Offset(1).Resize(IIf(Target.Row = 9, 3, IIf(Target.Row = 16, 2, 4))) = "X"
      End If
    End If
  Application.EnableEvents = True
 End If
End If
End Sub
 
Volgens mij is dit BRILJANT Harry.
Zoals ik eerder zei: respect!!

Ik ga proberen te begrijpen wat je hebt geschreven en intussen ga ik het gebruiken.
Nogmaals ontzettend bedankt!!
Groet,

Kees
 
Graag gedaan Kees,

Mocht er iets niet kloppen, gewoon reageren en ik of iemand anders doe(t) een nieuwe poging.
 
Beste Kees en Harry, ;)

Graag onderstaande stukje code aan te passen :D

Code:
Target.Offset(1).Resize([COLOR=#FF0000]5[/COLOR]).ClearContents

Als je de 3 veranderd in 5 blijft er in cel C29:C30 geen x staan wanneer je cel C25 of C26 leeg laat.

Grts. Danny :thumb:
 
Dank voor de aanvulling Danny,
Ik probeer de code te begrijpen en aan te passen naar andere situaties en heb nog een vraag.
Het lukt om meer cellen toe te voegen, maar ik weet nog niet wat ik moet doen om het aantal keren dat een X wordt ingevuld te variëren.
Met het voorbeeld hieronder krijg ik na C9 3 keer een X en na C15, C20 en C24 2 keer.
Is het mogelijk dat te veranderen naar 3 keer, 3 keer, 1 keer en 2 keer.
En wordt dat anders als het 3 keer, 4 keer, 1 keer en 2 keer wordt?


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
If Not Intersect(Target, Union(Range("C9"), Range("C15"), Range("C20"), Range("C24"))) Is Nothing Then
Application.EnableEvents = False
If LCase(Target) = "n" Then Target.Offset(1).Resize(IIf(Target.Row = 9, 3, 2)) = "X"
Application.EnableEvents = True
End If
End If
End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
 If Not Intersect(Target, range("c9,c15,c20,c24"))Is Nothing Then
  Application.EnableEvents = False
  
     Select Case Target.Row
      Case 9, 15
       If LCase(Target) = "n" Then
           Target.Offset(1).Resize(3) = "X"
         Else
           Target.Offset(1).Resize(3).ClearContents
        End If
      Case 20
        If LCase(Target) = "n" Then
           Target.Offset(1) = "X"
         Else
           Target.Offset(1).ClearContents
        End If
      Case 24
        If LCase(Target) = "n" Then
           Target.Offset(1).Resize(2) = "X"
         Else
           Target.Offset(1).Resize(2).ClearContents
        End If
      End Select
  Application.EnableEvents = True
 End If
End If
End Sub
 
Laatst bewerkt:
Het lijkt zo simpel ......
Thnx again

Ik heb later nog een werkblad waar ik een combi nodig heb van wat je hebt gemaakt. Ga ik weer proberen.
 
Beste Kees en Harry, ;)

Ik had deze gemaakt, aan Harry de expert --> is deze ook oké ?
Goed voor 3 x'n niet meer omdat er tussen C20 en C24 maar 3 cellen zijn.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 Then
 If Not Intersect(Target, Union(Range("C9"), Range("C15"), Range("C20"), Range("C24"))) Is Nothing Then
  Application.EnableEvents = False
  Target.Offset(1).Resize([COLOR="#FF0000"]3[/COLOR]).ClearContents
   If LCase(Target) = "n" Then
      If Target.Row = 9 Then
         Target.Offset(1).Resize(3) = "X"
      ElseIf Target.Row = 15 Then
         Target.Offset(1).Resize(3) = "X"
      ElseIf Target.Row = 20 Then
         Target.Offset(1).Resize(1) = "X"
      ElseIf Target.Row = 24 Then
         Target.Offset(1).Resize(2) = "X"
      End If
    End If
  Application.EnableEvents = True
 End If
End If
End Sub

Grts Danny :thumb:
 
Hoi Danny,

Werkt ook als een tierelier toch? :thumb:, alleen de heb ik bewust gekozen voor de clearcontents per case.
Ik ben blij dat je er ook aan werkt, ik heb het er nu wel zo'n beetje mee gehad. :d
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan