Copiare in modo automatico dei dati da un file excel ad un altro

Anonimo
2011-04-04T15:12:40+00:00

Carissimi esperi ho un problema con excel.

Allora vi descrivo il mio problema:

Ho una cartella con diversi file excel che creo e aggiorno per le notespese.

Esempio :

  • Cartella "Y:\NOTESPESE" (all'interno di questa cartella ci sono diversi file uguali ma rinominati in modo diferente con dati diferenti)

    >  2011-04-riva    >  2011-04-ciubanecc (ho linkato sui nomi il tipo di file che ho)

Vorrei creare una macro o qualcosa simile in modo che mi trasferisca tutti i dati di tutti i file dall'interno della cartella notespese (attenzione solo dalla riga 15 in giù <vedi screenshot sopra>) IN UN UNICO FILE ecco screenshot -->> Link

(P.S. Ogni file che c'è all'interno della cartella Notespese contiene dati diferenti cioè uno ha più righe compilate un'altro di meno)

VI PREGO SPIEGATEMI PASSO A PASSO - STEP TO STEP CHE IO CON L'EXCEL NON ME LA CAVO MOLTO.

GRAZIE MILLE A TUTTI.. ASPETTO UNA VOSTRA RISPOSTA

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
Risposta accettata dall'autore della domanda
Anonimo
2011-04-04T15:33:23+00:00

Carissimi esperi ho un problema con excel.

Allora vi descrivo il mio problema:

Ho una cartella con diversi file excel che creo e aggiorno per le notespese.

Esempio :

  • Cartella "Y:\NOTESPESE" (all'interno di questa cartella ci sono diversi file uguali ma rinominati in modo diferente con dati diferenti)

    >  2011-04-riva    >  2011-04-ciubanecc (ho linkato sui nomi il tipo di file che ho)

Vorrei creare una macro o qualcosa simile in modo che mi trasferisca tutti i dati di tutti i file dall'interno della cartella notespese (attenzione solo dalla riga 15 in giù <vedi screenshot sopra>) IN UN UNICO FILE ecco screenshot -->> Link

(P.S. Ogni file che c'è all'interno della cartella Notespese contiene dati diferenti cioè uno ha più righe compilate un'altro di meno)

 

Per favore, posta e metti in condivisione un file(senza dati) qui: http://explore.live.com/windows-live-skydrive . Eviti che chi vuole aiutarti debba perdere trmpo per ricostruire il file. Grazie.

La risposta è stata utile?

5 persone hanno trovato utile questa risposta.
0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-04-05T14:25:14+00:00

Ciao Mauro ti voglio ringraziaree davvero tanto. Funziona tutto alla grande..

Se non ti disturbo troppo vorrei chiederti un'altra domanda riguardo a questa cosa e poi prommetto che non ti disturbo più.

Allora se volessi che nel file finale venga inserita un'altra colonna (in modo automatico) che davanti ai dati importati dalla cartella "notespese" mi prenda la cella "D4 (con il rispettivo nome che c'è dentro la cella)" di tutti i file che si trovano all'interno della cartella e che si inserisca in automatico davanti ai dati.. come in questo esempio: Link

E' l'ultima cosa che ti chiedo.. te lo prommetto

Ma figurati. E' un tuo diritto chiedere.

Io però aggiungerei a mano(lo fai tu) la colonna A. Questo il codice modificato per fare quanto chiedi:

Public Sub m()

On Error GoTo RigaErrore

    Dim objFSO As Object

    Dim objFolder As Object

    Dim objFile As Object

    Dim wrk As Workbook

    Dim sh As Worksheet

    Dim shStorico As Worksheet

    Dim wkStorico As Workbook

    Dim lUltRiga As Long

    Dim lRiga As Long

    Dim sPath As String

    Dim s As String

    With Application

        .ScreenUpdating = False

        .Calculation = xlManual

        .StatusBar = "Sto eseguendo: Sub m()"

    End With

    sPath = "C:\Prova\miaCartella"

    Set wkStorico = ThisWorkbook

    Set shStorico = wkStorico.Worksheets("Sheet1")

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    Set objFolder = objFSO.GetFolder(sPath)

    For Each objFile In objFolder.Files

        If Right(objFile.Name, 3) = "xls" _

            Or Right(objFile.Name, 4) = "xlsx" _

            Or Right(objFile.Name, 4) = "xlsm" Then

            Set wrk = Workbooks.Open(sPath & objFile.Name)

            With wrk

                Set sh = .Worksheets("Sheet1")

            End With

            lUltRiga = shStorico.Range("D" _

                & Rows.Count).End(xlUp).Row + 1

            If lUltRiga < 5 Then lUltRiga = 5

            With sh

                lRiga = .Range("D" & .Rows.Count).End(xlUp).Row

                .Range("A15:R" & lRiga).Copy

                shStorico.Range("A" & lUltRiga).PasteSpecial xlPasteValues

            End With

            With shStorico

                lRiga = .Range("D" & .Rows.Count).End(xlUp).Row

                s = Mid(objFile.Name, 9, Len(objFile.Name))

                .Range("A" & lUltRiga & ":A" & lRiga).Value = Left(s, InStr(s, ".") - 1)

            End With

            wrk.Close

        End If

    Next

RigaChiusura:

    Set sh = Nothing

    Set wrk = Nothing

    Set shStorico = Nothing

    Set wkStorico = Nothing

    Set objFile = Nothing

    Set objFolder = Nothing

    Set objFSO = Nothing

    With Application

        .ScreenUpdating = True

        .Calculation = xlAutomatic

        .StatusBar = ""

    End With

    Exit Sub

RigaErrore:

    MsgBox Err.Number & vbNewLine & Err.Description

    Resume RigaChiusura

End Sub

Fai sempre prove accurate prima di metterlo in produzione. Grazie per l'attenzione.

--

La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare il codice o la soluzione in files importanti.

--

Mauro Gamberini - Microsoft© MVP(Excel)

http://www.maurogsc.eu

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

7 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-04-05T10:18:49+00:00

    Ciao mauro grazie per la risposta..

    Allora  la cosa da fare è semplice.. Devi solo prendere i dati dai file che si trovano in cartella "notespese" e trasferirli automaticamente nel file finale..

    Nel file finale dovranno comparire i dati sia da "2011-04-riva" e sia "2011-04-riva".

    nella cartella notespese io vi ho riportato solo 2 esempi.. ma potrebbero essere molti più file con più dati o meno dati..

    quindi in reassunto.. bisogna importare i dati dai file che sono dentro la cartella "notespese" in quello finale.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-04-05T10:01:59+00:00

    Scusate avete ragione..

    Eccoli qua..  Ho zippato la cartella note spese ..  La trovate a questo Linke il file finale in qui bisogna importare i dati è questo qui

    Bene. La cosa in se è semplice...;-)

    Alcuni appunti

    1. Non vedo riferimenti sul file di arrivo(da qui lo chiamo Storico) a proposito da quale file abbiamo preso i dati. Non importa?
    2. Quando fai una modifica ai files, come va accodata la modifica nello Storico?
    3. Le modifiche, comprendono la cancellazione di dati e se sì, come si devono riflettere sullo Storico?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-04-05T08:10:16+00:00

    Scusate avete ragione..

    Eccoli qua..  Ho zippato la cartella note spese ..  La trovate a questo Linke il file finale in qui bisogna importare i dati è questo qui

    La risposta è stata utile?

    0 commenti Nessun commento