Condividi:        

Importazione ricorrente di dati da altro file excel

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

Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 06/05/14 11:37

Salve a tutti, sono tornato con un nuovo quesito. Spero che possiate aiutarmi.
Ho un file excel su cui vorrei creare una macro che mi permetta di importare in modo
ricorrente dati da un altro file excel. Nella fattispecie il file A contiene dati che vengono presi
di volta in volta dal prg di contabilità (ambiente as400). Il file B invece è il file all'interno del quale questi dati
devono arrivare (nel foglio "Db") per poter essere successivamente lavorati.
La macro dovrebbe fare il seguente lavoro: prendere dal file A e scrivere nel foglio Db del file B (sostituendo i valori presenti e scrivendono eventualmente nuovi).
Spero di essere stato chiaro nella spiegazione. Rimango in attesa.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Sponsor
 

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 06/05/14 11:46

Ciao,
prova, avviando il registratore di macro, a fare i passi che hai descritto ed invia il codice ottenuto ed insieme cercheremo di adattarlo alla tua esigenza.

L'aggiornamento dei dati ogni quanto tempo va fatto?
Ogni "X" minuti, ore, giorni, ... ?

I dati presenti nel file "A" vanno, ogni volta, sostituiti tutti con i nuovi (del file "B") indipendentemente se nel file "A" ci sia qualche dato.
Vero?

I dati del file "B" vanno copiati tutti, ossia tutte le colonne/righe?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 06/05/14 12:41

ricky53 ha scritto:Ciao,
prova, avviando il registratore di macro, a fare i passi che hai descritto ed invia il codice ottenuto ed insieme cercheremo di adattarlo alla tua esigenza.

L'aggiornamento dei dati ogni quanto tempo va fatto?
Ogni "X" minuti, ore, giorni, ... ?

I dati presenti nel file "A" vanno, ogni volta, sostituiti tutti con i nuovi (del file "B") indipendentemente se nel file "A" ci sia qualche dato.
Vero?

I dati del file "B" vanno copiati tutti, ossia tutte le colonne/righe?


Perdona la mia ignoranza, come ti allega il codice ottenuto??
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi Anthony47 » 06/05/14 14:00

Copia il codice e lo incollalo nel tuo prossimo messaggio... In dettaglio:

Per visualizzare il codice dopo che hai registrato la macro:
-da Excel, premi Alt-F8
-ti verra' presentato l' elenco delle macro disponibili; seleziona quella che hai appena registrata e premi Modifica
-si apre l' editor delle macro; seleziona il codice, Copialo;

Vai nel testo del messaggio che stai scrivendo, Incolla quanto appena copiato; meglio se ora selezioni tutto il codice della macro e premi il tasto "Code" in testa al box in cui stai scrivendo il messaggio (vedremo meglio il codice della macro).

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 06/05/14 14:32

ricky53 ha scritto:Ciao,
prova, avviando il registratore di macro, a fare i passi che hai descritto ed invia il codice ottenuto ed insieme cercheremo di adattarlo alla tua esigenza.

L'aggiornamento dei dati ogni quanto tempo va fatto?
Ogni "X" minuti, ore, giorni, ... ?

I dati presenti nel file "A" vanno, ogni volta, sostituiti tutti con i nuovi (del file "B") indipendentemente se nel file "A" ci sia qualche dato.
Vero?

I dati del file "B" vanno copiati tutti, ossia tutte le colonne/righe?


Grazie Anthony...

Ricky, di seguito il codice della macro che ho registrato.

Codice: Seleziona tutto
Sub Import()
'
' Import Macro
'
' Scelta rapida da tastiera: CTRL+i
'
    ChDir "C:\Users\...\Desktop\Cdc"
    Workbooks.Open Filename:="C:\Users\...\Desktop\Cdc\Cdc1.xls"
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Windows("ricla.xlsm").Activate
    ActiveSheet.Next.Select
    ActiveSheet.Paste
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

L'aggiornamento non deve essere definito temporalmente. Dovrebbe essere "comandato" da apposito "Bottone".
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 06/05/14 15:02

Ciao,
con questo codice ottieni quello che volevi?
E' valido per tutti i casi ?
In merito all'intervallo da copiare: cambiano solo le righe ma le colonne rimangono sempre quelle?

Il codice va adattato inserendo il nome del foglio dal quale copiare e quello sul quale riportare i dati.
Probabilmente alcune istruzioni vanno tolte
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 07/05/14 08:06

ricky53 ha scritto:Ciao,
con questo codice ottieni quello che volevi?
E' valido per tutti i casi ?
In merito all'intervallo da copiare: cambiano solo le righe ma le colonne rimangono sempre quelle?

Il codice va adattato inserendo il nome del foglio dal quale copiare e quello sul quale riportare i dati.
Probabilmente alcune istruzioni vanno tolte


Bongiorno Ricky, scusami se ti rispondo soltanto adesso. Dunque, la macro realizza quanto volevo. Non capisco esattamente
quali siano le istruzioni che vanno tolte, io credo di aver effettuato le azioni strettamente necessarie per poter arrivare al risultato finale. Seguendo l'esempio della prima macro ho creato anche una macro che pulisce il foglio dai dati presenti prima dell'importazione successiva. Mi sorge però un problema... Siccome questi dati che importo sono legati attraverso formule ad un prospetto di riclassificato, presente in un altro foglio del file, non appena io cancello i dati (o anche senza cancellare mando la nuova importazione) tutte le celle con le formule mi danno come errore Rif!. Come posso fare per sopperire a questo problema.
Per inciso le formule presenti nel riclassificato sono tutte Somma.se ....
Se riesco in giornata prova ad inviarti la copia del file per farti capire meglio il problema.
Ti ringrazio per l'aiuto e per l'attenzione, sia a te che a tutto il forum.
Saluti.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 07/05/14 12:23

Ciao,
è preferibile attendere il tuo file, anche per capire bene il tuo problema legato al "#RIF!".
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 07/05/14 16:11

ricky53 ha scritto:Ciao,
è preferibile attendere il tuo file, anche per capire bene il tuo problema legato al "#RIF!".


Ciao Ricky, scusami il ritardo ma non ho potuto prima.
Di seguito i link ai 2 file che devi scaricare nella stessa directory.. ma credo comunque che tu ne sappia più di me!!

https://www.dropbox.com/s/u2faizmmw0ioa8l/Cdc1.xls
https://www.dropbox.com/s/yunc5cneuq300vc/ricla1.xlsm

Il file su cui devi lavorare è il secondo!!
Spero mi possiate aiutare tu e gli amici del forum.
Grazie.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi Flash30005 » 08/05/14 09:09

Non ho capito bene il problema e provo a postare questa macro che apre il file (Cdc1.xls) che deve trovarsi nella stessa cartella del file con la macro: "Ricla1.xlsm"
copia i dati, li incolla nel foglio DB sostituendo i precedenti dati
e richiude il file origine-dati
Codice: Seleziona tutto
Sub Import()
'
' Import Macro
'
' Scelta rapida da tastiera: CTRL+i
'
perc = ThisWorkbook.Path & "\"
WSD = ThisWorkbook.Name
FoglioD = "DB"
Worksheets(FoglioD).Select
Cells.Clear
FileD = "Cdc1.xls"
    Workbooks.Open Filename:=perc & FileD
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Windows(WSD).Activate

    Range("A1").Select
    'ActiveSheet.Next.Select
    ActiveSheet.Paste
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    ActiveSheet.Previous.Select
    Application.DisplayAlerts = False
    Workbooks(FileD).Close savechanges:=False
    Application.DisplayAlerts = True
End Sub


ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 08/05/14 10:25

[quote="Flash30005"]Non ho capito bene il problema e provo a postare questa macro che apre il file (Cdc1.xls) che deve trovarsi nella stessa cartella del file con la macro: "Ricla1.xlsm"
copia i dati, li incolla nel foglio DB sostituendo i precedenti dati
e richiude il file origine-dati

Ciao Flash, ti ringrazio intanto per l'aiuto. Sicuramente la macro che hai fatto tu è migliore di quella registrata da me, in quanto io non capisco niente di vb. Fatto sta però che anche la tua macro non risolve il problema delle formule errate (#Rif!) nel foglio P&L del file Ricla1. Praticamente ogni volta che io faccio girare la macro per importare i dati, nel foglio che ti ho specificato si cancellano i riferimenti delle celle da cui prende i dati il foglio. Io vorrei che questo non avenisse... altrimenti ogni volta che carico dati devo riformulare tutte le formule del folgio P&L.
Spero di aver reso l'idea.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 08/05/14 11:23

Ciao,
allora ci sono diverse cose da correggere:
a) la macro che cancella NON deve eliminare le righe ma cancellare solo il contenuto delle celle altrimenti NASCE il problema dei #RIF!

b) quando cancelli "elimini" anche il contenuto delle prime due colonne che contengono Key1 e Key2 questa cosa compromette i calcoli perchè la macro di copia copia da colonna "A" in avanti ed i dati vengono spostati di due colonne a sinistra, ne segue che nel foglio "P&L" TUTTE le formule danno sempre "ZERO" come risultato.

c) ... altre cose da vedere dopo



Veniamo alla questione: le due colonne Key1 e Key2 come vengono prodotte/calcolate/impostate ?
Ho visto che non ci sono formule ma solo valori?


La prima colonna Kye1 viene utilizzata, per esempio, in
Codice: Seleziona tutto
 SOMMA.SE(Db!$A$2:Db!$A$1691; Cover!$D$5&"-"&$A7; Db!$J$2:Db!$J$1691)
che è parte della formula presente in "C7" del foglio "P&L".
Anche nelle altre formule dove si utilizza Key2 si ha la stessa problematica !!!



Come vedi ci sono diverse cose da capire (noi del forum) e sistemare (noi insieme a te).

Attendiamo le tue informazioni ed i tuoi chiarimenti.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 08/05/14 11:46

ricky53 ha scritto:Ciao,
allora ci sono diverse cose da correggere:
a) la macro che cancella NON deve eliminare le righe ma cancellare solo il contenuto delle celle altrimenti NASCE il problema dei #RIF!

b) quando cancelli "elimini" anche il contenuto delle prime due colonne che contengono Key1 e Key2 questa cosa compromette i calcoli perchè la macro di copia copia da colonna "A" in avanti ed i dati vengono spostati di due colonne a sinistra, ne segue che nel foglio "P&L" TUTTE le formule danno sempre "ZERO" come risultato.

c) ... altre cose da vedere dopo



Veniamo alla questione: le due colonne Key1 e Key2 come vengono prodotte/calcolate/impostate ?
Ho visto che non ci sono formule ma solo valori?


La prima colonna Kye1 viene utilizzata, per esempio, in
Codice: Seleziona tutto
 SOMMA.SE(Db!$A$2:Db!$A$1691; Cover!$D$5&"-"&$A7; Db!$J$2:Db!$J$1691)
che è parte della formula presente in "C7" del foglio "P&L".
Anche nelle altre formule dove si utilizza Key2 si ha la stessa problematica !!!



Come vedi ci sono diverse cose da capire (noi del forum) e sistemare (noi insieme a te).

Attendiamo le tue informazioni ed i tuoi chiarimenti.


Buongiorno Ricky,
ringrazio te e tutto il forum per l'aiuto innanzi tutto.
Ti spiego. Le due colonne Key1 e Key2 servono per creare due livelli di approfondimento delle informazioni da interrogare.
Nella fattiaspecie: con la colonna Key1 (altro non è che la concatenazione del nome del negozio con la relativa abbreviazione dell'elemento di costo (colonna L del foglio DB) che viene riportato nel prospetto P&L) presente nel foglio Db, selezionando il negozio dal foglio Cover (casella elenco a discesa D5) vengono riportati i dati di costi e ricavi relativi al negozio nella sua interezza; con la colonna Key2 (concatenazione del nome del negozio comprensivo del reparto e dell'elemento di costo), selezionando nel foglio Cover oltre al negozio anche il reparto (casella elenco a discesa D8) vengono riportati i dati di costi e ricavi soltanto del reparto del negozio. Le due colonne vengono create dalle macro Key1 e Key2 che ho inserito nel foglio Editor.
Spero di essere stato chiaro.
Aspetto sviluppi. ;) ;)
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 08/05/14 12:15

Ciao,
si avevo visto i pulsanti ma non ero entrato nei meriti di cosa facessero.
Ero andato subito al problema che avevi segnalato della cancellazione e dell'import senza andare avanti ... non potevo leggermi tutto il codice VERO ?

Comunque modificando la query che "Pulisce" il foglio "DB" dovresti risolvere.
Io utilizzerei questo semplice codice
Codice: Seleziona tutto
Sub Clear()
'
' Clear Macro
'
' Scelta rapida da tastiera: CTRL+e
'
    Sheets("Db").Cells.ClearContents
End Sub


Attenzione la macro "Aggancia_Cod" crea il problema del #RIF!
anche qui cancelli delle righe



CONSIGLI:
A) non associare una macro alla combinazione di tasti "Ctrl+C" (Vedi macro "Aggancia_Neg_cod"), stessa cosa per altri tasti utilizzati frequentemente in excel ("Ctrl+v")

B) Potresti unire le varie macro che puliscono, importano i dati , ..., creano le colonne per "Key1" e "Key2"
Avresti un solo pulsante "Aggiorna i dati" che farebbe tutto

Più si semplificano le operazioni agli utenti meglio è !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 08/05/14 12:33

Caio,
volevo aggiungere una cosa al mio precedente intervento ma non posso più modificarlo, quindi, riporto qui il mio ... SOSPETTO


a ... NASO le macro non fanno quello che vorresti facessero ed alla fine, dopo la loro esecuzione, le formule in "P&L" non saranno corrette ... è un mio sospetto !!!


Adesso non posso provare ... a più tardi
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 08/05/14 13:43

ricky53 ha scritto:Caio,
volevo aggiungere una cosa al mio precedente intervento ma non posso più modificarlo, quindi, riporto qui il mio ... SOSPETTO


a ... NASO le macro non fanno quello che vorresti facessero ed alla fine, dopo la loro esecuzione, le formule in "P&L" non saranno corrette ... è un mio sospetto !!!


Adesso non posso provare ... a più tardi


Ricky il tuo sospetto è fondato!!! Sono qui proprio per avere suggerimenti da chi come te ne sa molto più di me.
Poi con le macro io non sono molto pratico. Me la cavo più con le funzioni tipiche di excel. Comunque rimango in linea
per ulteriori suggerimenti da parte del forum e nel frattempo cerco di mettere in pratica il consiglio che mi hai postato sopra.
A dopo.
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 08/05/14 14:05

Ciao,
bene modifica come ti ho suggerito ma ... la macro "Aggancia_Cod" farà GUAI.

Vedo ... se mi sarà possibile di sistemarla, nella speranza che sia solo lei a fare guai.


La proposta di unire le macro in una sola che fa TUTTO è applicabile ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 08/05/14 14:39

ricky53 ha scritto:Ciao,
bene modifica come ti ho suggerito ma ... la macro "Aggancia_Cod" farà GUAI.

Vedo ... se mi sarà possibile di sistemarla, nella speranza che sia solo lei a fare guai.


La proposta di unire le macro in una sola che fa TUTTO è applicabile ?


Allora Ricky, la mega-macro potrebbe anche essere fatta, ma alla base della creazione
dei vari passaggi sta il fatto che, se dopo aver fatto questo lavoro non lo tocco più per tot tempo,
mi dovrei andare a ricordare tutti i passaggi per la creazione del db corretto e considerato che, come ti ho già
accennato, io non sono una cima con il linguaggio vb, potrei avere dei problemi. Però se la soluzione
può essere valida anche per snellire il file allora la possiamo mettere in atto. Ma non credo registrando...
forse meglio scrivendo direttamente nell'editor...
Rigurado la modifica l'ho già fatta e come dicevi tu c'è qualche problema... rimango in attesa e ti ringrazio per l'ennesima volta.
:D
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 08/05/14 15:54

Ciao,
senza entrare troppo nei meriti del codice che si vede che è stato ottenuto con il registratore di macro ed adattato ... ti propongo quanto segue:

A) cancella tutte le tue macro e rimuovi tutti i moduli

B) Rimuovi tutti i pulsanti

C) Associa la macro "Aggiorna_DATI" ad un nuovo pulsante

D) copia il seguente codice in un nuovo modulo
Codice: Seleziona tutto
Sub Aggiorna_DATI()
    Application.ScreenUpdating = False
    Call Clear
    Call Import
    Call Aggancia_Cdc
    Call Aggancia_cod
    Call Aggancia_Neg_cod
    Call Aggancia_Neg_Cod_Rep
    Call FINALE
    Application.ScreenUpdating = True
    MsgBox "Effettuato aggiornamento dei dati", vbInformation
End Sub


E) copia anche questo codice in un nuovo modulo (diverso dal precedente)
Codice: Seleziona tutto
Sub Clear()
    Sheets("Db").Cells.ClearContents
End Sub

Sub Import()
'
' Import Macro
'
' Scelta rapida da tastiera: CTRL+i
'
    ChDir "C:\Users\UTENTE\Desktop\Cdc"
    Workbooks.Open Filename:="C:\Users\UTENTE\Desktop\Cdc\Cdc1.xls"
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    Selection.Copy
    Windows("ricla1.xlsm").Activate
    ActiveSheet.Next.Select
   
    Range("A1").Select ' <<==== AGGIUNTA  dopo di deve essere "A1"
    ActiveSheet.Paste
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

Sub Aggancia_Cdc()
'
' Aggancia_Cdc Macro
'
' Scelta rapida da tastiera: CTRL+a
'
    ActiveSheet.Next.Select
    Range("C2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],Cdc!R1C1:R215C3,3,FALSE)"
    Range("C2").Select
    Selection.Copy
    Range("C3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Columns("C:C").ColumnWidth = 7.43
    Columns("C:C").EntireColumn.AutoFit
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

Sub Aggancia_cod()
'
' Aggancia_cod Macro
'
' Scelta rapida da tastiera: CTRL+b
'
    ActiveSheet.Next.Select
    Range("J1").Select
    ActiveCell.FormulaR1C1 = "Cod"
    Range("J2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-6],Pdc!R2C1:R134C6,6,FALSE)"
    Range("J2").Select
    Selection.Copy
    Range("J3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("J1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
        .WrapText = False
        .Orientation = 0
        .AddIndent = False
        .IndentLevel = 0
        .ShrinkToFit = False
        .ReadingOrder = xlContext
        .MergeCells = False
    End With
    Columns("K:K").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.ClearContents
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

Sub Aggancia_Neg_cod()
'
' Aggancia_Neg_cod Macro
'
' Scelta rapida da tastiera: CTRL+c
'
    ActiveSheet.Next.Select
    Range("K1").Select
    ActiveCell.FormulaR1C1 = "Key1"
    Range("K2").Select
    ActiveCell.FormulaR1C1 = "=MID(RC[-8],8,4)&""-""&RC[-1]"
    Range("K2").Select
    Selection.Copy
    Range("K3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Range("K2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

Sub Aggancia_Neg_Cod_Rep()
'
' Aggancia_Neg_Cod_Rep Macro
'
' Scelta rapida da tastiera: CTRL+d
'
    ActiveSheet.Next.Select
    Range("L1").Select
    ActiveCell.FormulaR1C1 = "Key2"
    Range("L2").Select
    ActiveCell.FormulaR1C1 = "=MID(RC[-8],5,7)&""-""&RC[-1]"
    Range("L3").Select
    Columns("L:L").EntireColumn.AutoFit
    Range("L2").Select
    Selection.Copy
    Range("L3").Select
    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    Columns("L:L").EntireColumn.AutoFit
    Range("L1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub

Sub FINALE()
    ActiveSheet.Next.Select
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    Range("C1").Select
    ActiveSheet.Paste
    Range("M1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("M:N").Select
    Selection.Copy
    Range("A1").Select
    ActiveSheet.Paste
    Columns("M:N").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("A1").Select
    ActiveSheet.Previous.Select
End Sub


F) ho aggiunto la macro "FINALE" che sistema un po' le cose, ho utilizzato il tuo modo di procedere

G) ricordati che va chiuso, mediante codice, il file che apri per importare i dati



Nella speranza di aver toccato nei posti giusti il tuo codice (non è stato proprio semplice ma neanche difficilissimo, c'era solo il rischio di toccare/modificare/cancellare qualche istruzione di troppo) ...
comunque PROVA e sono QUI



Si dovrebbe mettere le mani ... PESANTEMENTE nel codice ma ... non me lo chiedere.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 09/05/14 09:25

ricky53 ha scritto:Ciao,
senza entrare troppo nei meriti del codice che si vede che è stato ottenuto con il registratore di macro ed adattato ... ti propongo quanto segue:

A) cancella tutte le tue macro e rimuovi tutti i moduli

B) Rimuovi tutti i pulsanti

C) Associa la macro "Aggiorna_DATI" ad un nuovo pulsante

D) copia il seguente codice in un nuovo modulo

E) copia anche questo codice in un nuovo modulo (diverso dal precedente)


F) ho aggiunto la macro "FINALE" che sistema un po' le cose, ho utilizzato il tuo modo di procedere

G) ricordati che va chiuso, mediante codice, il file che apri per importare i dati



Nella speranza di aver toccato nei posti giusti il tuo codice (non è stato proprio semplice ma neanche difficilissimo, c'era solo il rischio di toccare/modificare/cancellare qualche istruzione di troppo) ...
comunque PROVA e sono QUI



Si dovrebbe mettere le mani ... PESANTEMENTE nel codice ma ... non me lo chiedere.


Buongiorno Ricky,
ho eseguito le tue istruzioni. Ci sono delle cose da sistemare ma sembra che siamo a buon punto.
Iniziamo dalla fine (in che senso?):
1) riguardo al pungo G (che probabilmente tutti diranno di conoscere :lol: ) se non ho capito male l'istruzione è che se non chiudo il file cdc1 non posso effettuare nuovi aggiornamenti dei dati. Questa operazione la dovrei fare attraverso un comando vb.. giusto?
2) fino alla creazione della colonna Key1 è tutto a posto. La colonna Key2 riporta un risultato che non permette di identificare i reparti dei negozi. Nella fattispecie, per identificarli, la macro che avevo fatto io prevedeva la concatenazione delle seguenti parti dei dati presenti nelle colonne E ed L. Vale a dire: Colonna E a partire dal 5° carattere per 7 caratteri & "-" & valori presenti in colonna L . Il testo che ne vien fuori è così: es. 02_NBOT-R ....
Al momento il codice che hai creato invece ridà questo risultato: 1000002-NBOT-R . Dove la parte numerica (1000002) è ripetuta per tutte le 1691 righe, mentre da quella si dovrebbero distinguere i reparti dei negozi.
Al momento penso di avere messo abbastanza lavoro da fare... quindi non vado oltre e ti ringrazio sempre per l'aiuto che tu e il forum mi state fornendo!!!
fastbike73
Win 10 & Office365
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 256
Iscritto il: 23/04/14 10:54

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Importazione ricorrente di dati da altro file excel":


Chi c’è in linea

Visitano il forum: Nessuno e 88 ospiti