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

worksheet_change crash

Status
Niet open voor verdere reacties.
Deze aanpassing zal wel soelaas bieden:

Code:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
With Application
    .ScreenUpdating = False
    .EnableEvents = False
Dim Teller As Integer
Dim AantalWaarschuwingen As Integer

Teller = 0
AantalWaarschuwingen = 4

Range("a8:a11").ClearContents
    For i = 1 To AantalWaarschuwingen
        If Range("a2").Offset(i, 0).Value = 1 Then
        Teller = Teller + 1
        Range("a7").Offset(Teller, 0).Value = Range("a2").Offset(i, 1).Value
        End If
    Next i
    .ScreenUpdating = True
    .EnableEvents = True
End With
End Sub

Je moet namelijk het Event even op pauze setten want anders geraak je in een eindeloze loop.
 
Het is ook verstandig de uitvoering van de macro te beperken, zodat niet elke wijziging in het werkblad deze macro aktiveert:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Or Target.Column & Target.Row > 16 Then Exit Sub
    Application.EnableEvents = False
    
    With Range("a3:a6")
        sn = .Value
        For j = 1 To UBound(sn)
           sn(j, 1) = IIf(sn(j, 1) = 1, .Resize(1).Offset(j - 1, 1).Value, "")
        Next
        .Offset(5) = sn
    End With
    
    Application.EnableEvents = True
End Sub
 
@Cobbe, bedankt. De loop had ik even over het hoofd gezien
@SNB, klopt. Bedankt voor de tip.

Topic gaat op solved
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan