Copia Sheet da un file excel ad un altro da Errore 1004

di Didacus il
1 risposte
Buongiorno,
sto cercando di copiare uno Sheet (CopiaOriginale) da un file ad un altro in excel ma ho un errore :

run time error 1004
Copy method of worksheet class failed

Probabilmente il codice ha qualche errore/mancanza ma non riesco a capire come fare a risolvere.
Se potete darmi qualche indicazione vi sarei grato
Grazie in anticipo
Diego

Allego il codice.
WB_Corrente e' il file da cui lavoro ed in cui vorrei copiare uno sheet (Copiaoriginale) presente in un altro file WB_Copia
WB_Copia e' il file da cui vorrei copiare lo sheet (CopiaOriginale).
Lancio la macro dal file WB_Corrente.

Sub ImportaFogli()

Dim WB_Copia, WB_Corrente As Workbook
Dim fname As String
Dim mes As String

'Worksheet corrente gia' aperto
Set WB_Corrente = ThisWorkbook

mes = "ATTENZIONE:" & vbCr & vbCr
mes = mes & "Sarà importato il foglio CopiaOriginale da un altro file." & vbCr
mes = mes & "Il foglio CopiaOriginale sara' copiato in questo file." & vbCr & vbCr
mes = mes & "Sicuro di voler continuare?"
mes = MsgBox(mes, vbYesNo + vbExclamation, " Copia CoiaOriginale da altro file")
If mes = vbNo Then Exit Sub

' Cerco il file excel sul disco da cui copiare lo sheet CopiaOriginale
fname = Application.GetOpenFilename("File excel (*.xls*), *.xls*", , "Selezionare il file da importare")
If fname = "Falso" Then GoTo esci

'Apro il file
Workbooks.Open fname
Set WB_Copia = ActiveWorkbook
ActiveWindow.Visible = False

Application.ScreenUpdating = False

' Copia dello sheet CopiaOriginale nel WB corrente
WB_Copia.Sheets("CopiaOriginale").Copy after:=WB_Corrente.Sheets(1) ' --------- Qui ho l'errore
Application.ScreenUpdating = True

WB_Copia.Close

MsgBox "Importazione eseguita correttamente!", vbOKOnly + vbInformation, " Copia sheet CopiaOriginale da altro file"

esci:
Set WB_Copia = Nothing
Set WB_Corrente = Nothing

End Sub

1 Risposte

  • Buongiorno ho semplificato il tutto ed ora sembra andare.
    Spero sia utile.
    Se qualcuno avesse ulteriori commenti ben vengano
    Grazie


    Dim WB_Corrente As String
    Dim fname As String
    Dim mes As String
    Dim pippo As Workbook

    mes = "ATTENZIONE:" & vbCr & vbCr
    mes = mes & "Sarà importato il foglio CopiaOriginale da un altro file." & vbCr
    mes = mes & "Il foglio CopiaOriginale sara' copiato in questo file." & vbCr & vbCr
    mes = mes & "Sicuro di voler continuare?"
    mes = MsgBox(mes, vbYesNo + vbExclamation, " Copia CopiaOriginale da altro file")
    If mes = vbNo Then Exit Sub

    ' Cerco il file excel sul disco da cui copiare lo sheet CopiaOriginale
    fname = Application.GetOpenFilename("File excel (*.xls*), *.xls*", , "Selezionare il file da importare")

    WB_Corrente = ActiveWorkbook.Name
    Set pippo = Workbooks.Open(Filename:=fname)

    Sheets("CopiaOriginale").Copy Before:=Workbooks(WB_Corrente).Sheets(1)

    MsgBox "Importazione eseguita correttamente!", vbOKOnly + vbInformation, " Copia sheet CopiaOriginale da altro file"

    pippo.Close
    Set pippo = Nothing
Devi accedere o registrarti per scrivere nel forum
1 risposte