Ho seguito una logica un po' contorta, forse...
Il foglio, una volta creato, deve subire l'azione di due subroutines, chiamate EmptyRowDelete e DividiInterviste.
Se invece il foglio viene mantenuto, deve subire solo l'azione di DividiInterviste.
Ho seguito la logica di andare a ErrHandler: se c'è conflitto, di andare a fine: se non c'è conflitto.
In ErrHandler, se viene creato un file ex novo, si va ugualmente a fine: perché il destino è comune a quello che ci sarebbe in mancanza di errore, mentre se viene mantenuto il file originario si va a continua: per subire solo l'ultima delle azioni subite dal file negli altri due casi.
Sub CopiaFoglio() Dim newsheet As Worksheet Set newsheet = Sheets.Add On Error GoTo ErrHandler newsheet.Name = "Foglio elaborazione" GoTo fine ErrHandler: risposta = MsgBox("Creare un nuovo Foglio Elaborazione?", vbYesNo) If risposta = vbNo Then Application.DisplayAlerts = False newsheet.Delete Application.DisplayAlerts = True GoTo continua Else Application.DisplayAlerts = False Sheets("Foglio elaborazione").Delete Application.DisplayAlerts = True newsheet.Name = "Foglio elaborazione" End If fine: Sheets("Foglio Elaborazione").Move after:=Sheets("PANNELLO DI CONTROLLO") Sheets("riserva").Cells.Copy Destination:=Sheets("Foglio elaborazione").Cells EmptyRowDelete continua: Sheets("Foglio elaborazione").Activate DividiInterviste End SubHo cercato di rendere con i colori le due vie e la via comune finale.
Nessun commento:
Posta un commento