Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Estrazione dati da più file excel uguali

Ultimo Aggiornamento: 29/03/2019 17:08
Post: 12
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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

Post: 3.725
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 12
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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
Post: 3.728
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 13
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/02/2017 11:06

Ti mando file più significativi e file di riepilogo che vorrei
Grazie molte
Post: 3.729
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 14
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/02/2017 14:19

Metto tutti i file in questa cartella:
R:\BAGHINO\mfolder

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

giusto ?
Post: 3.730
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 15
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/02/2017 16:52

ok, fatto
ma non mi fa niente :(
apro il file "risultato" ma non fa nulla

Post: 16
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
28/02/2017 17:06

funziona (avevo copiato male)!!!
GRAZIE !!!
molto utile
Post: 17
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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 !!!
Post: 3.732
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 18
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
01/03/2017 09:23

Perfetto !!!
grazie mille
forum davvero utlissimo
Post: 98
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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

Post: 4.134
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Post: 99
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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
Post: 100
Registrato il: 13/01/2017
Città: GENOVA
Età: 55
Utente Junior
2013
OFFLINE
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
Post: 4.135
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 20:46. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com