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 Sub
Ho cercato di rendere con i colori le due vie e la via comune finale.
Nessun commento:
Posta un commento