Excel Forum Per condividere esperienze su Microsoft Excel

Estrazione dati da più file excel uguali

  • Messaggi
  • OFFLINE
    enri1969
    Post: 12
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 27/02/2017 15:43
    Buongiorno a tutti
    Vorrei riportare in un file alcuni dati presenti in file diversi

    Vi allego i file come esempio:
    "File1", "File2" e "File3" contengono nella cella b2 il nome di una città

    Il file "Risultato" contiene appunto il risultato che vorrei

    Grazie per l'attenzione...
    Enrico

  • OFFLINE
    patel45
    Post: 3.725
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 27/02/2017 19:38
    i dati devono rimanere legati ai 3 file o no ?
    Macro o formule ?

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 12
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 08:53
    Ciao
    Ho questi 3 file (ma in realtà ne avrò più di 300 ed ogni giorno aumentano) dove ho necessità di estrarre alcuni dati (sono più di uno, ma nell'esempio ho messo solo la cella B2)

    Possono anche essere indipendenti, una volta che li ho estratti

    Formula meglio, la capisco di più e posso adattarla meglio :)

    Grazie molte
  • OFFLINE
    patel45
    Post: 3.728
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 28/02/2017 10:47
    niente formule visto che sono tanti file, se non ti intendi di macro è inutile farne una per un solo dato, devi allegare file più significativi

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 13
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 11:06
    Ti mando file più significativi e file di riepilogo che vorrei
    Grazie molte
  • OFFLINE
    patel45
    Post: 3.729
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 28/02/2017 12:15
    Sub Openfile()
    Set xlApp = New Excel.Application
    Dim strFile As String
    Set sh = ThisWorkbook.Sheets(1)
    mFolder = "F:\Download\E\" ' <<<<<<<< da modificare
    strFile = Dir(mFolder & "*.xlsx")
    riga = 2
    Do While strFile <> ""
        Set WB = xlApp.Workbooks.Open(mFolder & strFile)
        sh.Cells(riga, 1).Value = WB.Sheets(1).Range("B2").Value
        sh.Cells(riga, 2).Value = WB.Sheets(1).Range("B6").Value
        sh.Cells(riga, 3).Value = WB.Sheets(1).Range("B8").Value
        sh.Cells(riga, 4).Value = WB.Sheets(1).Range("B10").Value
        WB.Close False
        riga = riga + 1
        strFile = Dir
    Loop
    xlApp.Quit
    Set WB = Nothing
    Set xlApp = Nothing
    End Sub

    i file devono stare tutti nella stessa cartella mFolder

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 14
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 14:19
    Metto tutti i file in questa cartella:
    R:\BAGHINO\mfolder

    e modifico la macro così ?
    mFolder = "R:\BAGHINO\"

    giusto ?
  • OFFLINE
    patel45
    Post: 3.730
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 28/02/2017 16:33
    Re:
    Metti tutti i file in questa cartella:
    R:\BAGHINO

    e modifichi la macro così
    mFolder = "R:\BAGHINO\"





    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 15
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 16:52
    ok, fatto
    ma non mi fa niente :(
    apro il file "risultato" ma non fa nulla

  • OFFLINE
    enri1969
    Post: 16
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 17:06
    funziona (avevo copiato male)!!!
    GRAZIE !!!
    molto utile
  • OFFLINE
    enri1969
    Post: 17
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/02/2017 17:27
    ultimissima cosa
    Se nel file ho due fogli, dove devo scrivere nella macro di andare a prendere i dati nel foglio che voglio io ?
    grazie !!!
  • OFFLINE
    patel45
    Post: 3.732
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 28/02/2017 17:37
    sh.Cells(riga, 1).Value = WB.Sheets(1).Range("B2").Value
    sh è il foglio in cui scrivi i risultati
    WB.Sheets(1) è il foglio 1 del file aperto da cui prendi i dati
    se vuoi il foglio2 fai WB.Sheets(2)
    [Modificato da patel45 28/02/2017 17:38]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 18
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 01/03/2017 09:23
    Perfetto !!!
    grazie mille
    forum davvero utlissimo
  • OFFLINE
    enri1969
    Post: 98
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 28/03/2019 09:55
    modifica macro
    Ciao a tutti
    Qualche settimana fa mi avete fatto una macro utilissima che mi estraeva da dei file Excel in una determinata cartella, alcune celle.

    Sub Openfile()
    Set xlApp = New Excel.Application
    Dim strFile As String
    Set sh = ThisWorkbook.Sheets(1)
    mFolder = "F:\Download\E\" ' <<<<<<<< da modificare
    strFile = Dir(mFolder & "*.xlsx")
    riga = 2
    Do While strFile <> ""
    Set WB = xlApp.Workbooks.Open(mFolder & strFile)
    sh.Cells(riga, 1).Value = WB.Sheets(1).Range("B2").Value
    sh.Cells(riga, 2).Value = WB.Sheets(1).Range("B6").Value
    sh.Cells(riga, 3).Value = WB.Sheets(1).Range("B8").Value
    sh.Cells(riga, 4).Value = WB.Sheets(1).Range("B10").Value
    WB.Close False
    riga = riga + 1
    strFile = Dir
    Loop
    xlApp.Quit
    Set WB = Nothing
    Set xlApp = Nothing
    End Sub

    Nasce ora l'esigenza di copiare le stesse celle però in più righe...
    Quindi, non solo la B2, B6, B8 e B10, ma anche la B3 (etc) fino alla 30esima riga.

    Potrei ovviamente copiare tutte le celle interessate, ma mi chiedevo se ci fosse un metodo più veloce per far copiare l'intervallo delle celle:
    tipo Range("B6:B30") ...che non funziona :)

    Grazie

  • OFFLINE
    patel45
    Post: 4.134
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 29/03/2019 10:18
    Re: modifica macro

    Sub Openfile()
    Set xlApp = New Excel.Application
    Dim strFile As String
    Set sh = ThisWorkbook.Sheets(1)
    mFolder = "F:\Download\E\" ' <<<<<<<< da modificare
    strFile = Dir(mFolder & "*.xlsx")
    riga = 2
    Do While strFile <> ""
      Set WB = xlApp.Workbooks.Open(mFolder & strFile)
      for col = 6 to 30
        sh.Cells(riga, col - 5).Value = WB.Sheets(1).Range("B" & col).Value
      next
      WB.Close False
      riga = riga + 1
      strFile = Dir
    Loop
    xlApp.Quit
    Set WB = Nothing
    Set xlApp = Nothing
    End Sub


    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
  • OFFLINE
    enri1969
    Post: 99
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 29/03/2019 10:40
    Ottimo
    Riesco a metterla in colonna anziché in riga ?
    Attualmente nell'excel B6 B7 B8 B9 B10

    vorrei in colonna
    B6
    B7
    B8
    B9
    B10

    Comunque grazie !!!
    Enrico
  • OFFLINE
    enri1969
    Post: 100
    Registrato il: 13/01/2017
    Città: GENOVA
    Età: 55
    Utente Junior
    2013
    00 29/03/2019 12:49
    In pratica vorrei questo:
    FLOTTA1 e FLOTTA2 sono i due Excel di cui vorrei estrarre i dati
    ESTRAZIONE è il file che vorrei che si generasse con la macro

    Grazie !!!

    Ciao

    Enrico
  • OFFLINE
    patel45
    Post: 4.135
    Registrato il: 13/03/2012
    Città: LIVORNO
    Età: 78
    Utente Master
    2010
    00 29/03/2019 17:08
    Nei file allegati non vedo riscontro a quanto hai detto

    Riesco a metterla in colonna anziché in riga ?
    Attualmente nell'excel B6 B7 B8 B9 B10

    vorrei in colonna
    B6
    B7
    B8
    B9
    B10


    Comunque in base agli allegati prova questa
    Sub accoda()
    Set xlApp = New Excel.Application
    Dim strFile As String
    Set sh = ThisWorkbook.Sheets(1)
    mFolder = "F:\Download\a\" ' <<<<<<<< da modificare
    strFile = Dir(mFolder & "*.xlsx")
    riga = 2
    Do While strFile <> ""
      Set WB = xlApp.Workbooks.Open(mFolder & strFile)
      r = WB.Sheets(1).Cells(Rows.Count, "A").End(xlUp).Row
      WB.Sheets(1).Range("A2:C" & r).Copy
      sh.Range("A" & riga).PasteSpecial xlPasteFormats
      WB.Close False
      riga = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row + 1
      strFile = Dir
    Loop
    xlApp.Quit
    Set WB = Nothing
    Set xlApp = Nothing
    End Sub


    [Modificato da patel45 29/03/2019 18:51]

    ----------
    Win 10 - Excel 2010
    allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta