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

di il
1 risposte

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

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

  • Re: Copia Sheet da un file excel ad un altro da Errore 1004

    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