Valutazione 4.87/ 5 (100.00%) 5838 voti

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

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 26/05/14 09:52

Ciao,
che modifiche hai apportato e a quali macro?

Non mi stai chiedendo di leggermi e confrontare tutte le tua macro attuali con le precedenti per scoprire cosa hai cambiato vero???

Anche perchè non è necessario visto che la macro "Import" non è collegata alle altre!


Comunque la mia proposta di ottimizzazione delle tue macro era iniziata con la macro "Import" che puoi sostituire alla tua attuale visto che non è cambiata rispetto a quella precedente.

nella tua per esempio si faceva riferimento ad una selezione presente sul foglio (dando per scontato che la cella selezionata fosse la "A1"): ma se qualcuno si fosse posizionato in una cella diversa? Sai cosa sarebbe successo?

Altro problema: l'utilizzo di
ActiveSheet.Next.Select

Con questa istruzione dai per scontato che il foglio si cui si è posizionati sia sul foglio "Editor", ma se il solito utente buontempone si sposta su un altro foglio e poi manda in esecuzione la macro "Aggiorna_dati2". Sai cosa succederà ???
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Sponsor
 

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 26/05/14 10:19

ricky53 ha scritto:Ciao,
che modifiche hai apportato e a quali macro?

Non mi stai chiedendo di leggermi e confrontare tutte le tua macro attuali con le precedenti per scoprire cosa hai cambiato vero???

Anche perchè non è necessario visto che la macro "Import" non è collegata alle altre!


Comunque la mia proposta di ottimizzazione delle tue macro era iniziata con la macro "Import" che puoi sostituire alla tua attuale visto che non è cambiata rispetto a quella precedente.

nella tua per esempio si faceva riferimento ad una selezione presente sul foglio (dando per scontato che la cella selezionata fosse la "A1"): ma se qualcuno si fosse posizionato in una cella diversa? Sai cosa sarebbe successo?

Altro problema: l'utilizzo di
ActiveSheet.Next.Select

Con questa istruzione dai per scontato che il foglio si cui si è posizionati sia sul foglio "Editor", ma se il solito utente buontempone si sposta su un altro foglio e poi manda in esecuzione la macro "Aggiorna_dati2". Sai cosa succederà ???


Ciao Ricky, non ti chiedo di rileggerti tutte le macro anche perchè già da solo mi sono accorto che una modifica fatta mi ha cagionato un problema abbastanza grosso e quindi sto ritornando sui miei passi per poterlo sistemare.
Relativamente a quanto da te affermato è tutto vero!! Già mi sono accorto che se non ci sono dei determinati presupposti le macro producono degli errori. Due li hai già detti tu, io aggiungo il fatto che se il foglio cdc viene aperto prima del suo utilizzo e salvato con il cursone in un altra cella differente dalla A1 anche lì si producono errori... io però non sono in grado al momento di trovare altra soluzione. Anche perchè ti ricordo che quelle erano tutte macro da registratore.... Vediamo se nel pomeriggio riesco a sistemare l'errore che ho prodotto con la modifica e poi mi cimento anche in queste... :-?
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 26/05/14 11:29

Ciao,
inizia a sostituire la macro "Import" che ti risolve il problema del posizionamento in "A1" della cella del File "Cdc.xls".

Inizia con l'applicare le due indicazioni che ti ho scritto io: ".Select" e ".Next.Select".


L'errore ti posso aiutare a rimuoverlo, manda la macro che hai modificato e ... ci provo e magari visto che ci sono gli faccio anche un "restyling" .... Eh, Eh !!!
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 26/05/14 14:07

ricky53 ha scritto:Ciao,
inizia a sostituire la macro "Import" che ti risolve il problema del posizionamento in "A1" della cella del File "Cdc.xls".

Inizia con l'applicare le due indicazioni che ti ho scritto io: ".Select" e ".Next.Select".


L'errore ti posso aiutare a rimuoverlo, manda la macro che hai modificato e ... ci provo e magari visto che ci sono gli faccio anche un "restyling" .... Eh, Eh !!!

Ricky, ho aggiornato la macro Import. Adesso ti volevo dire di aspettare qualche minuto che provvedo a caricare il file con la correzione dell'errore di stamattina e l'esito della macro. E da lì partiamo per le ulteriori correzione e specificazioni delle pagine di lavoro....
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 26/05/14 14:43

ricky53 ha scritto:Ciao,
inizia a sostituire la macro "Import" che ti risolve il problema del posizionamento in "A1" della cella del File "Cdc.xls".

Inizia con l'applicare le due indicazioni che ti ho scritto io: ".Select" e ".Next.Select".


L'errore ti posso aiutare a rimuoverlo, manda la macro che hai modificato e ... ci provo e magari visto che ci sono gli faccio anche un "restyling" .... Eh, Eh !!!


Come promesso ecco il file con le ultime modifiche.
https://www.dropbox.com/s/tjmwerofnposjzh/Riclassificati.zip
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 26/05/14 14:58

Ciao,
quale problematica hai?
Una per volta e ne usciamo.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 26/05/14 15:16

ricky53 ha scritto:Ciao,
quale problematica hai?
Una per volta e ne usciamo.

Ricky, se guardi il file ultimo al momento l'unico problema è applicare la logica di cui tu parlavi
alle restanti macro per evitare che posizionandosi su celle differenti o su fogli differenti si possa
far andare in errore la macro stessa.
Dopo di chè il foglio al momento sarebbe perfetto e tutto grazie a te!!
Io non scrivo il codice Ricky mi limito semplicemente a vedere passo passo quello che succede
mandando il tuo in esecuzione tramite debug. in questo modo mi sono accorto degli errori che io facevo
con alcuni conti e con i vari "agganci" tra centro di costo e voci di riclassificato.
Infine anche a me piacerebbe migliorare ancora un po' il file almeno dal punto di vista grafico. Mi piacerebbe poter
inserire una userform per la scelta dei negozi/reparti da interrogare ma non ne sono ancora in grado... devo vedere
qualche post in cui se ne parla ed eventualmente scopiazzare un po' di codice qua e là...
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 26/05/14 15:42

Ciao,
per rimparare a scrivere del codice c'è sempre tempo e potresti partire proprio dalla macro "Import" analizzando come era prima e cosa faceva e come è stata modificata da me e cosa fa.

La logica operativa è la stessa aprire un file e copiare dei dati ma ci sono delle modalità di comportamento che garantisco la corretta esecuzione dei comandi.
Tu dovresti, per le altre macro, applicare queste modalità.

Inizia con la macro "Aggancia_Cdc" e, andiamo avanti per piccoli passi:
A) togli il ".Next.Select" sostituendolo con la selezione del foglio "Db"

B) togli il ".Previous.Select" e sostituiscilo con la selezione del foglio "Editor"

C) Togli l'istruzione "Columns("C:C").ColumnWidth = 7.43" perchè inutile in quanto l'istruzione successiva adatta la colonna "C"


Si possono fare altre modifiche ma andiamo per gradi.
Prova quanto ti ho scritto.



Dopo dovrai:
sostituire le istruzioni del tipo "Range(Selection, Selection.End(xlDown)).Select" con quelle che impostano direttamente l'intervallo, per esempio "Range("C2:C" & UR).Select" dove UR è l'ultima riga della colonna "C2 che contiene dei dati
ed è stata calcolata in questo modo "UR2 = Range("C" & Rows.Count).End(xlUp).Row"

Altro passo:
evitare la selezione dei fogli ed utilizzare i riferimenti ai fogli mediante delle variabili (vedi come o fatto io nella macro "CERCA_e_SCRIVE_Nuovi_Conti")


Prova e mi trovi QUI
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 28/05/14 08:05

ricky53 ha scritto:Ciao,
per rimparare a scrivere del codice c'è sempre tempo e potresti partire proprio dalla macro "Import" analizzando come era prima e cosa faceva e come è stata modificata da me e cosa fa.

La logica operativa è la stessa aprire un file e copiare dei dati ma ci sono delle modalità di comportamento che garantisco la corretta esecuzione dei comandi.
Tu dovresti, per le altre macro, applicare queste modalità.

Inizia con la macro "Aggancia_Cdc" e, andiamo avanti per piccoli passi:
A) togli il ".Next.Select" sostituendolo con la selezione del foglio "Db"

B) togli il ".Previous.Select" e sostituiscilo con la selezione del foglio "Editor"

C) Togli l'istruzione "Columns("C:C").ColumnWidth = 7.43" perchè inutile in quanto l'istruzione successiva adatta la colonna "C"


Si possono fare altre modifiche ma andiamo per gradi.
Prova quanto ti ho scritto.



Dopo dovrai:
sostituire le istruzioni del tipo "Range(Selection, Selection.End(xlDown)).Select" con quelle che impostano direttamente l'intervallo, per esempio "Range("C2:C" & UR).Select" dove UR è l'ultima riga della colonna "C2 che contiene dei dati
ed è stata calcolata in questo modo "UR2 = Range("C" & Rows.Count).End(xlUp).Row"

Altro passo:
evitare la selezione dei fogli ed utilizzare i riferimenti ai fogli mediante delle variabili (vedi come o fatto io nella macro "CERCA_e_SCRIVE_Nuovi_Conti")


Prova e mi trovi QUI

Ciao Ricky, a pausa pranzo ti mando il riepilogo degli errori che mi escono quando cambio le informazioni così come me le hai indicate. Sicuramente sbaglio qualcosa io!!!! Abbi pazienza, tra lavoro in ufficio, famiglia e volontariato mi resta poco tempo per fare prove... a dopo.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 28/05/14 10:01

Ciao,
bene a più tardi.

Consiglio:
non utilizzare "quote" tutte le volte che rispondi perchè in questo modo allunghi il tuo messaggio e rendi più difficile la lettura di quello che ti hai scritto.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 28/05/14 11:14

Che dire Ricky lo avevi spiegato talmente bene e reso così semplice, che la mia mente contorta non lo apprezzava. Effettuate le modifiche che mi hai suggerito sulla macro "Aggancia_cdc" . L'ultima indicazione che mi davi nel post precedente era di eliminare la selezione dei fogli utilizzando i riferimenti mediante variabili, quindi quello che fin qui ho fatto non servirebbe più...
Nello specifico tu dici di premettere queste righe di codice prima di ogni macro:

Codice: Seleziona tutto
Dim SH1 As Worksheet, SH2 As Worksheet, mRng As Range, I As Long, J As Long, mConto As String, NuovoConto As Range
        Dim UR1 As Long, Ur2 As Long, Trovato As String, doppio As String, Messaggio As String, Uguali As String

per poi "settare" i nomi dei fogli..

Codice: Seleziona tutto
Set SH1 = Sheets("Cdc")


Spero di avere capito bene....
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 28/05/14 13:47

Ciao,
vedo che sei andato avanti con la fase successiva. Bene.

SI, le variabili da definire sono SOLO quelle che userai e puoi dargli i nomi che vorrai però non devono essere uguali a nomi di funzioni e nomi di sistema, per esempio non si può utilizzare "File" ma puoi utilizzare "mFile", io utilizzo questa modalità con la "m" davanti ai nomi delle variabili per identificarle come variabili personali o di memoria.
ricordati di utilizzare sempre "Option Explicit" è una salvaguardia nell'utilizzo delle variabili per evitare di scrivere nomi diversi nelle varie istruzioni della tua macro condizionando il buon esito del codice. Per esempio una volta potresti scrivere "mValore" ed un'altra "mValori" e potresti non accorgerti che sono state scritte in modo diverso e, quindi, per excel sono due variabili diverse !!!

Ricordati di impostare, nella prima macro, la selezione al foglio "Editor" e poi ... vai giù di modifiche al codice e buon lavoro.


Sei ti occorre aiuto sai dove trovarmi.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 29/05/14 09:16

Buongiorno Ricky. Ho fatto una parte della manutenzione del codice così come mi hai suggerito. Adesso però dovrei andra avanti con lo sviluppo soprattutto per quanto riguarda la fase di interrogazione dei Riclassificati. Al momento, se guardi i file inviati, l'interrogazione avviene tramite una scelta da effettuare nel foglio "cover" (tu ancora non hai la versione modificata di questo foglio, spero di inviartela entro pausa pranzo). Questa soluzione può anche andare bene solo che vorrei renderla stilisticamente più accattivante. Magari con l'utilizzo di Userform. Inoltre, cercando su internet ho visto qualche esempio di soluzione Master Detail... tu mi sai dire se è possibile utilizzarla nel mio caso.
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 29/05/14 12:26

Ciao,
attendo la nuova versione del file.

RICORDA: prima devi avere BEN chiaro cosa ti occorre e poi potrai passare alla fase successiva, ossia, trovare il modo di farlo.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 29/05/14 13:59

Ecco la nuova versione... Guardala e poi ti spiego quello che vorrei fare.

https://www.dropbox.com/s/tjmwerofnposjzh/Riclassificati.zip
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 29/05/14 14:33

Cio,
ho scaricato il file ed ho notato che nelle formule del foglio "P&L_Cedi" utilizzi la cella A30 del foglio "Cover".

Tu vorresti avere una "UserForm" mediante la quale selezionare, con una o più "Caselle" (ComboBox), i valori utili al foglio "P&L_Cedi" e agli altri ("P&L_Negozi" e "..._Reparto") ?

Ritengo sia più semplice utilizzare delle "Convalide" come hai fatto tu ma inserite nel foglio "P&L_Cedi" nella cella "E3", nel foglio "P&L_Negozio" sempre cella "E3" e ...

Per fare queste modifiche basta un "Taglia/Incolla" della cella "A30" di cover su "E3" di "P&L_Cedi", ... ecc. per gli altri Fogli/Celle
A questo punto la cella "B3", dei fogli P&L_Cedi, P&L_Negozi, ..., è diventata inutile e puoi eliminarla.


Se non è questo ciò che ti occorre allora ... descrivi la tua necessità e si arriverà ad una soluzione.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 29/05/14 15:32

Ciao Ricky, ti ringrazio per aver subito risposto. Praticamente nel modo che dici tu evito di dover far passare l'utilizzatore da un foglio all'altro (e questo è già una cosa importante, meno rischi di perdere informazioni e dati), pensavo però di renderlo stilisticamente un po' più appetibile. In ogni caso, dovrei sviluppare anche un altro aspetto. Mi è stato chiesto di aggiungere un foglio dove, con un criterio tipo drill down si potessero vedere i conti che compongono ogni singolo elemento di costo del centro di profitto interrogato. (sembra uno sciogli lingua....) Faccio un esempio per rendere l'idea:
Data la seguente selezione, elencare tutti i conti corrispondenti e i relativi valori correnti e precedenti;
CCOSA5 = CEDI1
ECOSA5 = 000090
DSECA5 = PREMI,SCONTI SU ACQUISTI
1) CDIMA5 = ..... DSCIA5 = ......
2) CDIMA5 = ..... DSCIA5 = ......
3) CDIMA5 = ..... DSCIA5 = ......

ecc. ecc.
Spero di aver reso l'idea... Io al momento penso ad una tabella Pivot, solo che ho fatto la prova e non
appena vado per effettuare l'aggioramento dei dati, nella tabella pivot si perdono le informazioni. Occorrerebbe crearne una
dinamica che non perde le impostazioni dei campi e che legge in automatico i dati aggiornati (sempre in base alla selezione effettuata). Altrimenti cosa potremmo mettere?? Si può utilizzare qui una Userform??
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 29/05/14 15:43

ricky53 ha scritto:
Per fare queste modifiche basta un "Taglia/Incolla" della cella "A30" di cover su "E3" di "P&L_Cedi", ... ecc. per gli altri Fogli/Celle
A questo punto la cella "B3", dei fogli P&L_Cedi, P&L_Negozi, ..., è diventata inutile e puoi eliminarla..


Ho fatto come mi hai detto, ho tagliato e copiato la cella D5 di Cover in B3 di P&L e ha funzionato correttamente. Quindi ho fatto allo stesso modo con la cella D8 di Cover che ho copiato in E3 di P&L ma non ha funzionato. Si crea la casella di elenco ma non c'è nessuna selezione da poter fare in quanto non trova l'elenco.... Ho sbagliato qualcosa forse???
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi fastbike73 » 29/05/14 16:03

:oops:

Ricky, non dire niente. Ci sono arrivato da solo. I nomi definiti per la convalida dei dati della cella E3 (reparto) avevano come ambito solo il foglio "Cover". Li ho cancellati per modificare l'ambito in "Cartella di lavoro". Adesso funziona tutto. Scusami ma certe volte sono distratto....

:D
fastbike73
Win 7 & Office 2013
Filemaker Pro v. 13
fastbike73
Utente Senior
 
Post: 220
Iscritto il: 23/04/14 10:54

Re: Importazione ricorrente di dati da altro file excel

Postdi ricky53 » 29/05/14 16:14

Ciao,
bene per aver risolto.

LA tabella pivot va bene ... ma va disegnata in modo opportuno e poi ... ovviamente si deve aggiornare automaticamente.
Il tutto è fattibile.
Tu invia un file con la tabella come la vorresti avere e poi ... si interviene se qualcosa non va.
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. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

PrecedenteProssimo

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 16 ospiti