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 » 15/05/14 10:45

Ciao,
si è fattibile ma ... stavo pensando anche ad una maggiore automazione dei dati ma ... occorre riorganizzare tutto il tuo codice e ... sinceramente non posso (poco tempo a disposizione in questo periodo) e non voglio farlo (sono per la collaborazione con tutti gli utenti e non per i pacchetti chiavi in mano).

Vorrei cercare di fare il massimo possibile però è necessario avere un FILE che contenga "nuovi conti" per provare il codice così come siamo arrivati a produrlo (anche qui è preferibile che tu invii l'ultima versione del file "ricla1.xls" contenente il codice che hai testato)

Puoi fare uno schema dei controlli che devono essere fatti (facendo riferimento al nome del file del foglio ed alle colonne) per individuare un nuovo conto. Poi una volta individuato il nuovo conto dovresti dire quali colonne del file Cdc2 vanno copiate nel foglio Pdc e ... scrivi tutto quello che ritieni utile e necessario per far capire come procedere me e gli altri utenti che ti vogliono aiutare

Iniziamo in questo modo ... poi vediamo il resto
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 » 15/05/14 11:17

ricky53 ha scritto:Ciao,
si è fattibile ma ... stavo pensando anche ad una maggiore automazione dei dati ma ... occorre riorganizzare tutto il tuo codice e ... sinceramente non posso (poco tempo a disposizione in questo periodo) e non voglio farlo (sono per la collaborazione con tutti gli utenti e non per i pacchetti chiavi in mano).

Vorrei cercare di fare il massimo possibile però è necessario avere un FILE che contenga "nuovi conti" per provare il codice così come siamo arrivati a produrlo (anche qui è preferibile che tu invii l'ultima versione del file "ricla1.xls" contenente il codice che hai testato)

Puoi fare uno schema dei controlli che devono essere fatti (facendo riferimento al nome del file del foglio ed alle colonne) per individuare un nuovo conto. Poi una volta individuato il nuovo conto dovresti dire quali colonne del file Cdc2 vanno copiate nel foglio Pdc e ... scrivi tutto quello che ritieni utile e necessario per far capire come procedere me e gli altri utenti che ti vogliono aiutare

Iniziamo in questo modo ... poi vediamo il resto


Sono pienamente d'accordo con te. Ti ringrazio per l'ulteriore disponibilità. Nel pomeriggio posto tutto ciò che hai chiesto.
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 » 15/05/14 14:11

ricky53 ha scritto:Ciao,
...
Vorrei cercare di fare il massimo possibile però è necessario avere un FILE che contenga "nuovi conti" per provare il codice così come siamo arrivati a produrlo (anche qui è preferibile che tu invii l'ultima versione del file "ricla1.xls" contenente il codice che hai testato)


Allego i due file che mi chiedi. Nel file cdc2 sono presenti sia un conto di contabilità che un elemento di costo nuovo.

https://www.dropbox.com/s/43u4vsfwp7zot7r/ricla1.xlsm

https://www.dropbox.com/sh/4f1qu6os37w4e35/AAB9qshfwYSKYLqpI01w3bCOa

ricky53 ha scritto:Puoi fare uno schema dei controlli che devono essere fatti (facendo riferimento al nome del file del foglio ed alle colonne) per individuare un nuovo conto. Poi una volta individuato il nuovo conto dovresti dire quali colonne del file Cdc2 vanno copiate nel foglio Pdc e ... scrivi tutto quello che ritieni utile...


I controlli che devono essere fatti prima dell'aggiornamento dei dati sono i seguenti:
1) verificare che i conti di contabilità presenti nella cartella CDC2 colonna D (CDIMA5) e E (DSCIA5) siano presenti anche nel foglio PDC della cartella RICLA1 colonna A (conto) e colonna B (Descrizione conto);
2) verificare che gli elementi di costo presenti nella cartella CDC" colonna F (ECOSA5) e G (DSECA5) siano presenti anche nel foglio PDC della cartella RICLA1 colonna C (ECOS) e D (Descrizione elemento di costo);
3) se la condizione è "vera" (cioè i conti e gli elementi di costo sono gli stessi del foglio PDC) allora procedi con l'aggiornamento dei dati;
4) se la condizione è "falsa" (cioè ci sono conti o elementi di costo in più rispetto al foglio PDC della cartella Ricla1) allora evidenziali e chiedi se devono essere copiati (Colonne D,E,F,G della cartella CDC2) nella cartella Ricla1 foglio PDC (colonne Conto, Descrizione conto, ECOS, Descrizione elemento di costo). In caso di risposta affermativa, copia le voci sul foglio PDC (a seguire) e successivamente procedi con l'aggiornamento. In caso di rispota negativa, procedi con l'aggiornamento dei dati.

Al momento sono questi i controlli che vanno effettuati.
Rimango a disposizione del forum e di tutti coloro che mi vogliano aiutare per ulteriori chiarimenti ringranziandovi fin d'ora per la disponibilità (soprattutto di Ricky, grazie).
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 » 15/05/14 15:50

Ciao,
questa sera potrò leggere quanto scritto e ... proverò a dedicarmici un po'.

Adesso scappo perchè ho una riunione.
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 » 15/05/14 18:37

ricky53 ha scritto:Ciao,
questa sera potrò leggere quanto scritto e ... proverò a dedicarmici un po'.

Adesso scappo perchè ho una riunione.


Ti ringrazio.
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 » 15/05/14 22:46

Ciao,
perchè prendi in considerazione anche le descrizioni?

Per l'univocità del "Conto" basta CDIMA5 di Cdc2 e Conto di Ricla1
stessa cosa per gli elementi di costo ECOSA5 di Cdc2 e ECOS di ricla1
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 ricky53 » 16/05/14 13:42

Ciao,
leggi comunque il mio precedente intervento.


Adesso copia il seguente codice
Codice: Seleziona tutto
Option Explicit

Sub CERCA_e_SCRIVE_Nuovi_Conti()
    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, Messaggio As String
   
    Application.ScreenUpdating = False
    Windows("Cdc2_A.xls").Activate ' <<===== QUI scrivi il nome del tuo file dal quale copiare i dati
    Set SH1 = Sheets("Cdc4") ' <<===== QUI scrivi il nome del tuo foglio
    UR1 = SH1.Range("A" & Rows.Count).End(xlUp).Row
   
    Windows("Ricla1_B.xls").Activate ' <<===== QUI scrivi il nome del tuo file BASE di LAVORO
    Set SH2 = Sheets("Pdc") ' <<===== QUI scrivi il nome del tuo foglio
    UR2 = SH2.Range("A" & Rows.Count).End(xlUp).Row
   
    If SH2.Range("G1") = "" Then
        SH2.Range("G1") = "ECOS-Conto"
        For I = 2 To UR2
            SH2.Range("G" & I) = SH2.Range("C" & I) & "-" & SH2.Range("A" & I)
        Next I
    End If
    Set mRng = SH2.Range("G2:G" & UR2)
   
    Trovato = 0
    J = 2
    For I = 2 To UR1
        mConto = SH1.Cells(I, "F") & "-" & SH1.Cells(I, "D")
        Set NuovoConto = mRng.Find(What:=SH1.Cells(I, "F") & "-" & SH1.Cells(I, "D"), LookIn:=xlValues, LookAt:= _
            xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False)
        If NuovoConto Is Nothing And mConto <> "-" Then
' QUI puoi inserire la richiesta se copiare o meno il nuovo conto !!!
            Trovato = Trovato + 1
            UR2 = UR2 + 1
            SH1.Range("D" & I & ":G" & I).Copy Destination:=SH2.Range("A" & UR2)
            SH2.Range("G" & UR2) = SH2.Range("C" & UR2) & "-" & SH2.Range("A" & UR2)
            Set mRng = Range("G2:G" & UR2)
        End If
    Next I
    SH2.Range("G:G").ClearContents
    Application.ScreenUpdating = True

    Messaggio = "Elaborazione effettuata." & vbCrLf & vbCrLf
    If Trovato > 0 Then
        If Trovato > 1 Then
            Messaggio = Messaggio & "Inseriti:  " & Trovato & "  nuovi conti"
        Else
            Messaggio = Messaggio & "Inserito:  " & Trovato & "  nuovo conto"
        End If
    Else
        Messaggio = Messaggio & "Non è stato trovato alcun nuovo conto !!!"
    End If
    MsgBox Messaggio, vbInformation
   
    Set SH1 = Nothing
    Set SH2 = Nothing
    Set mRng = Nothing
    Set NuovoConto = Nothing
   
End Sub


Fa quello che hai chiesto, tranne la gestione se copiare o meno il nuovo conto.
Puoi inserirla tua questa richiesta nel punto ove ho inserito un commento.

ATTENZIONE: rimangono NON impostate le colonne "E" ed "F" del foglio "Pdc" vedi tu come si possono impostare !!!
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 » 16/05/14 17:09

ricky53 ha scritto:Ciao,
leggi comunque il mio precedente intervento.


Adesso copia il seguente codice
Codice: Seleziona tutto
Option Explicit

Sub CERCA_e_SCRIVE_Nuovi_Conti()
    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, Messaggio As String
   
    Application.ScreenUpdating = False
    Windows("Cdc2_A.xls").Activate ' <<===== QUI scrivi il nome del tuo file dal quale copiare i dati
    Set SH1 = Sheets("Cdc4") ' <<===== QUI scrivi il nome del tuo foglio
    UR1 = SH1.Range("A" & Rows.Count).End(xlUp).Row
   
    Windows("Ricla1_B.xls").Activate ' <<===== QUI scrivi il nome del tuo file BASE di LAVORO
    Set SH2 = Sheets("Pdc") ' <<===== QUI scrivi il nome del tuo foglio
    UR2 = SH2.Range("A" & Rows.Count).End(xlUp).Row
   
    If SH2.Range("G1") = "" Then
        SH2.Range("G1") = "ECOS-Conto"
        For I = 2 To UR2
            SH2.Range("G" & I) = SH2.Range("C" & I) & "-" & SH2.Range("A" & I)
        Next I
    End If
    Set mRng = SH2.Range("G2:G" & UR2)
   
    Trovato = 0
    J = 2
    For I = 2 To UR1
        mConto = SH1.Cells(I, "F") & "-" & SH1.Cells(I, "D")
        Set NuovoConto = mRng.Find(What:=SH1.Cells(I, "F") & "-" & SH1.Cells(I, "D"), LookIn:=xlValues, LookAt:= _
            xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False)
        If NuovoConto Is Nothing And mConto <> "-" Then
' QUI puoi inserire la richiesta se copiare o meno il nuovo conto !!!
            Trovato = Trovato + 1
            UR2 = UR2 + 1
            SH1.Range("D" & I & ":G" & I).Copy Destination:=SH2.Range("A" & UR2)
            SH2.Range("G" & UR2) = SH2.Range("C" & UR2) & "-" & SH2.Range("A" & UR2)
            Set mRng = Range("G2:G" & UR2)
        End If
    Next I
    SH2.Range("G:G").ClearContents
    Application.ScreenUpdating = True

    Messaggio = "Elaborazione effettuata." & vbCrLf & vbCrLf
    If Trovato > 0 Then
        If Trovato > 1 Then
            Messaggio = Messaggio & "Inseriti:  " & Trovato & "  nuovi conti"
        Else
            Messaggio = Messaggio & "Inserito:  " & Trovato & "  nuovo conto"
        End If
    Else
        Messaggio = Messaggio & "Non è stato trovato alcun nuovo conto !!!"
    End If
    MsgBox Messaggio, vbInformation
   
    Set SH1 = Nothing
    Set SH2 = Nothing
    Set mRng = Nothing
    Set NuovoConto = Nothing
   
End Sub


Fa quello che hai chiesto, tranne la gestione se copiare o meno il nuovo conto.
Puoi inserirla tua questa richiesta nel punto ove ho inserito un commento.

ATTENZIONE: rimangono NON impostate le colonne "E" ed "F" del foglio "Pdc" vedi tu come si possono impostare !!!


Incomincio con il ringraziarti per il tempo dedicato e per la pazienza che hai avuto.
Ti chiedo solo un'unica cosa, questo codice lo devo aggiungere al modulo 'aggiorna dati' oppure è un nuovo modulo a cui devo assegnare un pulsante?
Per quanto riguarda l'assegnazione del codice riclassificato e della voce riclassificato abbiamo deciso di non automatizzare in quanto i modelli di riclassificato possono essere suscettibili di variazioni e quindi possono cambiare anche codice e voce.

Infine... che dire, ancora grazie.
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 » 16/05/14 19:31

Ciao,
oltre al voler aiutare mi interessava l'argomento (quando non conosco una cosa mi ci tuffo ...)

Prima fai una copia del file "ricla1.xlsm", aggiorna i nomi dei file nelle righe che ho commentato e poi esegui il codice.
Controlla il risultato prodotto e ... vediamo come procedere.

In relazione a
Per quanto riguarda l'assegnazione del codice riclassificato e della voce riclassificato abbiamo deciso di non automatizzare in quanto i modelli di riclassificato possono essere suscettibili di variazioni e quindi possono cambiare anche codice e voce.

Cosa comporta questa decisione?
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 » 16/05/14 20:49

ricky53 ha scritto:Ciao,
oltre al voler aiutare mi interessava l'argomento (quando non conosco una cosa mi ci tuffo ...)

Prima fai una copia del file "ricla1.xlsm", aggiorna i nomi dei file nelle righe che ho commentato e poi esegui il codice.
Controlla il risultato prodotto e ... vediamo come procedere.

In relazione a
Per quanto riguarda l'assegnazione del codice riclassificato e della voce riclassificato abbiamo deciso di non automatizzare in quanto i modelli di riclassificato possono essere suscettibili di variazioni e quindi possono cambiare anche codice e voce.

Cosa comporta questa decisione?


Perdonami se ti rispondo soltanto adesso, ma mi sono ritirato qualche minuto fa dall'ufficio e non ho potuto leggere prima.
Se non ho capito male, devo aggiungere il codice a quello preesistente.... tra qualche minuto faccio la prova...

Cosa comporta questa decisione?


Beh, questa decisione in termini operativi comporta una notevole perdita di tempo. Perché ogni qualvolta si vorrà modificare l'oggetto dell'analisi (negozi, piuttosto che reparti o centri distribuzione) si dovrà procedere ad una rimodulazione di Riclassificato e quindi ad una ricodifica delle relative voci ecc. Quello che proponevo io era invece un modulo flessibile che si "confezionasse" automaticamente in base ai conti/elementi di costo/voci di riclassificato interrogati. Comunque il tempo dirà se avevo ragione...

Adesso vado a cenare e appena finisco mi metto all'opera...
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 » 16/05/14 23:39

Ciao,
aggiornaci sui risultati delle prove.

In linea di principio quanto hai scritto è corretto ed andrebbe applicato ma come sempre è difficile far capire agli altri la necessità di automatizzare i processi. Comunque non avendo molto chiaro il processo posso solo dire che semplice non dovrebbe essere e sarà necessario scrivere tanto bel codice.
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 » 17/05/14 08:18

ricky53 ha scritto:Ciao,
aggiornaci sui risultati delle prove.

In linea di principio quanto hai scritto è corretto ed andrebbe applicato ma come sempre è difficile far capire agli altri la necessità di automatizzare i processi. Comunque non avendo molto chiaro il processo posso solo dire che semplice non dovrebbe essere e sarà necessario scrivere tanto bel codice.


Buongiorno Ricky,
aggiornamento sulla prova effettuata... c'è qualcosa che non funziona... appena mando la macro con il pulsante 'aggiorna dati' excel se ne va' nel pallone e smette di funzionare. Nel pomeriggio posto tutto il codice che al momento mi risulta nel file, può essere che abbia commesso qualche errore nella copiatura o nell'indicazione dei file o fogli di riferimento...
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 » 17/05/14 10:08

Dunque dunque, finalmente penso di aver risolto Ricky. C'erano delle cose che andavano sistemate....
Adesso il lavoro si svolge in questo modo... prima mando attraverso il pulsante 'Aggiorna conti' l'aggiornamento dei conti...
Successivamente, dopo aver effettuato la parte manuale del lavoro, procedo con la seconda macro 'Aggiorna dati'.
Al momento funziona in questo modo.... è un po' lentuccio nella ricerca e scrittura dei conti... considera che tra negozi, reparti, centri distribuzione e centri lavorazione... alla fine in contabilità abbiamo quasi 5000 conti.... ci sarà da divertirsi...
Ancora grazie e a presto....
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 » 17/05/14 22:24

Ciao,
si lo immaginavo che sarebbe stato lento .. quanto tempo impiega?
Quante volte pensi che vada fatta l'operazione di aggiornamento dei conti?

Se è eccessivamente lento provo a vedere se si può velocizzare qualche operazione ma mi occorrono dei file reali (come numero di righe e di conti) ovviamente dovrai cambiare i dati riservati con dati inventati
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 » 19/05/14 07:53

ricky53 ha scritto:Ciao,
si lo immaginavo che sarebbe stato lento .. quanto tempo impiega?
Quante volte pensi che vada fatta l'operazione di aggiornamento dei conti?

Se è eccessivamente lento provo a vedere se si può velocizzare qualche operazione ma mi occorrono dei file reali (come numero di righe e di conti) ovviamente dovrai cambiare i dati riservati con dati inventati


Buongiorno Ricky, diciamo che il problema principale non è la lentezza al momento, quanto il fatto che invece di leggere e aggiornare con i conti che non sono presenti, scrive tutti i conti apprescindere dalla presenza o meno. Quindi dopo 2 aggiornamenti mi sono ritrovato con quasi 10000 righe e conti quintuplicati (in base alle volte che vengono utilizzati, es. il conto corrispettivi ripetuto per oltre 100 righe)... comunque, spero di porre rimedio nella giornata... almeno credo di aver capito come integrare il codice scritto da te, ci provo se non riesco ti chiedo aiuto.
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 » 19/05/14 16:22

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 » 19/05/14 16:27

Ciao,
a mio avviso dipende da formato dei conti presenti nei due file ... in uno è un numero (senza zeri davanti) ma viene visualizzato con gli zeri davanti come se fosse un testo nell'altro un testo ... e la macro li trova diversi.

Dovresti fare in modo che i dati dei due file siano nello stesso formato (consiglio formato testo che lascerà gli zeri davanti) quindi devi fare delle operazioni, che successivamente potrai automatizzare, prima di avvia la macro che ti ho inviato.

Comunque tutto questo (compreso quanto hai scritto nel file) è collegato alle macro che utilizzi che non sono, come già detto, ... il massimo del codice.

Provando sui tuoi file trasformando in testo le colonne interessate ottengo l'inserimento di soli "5" nuovi conti !!!
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 » 20/05/14 08:12

ricky53 ha scritto:Ciao,
a mio avviso dipende da formato dei conti presenti nei due file ... in uno è un numero (senza zeri davanti) ma viene visualizzato con gli zeri davanti come se fosse un testo nell'altro un testo ... e la macro li trova diversi.

Dovresti fare in modo che i dati dei due file siano nello stesso formato (consiglio formato testo che lascerà gli zeri davanti) quindi devi fare delle operazioni, che successivamente potrai automatizzare, prima di avvia la macro che ti ho inviato.

Comunque tutto questo (compreso quanto hai scritto nel file) è collegato alle macro che utilizzi che non sono, come già detto, ... il massimo del codice.

Provando sui tuoi file trasformando in testo le colonne interessate ottengo l'inserimento di soli "5" nuovi conti !!!


Buongiorno Ricky, si anche io ho fatto la prova che hai fatto tu perchè mi era venuto in mente che poteva essere un problema di formato. Per quanto attiene la macro di aggiornamento conti è chiaro che ti riporti solo 5 conti nuovi in quanto nel file RICLASSIFICATI avevo già provveduto io ad aggiornare il foglio PDC e a creare gli abbinamenti con le voci di riclassificato.
Il problema lo riscontro però anche sulla macro successiva in quanto, dopo averla fatta girare, il foglio db si presenta in questo modo e con questo errore:

Immagine
upload
Immagine
image share

Non si può fare niente per questo codice?? Non mi rivolgo soltanto a Ricky che fino ad ora è stato gentilissimo ed esemplare per la dedizione che ha mostrato al 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 » 20/05/14 10:33

Ciao,
devi selezionare "debug" e vedrai l'istruzione che va in errore .. .a naso stai facendo riferimento ad una istruzione che punta ad un file/foglio che non è disponibile.
Hai detto di aver inserito la chiusura del file "Cdc.xls" ... non l'avrai inserita due volte?

In colonna "E" ottieni quei dati perchè hai impostato il formato "TESTO", ma in questa colonna, scrivendo da codice una formula, deve rimanere il formato "Numero"
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 ricky53 » 20/05/14 11:31

Ciao,
allora:
1. hai inserito due volte la chiusura del file "Cdc.xls" ====>> togli la chiamata a "Call Chiudi_Cdc" perchè il file era stato già chiuso in "Import" verso la fine della macro, esattamente in
Codice: Seleziona tutto
    Application.DisplayAlerts = False
    Windows("Cdc.xls").Close SaveChanges:=False
    Application.DisplayAlerts = True
End Sub



2. per il problema dei "codici conto" che non sono testo utilizza la seguente macro che è la mia precedente modificata per tenere conto di questa situazione numeri/testo dei conti
Codice: Seleziona tutto
Option Explicit

Sub CERCA_e_SCRIVE_Nuovi_Conti()
    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, Messaggio As String
   
    Workbooks.Open Filename:=Trim(Percorso) & "\Cdc.xls"
    Application.ScreenUpdating = False
    Windows("Cdc.xls").Activate ' <<===== QUI scrivi il nome del tuo file dal quale copiare i dati
    Set SH1 = Sheets("Cdc") ' <<===== QUI scrivi il nome del tuo foglio
    UR1 = SH1.Range("A" & Rows.Count).End(xlUp).Row
   
    Windows("RICLASSIFICATI.xls").Activate ' <<===== QUI scrivi il nome del tuo file BASE di LAVORO
    Set SH2 = Sheets("Pdc") ' <<===== QUI scrivi il nome del tuo foglio
    UR2 = SH2.Range("A" & Rows.Count).End(xlUp).Row
   
    If SH2.Range("G1") = "" Then
        SH2.Range("G1") = "ECOS-Conto"
        For I = 2 To UR2
            SH2.Range("G" & I) = Format(SH2.Range("C" & I), "000000") & "-" & Format(SH2.Range("A" & I), "000000000000") ' <<===== MODIFICATA
        Next I
    End If
    Set mRng = SH2.Range("G2:G" & UR2)
   
    Trovato = 0
    J = 2
    For I = 2 To UR1
        mConto = Format(SH1.Cells(I, "F"), "000000") & "-" & Format(SH1.Cells(I, "D"), "000000000000") ' <<===== MODIFICATA
        Set NuovoConto = mRng.Find(What:=mConto, LookIn:=xlValues, LookAt:= _
            xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False) ' <<===== MODIFICATA
        If NuovoConto Is Nothing And mConto <> "-" Then

' QUI puoi inserire la richiesta se copiare o meno il nuovo conto !!!
            Trovato = Trovato + 1
            UR2 = UR2 + 1
            SH1.Range("D" & I & ":G" & I).Copy Destination:=SH2.Range("A" & UR2)
            SH2.Range("G" & UR2) = SH2.Range("C" & UR2) & "-" & SH2.Range("A" & UR2)
            Set mRng = Range("G2:G" & UR2)
        End If
    Next I
    SH2.Range("G:G").ClearContents
    Application.ScreenUpdating = True

    Messaggio = "Elaborazione effettuata." & vbCrLf & vbCrLf
    If Trovato > 0 Then
        If Trovato > 1 Then
            Messaggio = Messaggio & "Inseriti:  " & Trovato & "  nuovi conti"
        Else
            Messaggio = Messaggio & "Inserito:  " & Trovato & "  nuovo conto"
        End If
    Else
        Messaggio = Messaggio & "Non è stato trovato alcun nuovo conto !!!"
    End If
    MsgBox Messaggio, vbInformation
   
    Set SH1 = Nothing
    Set SH2 = Nothing
    Set mRng = Nothing
    Set NuovoConto = Nothing
End Sub



ATTENZIONE: nel foglio "Db" in Key1 e Key2 hai diversi "#N/D" che sono stati causati dai conti mancanti nel foglio "Pdc" in colonna "A" !!!
Devi sistemare questa anomalia !!!
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: alfrimpa, enrico43 e 4 ospiti