Ok (temevo che era uno stato impostato su foglio SCHEDA)
Quindi vorresti che quando in colonna I di foglio REGISTRO l'utente scrive CHIUSA la pratica gli scompare da sotto gli occhi e viene spostata in foglio CHIUSE...
Direi che per prima cosa allora, incece che
if Target.Value <> "CHIUSA" Then sarà necessario usare
- Codice: Seleziona tutto
If Target.Value = "CHIUSA" Then
(si perchè la tua notazione sposta tutto eccetto quelle chiuse, e te ne sei già accorto)
Seconda cosa, e' meglio che mentre fai questa operazione gli eventi siano bloccati, per inibire l'esecuzioni di altre macro di evento che potrebbero scattare impropriamente (e succede ma non te ne sei accorto, quando ti trovi l'errore sulla WorksheetChange di RIEPILOGO)
Ultima cosa, la Worksheet_Change può avere come target anche piu' celle (pensa ad esempio quando cancelli un gruppo di celle); questo manderebbe in errore istruzioni quali Target.Value (e te ne sei accorto); quindi e' opportuno che nells Sub ci sia un check che sia stata modificata una sola cella prima di procedere.
Cio' detto, una versione "2" della Worksheet_Change di foglio REGISTRO, che tiene anche conto che (da quel che vedo) alle scritte aggiungi dei simpatici simboli, potrebbe essere:
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ur As Long
If Target.Count > 1 Then Exit Sub
'
If Target.Column = 9 Then '9=I
ur = Sheets("CHIUSE").Cells(Rows.Count, 1).End(xlUp).Row
If Right(Target.Value, 6) = "CHIUSA" Then
Application.EnableEvents = False
Range("A" & Target.Row & ":" & "I" & Target.Row).Copy Destination:=Sheets("CHIUSE").Cells(ur + 1, 1)
Target.EntireRow.Delete
Application.EnableEvents = True
End If
End If
ActiveCell.EntireRow.AutoFit
End Sub
La WorksheetChange di CHIUSE sara' analoga, a parte che lì userai
<> "CHIUSA"