Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Macro che estrae dati stessa cella ma file con data diversa

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Macro che estrae dati stessa cella ma file con data diversa

Postdi Making » 01/03/19 10:49

Buongiorno,

vorrei un suggerimento, devo creare una serie storica di dati per confrontarli prendendoli dalla stessa cella di file che hanno tutti lo stesso nome ma che sono seguiti dalla data (es. 2018-04-23 - Nome File). Siccome ne ho tanti vorrei evitare di fare un file con tutte le formule. Se fosse possibile inserire un range di estrazione e poi una procedura che li metta in colonna con a fianco la data.

fatemi sapere, grazie mille
Making
Utente Junior
 
Post: 24
Iscritto il: 22/07/15 12:50

Sponsor
 

Re: Macro che estrae dati stessa cella ma file con data dive

Postdi Anthony47 » 01/03/19 19:39

Il mio suggerimento:
Parti dal file su cui intendi creare le statistiche (File A)
Apri uno dei file da cui devi estrarre i dati (File B)

Su File A, inserisci in A2 la formula che peschi il dato che ti interessa dal File B

Chiudi il file B
Ti troverai con una formula del tipo
Codice: Seleziona tutto
='D:\PercorsoCompleto\[2018-04-23 - Nome File.xlsx]Foglio1'!$C$1

Sostituisci ora la parte 2018-04-23 con XYZZ; la formula ti restituira' un errore di tipo #RIF
Copia questa formula verso il basso per quante righe di dati vorresti raccogliere

Ora in un "Modulo standard del vba" del tuo file di lavoro inserisci questa macro:
Codice: Seleziona tutto
Sub RiFormula()
Dim I As Long, IData As String, fData As Date
'
IData = "1-set-2018"        '<<< La data di partenza
'
fData = CDate(IData)
Application.DisplayAlerts = False
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    Cells(I, "A").Formula = Replace(Cells(I, "A").Formula, "XYZZ", Format(fData, "yyyy-mm-dd"), , , vbTextCompare)
    fData = fData + 1
Next I
Application.DisplayAlerts = True
MsgBox ("Completato...")
End Sub
Per le istruzioni: viewtopic.php?f=26&t=103893&p=647675#p647675

Personalizza la riga marcata <<< come da commento, rispettando ovviamente la sintassi.

Infine manda in esecuzione la Sub RiFormula
Per le istruzioni: viewtopic.php?f=26&t=103893&p=647678#p647678

Fai sapere...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16560
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro che estrae dati stessa cella ma file con data dive

Postdi Making » 14/03/19 15:55

Grazie, funziona, se volessi farlo su quattro colonne contemporaneamente?
Making
Utente Junior
 
Post: 24
Iscritto il: 22/07/15 12:50

Re: Macro che estrae dati stessa cella ma file con data dive

Postdi Anthony47 » 15/03/19 01:15

Per lavorare sulle colonne A:D, sostituisci l'attuale ciclo For I / Next I con
Codice: Seleziona tutto
For I = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    For J = 1 To 4
        Cells(I, J).Formula = Replace(Cells(I, J).Formula, "XYZZ", Format(fData, "yyyy-mm-dd"), , , vbTextCompare)
    Next J
    fData = fData + 1
Next I


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16560
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Macro che estrae dati stessa cella ma file con data dive

Postdi Making » 15/03/19 12:05

Funziona tutto, grazie. E' possibile fare in modo che la data venga inserita in una finestra anzichè scritta nella macro e in cado di dato non disponibile la cella rimanga vuota senza restituire il valore di errore (tipo iferror(.....)?
Making
Utente Junior
 
Post: 24
Iscritto il: 22/07/15 12:50

Re: Macro che estrae dati stessa cella ma file con data dive

Postdi Anthony47 » 16/03/19 00:27

Per la data inserita tramite inputbox, sostituisci la riga IData = "1-set-2018"
con
Codice: Seleziona tutto
rispo = Application.InputBox("Data di partenza?", "Input data", , , , , , 2)
If rispo = False Then Exit Sub
If Not IsDate(rispo) Then Exit Sub
IData = Format(rispo, "dd-mmm-yyyy")   



Anthony ha scritto:Su File A, inserisci in A2 la formula che peschi il dato che ti interessa dal File B
Quanto ad evitare errori come risultato della formula, allora devi tu impostare le formule iniziali in modo che contengano IFERROR /SE.ERRORE.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 16560
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Macro che estrae dati stessa cella ma file con data diversa":


Chi c’è in linea

Visitano il forum: Nessuno e 10 ospiti