Ti posto una possibile soluzione che, anche se ancora da affinare, potrebbe essere un primo passo.
Visto che vengono fatte delle cancellazioni mi raccomando di fare le prove su una copia del tuo excel per non danneggiare l’originale.
Vai sul Foglio1, premi ALT+F11 e incolla questo codice nello spazio bianco che ti si presenta:
codice:
Private Sub Worksheet_Change(ByVal Target As Range)
Colonna_Tendine = 5
Stringa_Chiuso = "Chiuso"
If Target.Count = 1 Then
If Target.Column = Colonna_Tendine And Target.Value = Stringa_Chiuso Then
Ultima = Sheets("Foglio2").Columns(Colonna_Tendine).End(xlDown).Row
If Ultima = xlMissingItemsMax2 Then
Ultima = 1
End If
Rows(Target.Row).Copy Destination:=Sheets("Foglio2").Cells((Ultima + 1), 1)
Rows(Target.Row).Clear
End If
End If
End Sub
In questo codice per ora devi modificare solo due cose: devi indicare nella seconda riga il numero della colonna in cui sono presenti le tendine (quelle da cui selezioni lo stato chiuso), io per far le prove ho messo la colonna 5, tu metti quella del tuo foglio. Occhio che devi impostare il numero, non la lettera quindi se le tendine sono in colonna A scrivi 1, se sono in B scrivi 2 ecc… Le mie sono in colonna E quindi ho messo 5.
E poi devi indicare la parola esatta che indica lo stato chiuso, cioè quella che c’è nella tendina, io ho usato Chiuso ma da te protrebbe essere Finito, Concluso, Evaso o altro, non posso saperlo.
Fatto questo dovrebbe già funzionare.
Quello che fa è di copiare la riga su cui imposti lo stato chiuso al fondo del foglio2 e cancellarla dal foglio 1.
Non vengono fatti ordinamenti, quelli poi li vediamo in seguito.
C’è ancora una cosa a cui prestare attenzione:
- Il foglio2 deve contenere qualcosa nella prima cella della colonna delle tendine (nel mio caso la E1), scrivici qualunque cosa, anche paperino se vuoi, perché se la colonna è tutta vuota lo script non riesce a determinare dove scrivere la riga che deve trasferire. Si tratta di un piccolo bug che poi magari mettiamo a posto in seguito. Per determinare la posizione in cui scrivere la riga sul secondo foglio, infatti, il procedimento è di partire dalla prima casella della colonna delle tendine e di scendere fino alla prima casella vuota. Lì viene scritta la riga.
Non è detto che tutto funzioni subito, dipende da vari fattori fra cui per esempio la versione di Excel che usi, comunque cominciamo a provare e vediamo che succede.
Ora vado a casa, ne riparliamo domani.
Ciao