Sovrascrivere un folio excel importando il contenuto da un altro file

Anonimo
2016-05-26T09:58:54+00:00

Ciao a tutti,

ho il seguente codice vba:

Public Sub m()

    Dim fd As FileDialog

    Dim v As Variant

    Dim s As String

    Dim wrk1 As Workbook

    Dim wrk2 As Workbook

    Dim sh As Worksheet

    Set wrk1 = ThisWorkbook

    With Application

         Set fd = .FileDialog(msoFileDialogOpen)

     End With

    With fd

         .Show

         .InitialFileName = "C:\tuaDirectory"

         For Each v In .SelectedItems

             s = CStr(v)

         Next

     End With

    Set wrk2 = Workbooks.Open(s)

    Set sh = wrk2.Worksheets("Foglio1")

    sh.Copy Before:=wrk1.Sheets(1)

    wrk2.Save

    wrk2.Close

    Set fd = Nothing

    Set sh = Nothing

    Set wrk2 = Nothing

    Set wrk1 = Nothing

End Sub

Che mi consente di importare un foglio di calcolo da un file salvato sul desktop in un altro file excel.

Ho però un'altra necessità.

Il foglio di lavoro che trasferisco nel file master dovrà sovrascrivere il contenuto di un altro foglio di calcolo con lo stesso nome.

Inoltre, il file da cui copio il tutto dovrà essere eliminato dal desktop (credo con la funzione kill).

Qualcuno può aiutarmi?

Grazie mille.

Saluti,

PDA

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

7 risposte

Ordina per: Più utili
  1. Anonimo
    2016-05-26T15:14:29+00:00

    Se la macro è nel file GASOLIO QUOTIDIANO PAOLO dec. xx.xx.xx.xlsm , devi solo cambiare i nomi. E provare... ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2016-05-26T15:06:00+00:00

    Ciao Mauro,

    il file si chiama DATI CREDITO PDA CAR.xlsx ed è salvato, chiuso, sul desktop.

    Al suo interno c'è il foglio 1 che si chiama DATI CREDITI.

    Il file che contiene la macro si chiama GASOLIO QUOTIDIANO PAOLO dec. xx.xx.xx.xlsm ed ì su questo che, al foglio 3, bisogna sovrascrivere il contenuto.

    Alla fine, bisogna eliminare il file DATI CREDITO PDA CAR.xlsx dal desktop.

    Saluti,

    PDA

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2016-05-26T12:47:08+00:00

    Allora vediamo se ho capito.

    Sul desktop abbiamo, chiuso, un file che si chiama DATI CREDITO.xlsx o ha un altro nome? 

    Dobbiamo sovrascrivere il terzo foglio del file DATI CREDITO (.xlsx? .xlsm?) che si trova DOVE? O è il file che contiene la macro? E dobbiamo sovrascriverlo con il primo foglio del file sul desktop. Giusto?

    Quindi eliminiamo Dati Credito.xlsx (o come si chiama) dal desktop, giusto?

    Grazie.

    Se è così, prova:

    Public Function f() As String

    Const DESKTOP = &H10&

    Dim objShell As Object

        Dim objFolder As Object

        Dim objFolderItem As Object

    Set objShell = CreateObject("Shell.Application")

        Set objFolder = objShell.Namespace(DESKTOP)

        Set objFolderItem = objFolder.Self

    f = objFolderItem.Path

    Set objFolderItem = Nothing

        Set objFolder = Nothing

        Set objShell = Nothing

    End Function

    Public Sub m()

    Dim wrk1 As Workbook

        Dim wrk2 As Workbook

        Dim shMe As Worksheet

        Dim shAltro As Worksheet

        Dim sPath As String

        Set wrk1 = ThisWorkbook

        Set shMe = wrk1.Worksheets("DATI CREDITO")

        Set wrk2 = Workbooks.Open(f() & "" & "Dati Credito.xlsx")

        Set shAltro = wrk2.Worksheets("DATI CREDITO")

        Application.ScreenUpdating = False

        shMe.Cells.Clear

        shAltro.Range("A1").CurrentRegion.Copy

        shMe.Range("A1").PasteSpecial

        sPath = wrk2.FullName

        wrk1.Save

        wrk2.Close

        Kill sPath

    With Application

            .CutCopyMode = False

            .ScreenUpdating = True

        End With

        Set shAltro = Nothing

        Set shMe = Nothing

        Set wrk2 = Nothing

        Set wrk1 = Nothing

     End Sub

    Le parti in grassetto vanno modificate con i tuoi riferimenti. Io ho chiamato tutto Dati Credito.... ;-)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2016-05-26T11:27:04+00:00

    Ciao Mauro,

    scusa. 

    Il file A sul desktop è chiuso e contiene 4 fogli di calcolo. Quello cui bisogna fare riferimento è il primo che è denominato DATI CREDITO.

    Il foglio di calcolo del file B di cui bisogna sovrascrivere il contenuto è il terzo ed ha lo stesso nome DATI CREDITO.

    Dopodiché bisogna eliminare dal desktop il file A.

    Saluti,

    PDA

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2016-05-26T10:22:29+00:00

    Il file sul Desktop è aperto?

    Il file nel quale dobbiamo sovrascrivere il foglio, è aperto?

    Come facciamo a sapere quale foglio del file sul Desktop utilizzare per sovrascrivere l'altro?

    In definitiva, spiega BENE la procedura che vorresti fare.

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento