Access ed excel come copiare dei dati in automatico

di il
21 risposte

Access ed excel come copiare dei dati in automatico

Ciao a tutti diciamo che sono mooooolto neofita quindi vi prego di parlare un linguaggio comprensibile, la questione è questa:
dovrei prendere il contenuto di un file excel 123.xls ed inserirlo in base al contenuto dentro ad un altro file excel 456.xls e per fare questo penavo ad access, perchè ovviamente dovrei fare un controllo di quello che viene scritto nel file excel ed in base alle colonne, le righe e a cosa c'è sritto copiarlo in un altro file ed non penso che excel in automatico sia in grado di farlo.
Una mano? un'idea?

21 Risposte

  • Re: Access ed excel come copiare dei dati in automatico

    Ciao per manipolare un file excel da access puoi fare da access collega tabelle collegando la tua tabella excel. I cambiamenti che fai da una parte verranno automaticamente riportati anche dall'altra parte...
  • Re: Access ed excel come copiare dei dati in automatico

    E quindi riuscirei a gestire sia la sorgente che la destinazione di questi dati tramite access?
  • Re: Access ed excel come copiare dei dati in automatico

    Allora collegando una tabella excel in access ti eviti di occupare spazio inutile che occuperesti facendo una copia di tale tabella.

    Su tale tabella collegata puoi fare tutte le operazioni piu comuni come query maschere o report. I dati che inserisci nella tabella excel o anche le modifiche che fai in excel vengono automaticamente riportate in access. ma in access non puoi modificare la tabella
  • Re: Access ed excel come copiare dei dati in automatico

    Non capisco perchè tu debba passare per Access...!!!

    Excel ha un suo VBA, potente e gestibile quanto quello di Access, il passaggio per Access in questo caso non solo è inutile ma è proprio sbagliato.

    Tuttavia serve capire se quello che vuoi fare è una cosa a SPOT o una routine fruibile anche nel futuro che realizzi una sorta di Automatismo...
    Se così non è allora importa con il Wizard in ACCESS, filtra o elimina i Records che non rispettano i criteri con una Query di Eliminazione, quindi esporta in Excel sempre con il Wizard.
  • Re: Access ed excel come copiare dei dati in automatico

    Ciao e grazie per la risposta. ci tengo a dire che puntato su access proprio perché non pensavo che Excel fosse in grado di farcela.
    comunque la cosa di trasportare dei dati da un file all'altro dovrà essere automatica e soprattutto continua e ripetuta più volte al giorno e a vita.
    ho scritto qui proprio per avere le idee più chiare sperando si poter almeno fare chiarezza sul prodotto che devo utilizzare.
    inoltre quello che vorrei ripetere è che il passaggio dati lo deve fare in automatico, cioè magari su un server e senza che nessuno guardi cosa sta succedendo. grazie
  • Re: Access ed excel come copiare dei dati in automatico

    Buona sera, merovese;
    credo di poter condividere la risposta di Alex.
    Bisognerebbe solo capire quali sono le condizioni da rispettare per spostare o copiare i record da 123.xls a 456.xls

    A disposizione.

    Buona serata.

    Giuseppe
  • Re: Access ed excel come copiare dei dati in automatico

    A dire il vero ce ne sono diverse.

    faccio un esempio su 10 colonne e 10 righe

    allora:

    -se la da nella colonna 1 la cella x contenuta nella riga x del file 123.xls è uguale alla data che va dal giorno 20 DICEMBRE al giorno 20 GENNAIO scrivi GENNAIO nella colonna x riga x del file 456.xls
    - se nella colonna 2 la cella x contenuta nella riga x del file 123.xls è uguale o continene la parola ASS scrivi MANUTENZIONE nella colonna x riga x del file 456.xls
    poi quelle più classiche:
    - copia il contenuto della cella x contenuta nella colonna, riga x del file 123.xls nella cella y contenuta nella colonna y, riga y del file 456.xls

    Però ripeto a me servirebbe che la cosa funzionasse in automatico, quindi senza che nessuno sia davanti al pc a guarda, in realtà sarebbe un server montato adhoc e il "programma" dovrebbe girare la notte
  • Re: Access ed excel come copiare dei dati in automatico

    Comunque volevo ringraziare tutti per la collaborazione
  • Re: Access ed excel come copiare dei dati in automatico

    Buona sera, merovese;
    credo si possa fare in VBA di Excel.
    Lasciami qualche giorno e cerco di sintetizzare le Tue esigenze.
    Poi deciderai Tu quale strada sia percorribile più adeguatamente.

    L'apertura del file senza "mano umana" dovrà necessariamente essere gestita da server; qui non riesco a darti una risposta.

    A presto.

    A disposizione.

    Buona serata.

    Giuseppe
  • Re: Access ed excel come copiare dei dati in automatico

    Buona Domenica, merovese;
    consentimi solo un paio di considerazioni che spero possano aiutarti a decidere sulla strada da intraprendere.
    Come anticipato la soluzione si può ottenere con un codice VBA direttamente in Excel.
    In realtà credo di aver risolto la valutazione del campo [Data] e del campo [Attività] non ho ben compreso quale sia la regola per:
    copiare il contenuto della cella x contenuta nella colonna, riga x del file 123.xls nella cella y contenuta nella colonna y, riga y del file 456.xls
    Poi, se vuoi, approfondiamo.

    Pensavo ad una procedura di questo genere:
    I file 123.xls e 456.xls non avranno codici VBA al loro interno; quindi continuerai a gestirli come hai fatto fino ad oggi.
    Ho utilizzato un nuovo file (che ho chiamato Work.xls) che, in Auto_Open, si occupa di:
    1 ) Aprire il file 123.xls
    2 ) Selezionare il foglio che contiene i Record da valutare
    3 ) Aprire il file 456.xls
    4 ) Selezionare il foglio che contiene il risultato delle valutazioni
    5 ) Analizzare i dati nel file 123.xls dei campi [Data] e [Attività] aggiornando opportunamente i rispettivi campi nel file 456.xls
    6 ) Salvare il file 456.xls aggiornato
    7 ) Chiudere il file 456.xls
    8 ) Chiudere il file 123.xls
    9 ) Chiudere il file Work.xls

    Considera solo che In base alla Tua richiesta:
    se nella colonna 2 la cella x contenuta nella riga x del file 123.xls è uguale o contiene la parola ASS scrivi MANUTENZIONE nella colonna x riga x del file 456.xls
    oltre ad ASS e ASSISTENZA verranno indicati come MANUTENZIONE anche valori come ASSEMBLAGGIO, CASSA, TASSA ecc.
    Rimane in sospeso come far partire Work.xls in automatico. Questo dipende da come sarà strutturata la procedura sul Server.

    Se ritieni che questa procedura sia accettabile, credo Ti verrà chiesto dai Moderatori o da Alex di spostare la discussione in Excel – VBA e puntualizzare meglio le varie situazioni (non credo Tu debba valutare un solo range di date, hai altre attività da valutare oltre a ASS?, ci sono analisi da sviluppare sugli altri [campi]?).

    A disposizione.

    Giuseppe
  • Re: Access ed excel come copiare dei dati in automatico

    Ciao Giuseppe, grazie per la disponibilità e per prima cosa, anche se in ritardo, Buon Natale.
    Allora ho letto quello che mi hai scritto e credo che ti ci sei avvicinato parecchio, ad essere sincero mi sono scordato di scrivere che in realtà il nome dei file dai quali devono essere prelevati i dati varia ogni giorno, semplicemente con la data. ad esempio file del 27 dicembre, file del 28 dicembre e così ti riporto le colonne che effettivamente dovranno essere analizzate:

    A regione
    B system
    C tipo attività
    D tipo attivaz.
    E città
    F pr
    G orario
    H sla
    I tecnico
    J ragione sociale
    K indirizzo
    L account
    M order
    N pm gestore
    O riferimenti telefonici
    P note

    non tutte le colonne però sono fondamentali per l'estrapolazione dei dati ma vanno semplicemente copiate in determinate posizioni del file 456.xls
    quelle fondamentali, sono:

    B system
    C tipo attività
    D tipo attivaz.

    queste tre contengono i dati in base ai quali dipendi il contenuto FISSO di alcune celle del file 456.xlx
    ti faccio un esempio

    se nella colonna C (tipo attività) del file 123.xls c'è la dicitura ASS - FW, nella colonna C del file 456.xls
    una cosa essenziale però e che noi andiamo a trattare i dati per righe, quindi bisognerebbe definire uno stop, cioè una volta controllati e scritti tutti i dati che automaticamente possono essere scritti, passare alla riga successiva sia di un file che di un altro

    il problema che tu mi hai posto, per le parole che iniziano tutte per ASS in realtà si risolve prendendo in considerazione il suffisso ASS ma prendendo poi in considerazione la parte seguente che in questo caso sarà ASS FW o ASS VDF o ASS (seguito da un numero), lo stesso vale per ATT, si insomma oltre ad interessarmi alle 3 lettere mi interessa anche ciò che le segue

    in altri casi ad esempio per la colonna K (indirizzo) basterà copiare il contenuto nella cella dedicata all'indirizzo della colonna indirizzo del file 456.xls
    più facile a farlo che a dirlo, insomma un semplice "copia da qui" e "incolla lì"

    per il resto credo che impostando magari excel in esecuzione automatica nel server di possa gestire il fatto di avviarlo in automatico...che ne pensi?

    altra cosa, il tutto dovrebbe girare di notte

    Grazie ancora Giuseppe
  • Re: Access ed excel come copiare dei dati in automatico

    Buona sera, merovese;
    se ritieni di gestire tutto con VBA direttamente in Excel, credo sia opportuno spostare la discussione nella sezione più appropriata; questo potrebbe servire ad altri Utenti interessati all'argomento per seguire più adeguatamente la discussione. Questa però non è una mia prerogativa, pertanto mi limito a rispondere alle Tue domande.
    ... il nome dei file dai quali devono essere prelevati i dati varia ogni giorno, semplicemente con la data. ad esempio file del 27 dicembre, file del 28 dicembre e così ti riporto le colonne che effettivamente dovranno essere analizzate: ...
    questo potrebbe essere risolto aprendo in seqenza, da server, tutti i file interessati.
    Potrei pensare di avere un file d'appoggio nel quale vengono aperti i file interessati all'analisi in funzione di un elenco opportunamente impostato; per questo devo fare un paio di prove perchè, se non ricordo male, questa procedura limita la possibilità di attivare la funzione Auto_Open. Provo, poi Ti sò dire.
    ... una cosa essenziale però e che noi andiamo a trattare i dati per righe, quindi bisognerebbe definire uno stop, cioè una volta controllati e scritti tutti i dati che automaticamente possono essere scritti, passare alla riga successiva sia di un file che di un altro ...
    Questo non è un problema.
    ... il problema che tu mi hai posto, per le parole che iniziano tutte per ASS in realtà si risolve prendendo in considerazione il suffisso ASS ma prendendo poi in considerazione la parte seguente che in questo caso sarà ASS FW o ASS VDF o ASS (seguito da un numero), lo stesso vale per ATT, si insomma oltre ad interessarmi alle 3 lettere mi interessa anche ciò che le segue ...
    Anche questo non lo vedo come un problema; dovremo solo efinire l'elenco delle "condizioni da valutare"
    ... in altri casi ad esempio per la colonna K (indirizzo) basterà copiare il contenuto nella cella dedicata all'indirizzo della colonna indirizzo del file 456.xls ...
    Continuo a non capire quale sia la discriminante per la selezione.
    Probabilmente è un mio problema; ... l'età non aiuta ...
    ... per il resto credo che impostando magari excel in esecuzione automatica nel server di possa gestire il fatto di avviarlo in automatico...che ne pensi? ...
    L'unico problema lo vedo nell'impostazione dell'apertura delle macro in Excel; dovrete impostare l'esecuzione delle macro con "Protezione Bassa" quindi senza nessun controllo. Altrimenti, ad ogni apertura dei file viene chiesto di "Attivare le macro" e questo, credo, richiede il consenso di un'Operatore.

    A disposizione.

    Buona serata.

    Giuseppe

    Aggiornamento: 28 dicembre ore 10:37
    Userei un file d'appoggio nel quale vengono elencati i file interessati all'analisi in funzione di un elenco opportunamente impostato; anch'esso senza macro. Questo perchè, se affidassimo la scelta dei file da valutare al file (che ho chiamato Work.xls) sarebbe complicato aggiornare l'elenco dei file da analizzare. Nel momento in cui si apre il file bisognerebbe disattivare le macro; questo sarebbe negativo per quanto riguarda l'efficienza del Servizio.
  • Re: Access ed excel come copiare dei dati in automatico

    ....bene, credo a questo punto potremmo iniziare a costruire qualcosa e poi magari definire bene il tutto, non trovi?
    Allora da quale parte vogliamo iniziare? come avrai capisco io non ci capisco granché quindi dimmi tu
    Ciao a grazie ancora
  • Re: Access ed excel come copiare dei dati in automatico

    Premesso che utilizzo Excel 2000, partirei con un nuovo file nel quale possiamo inserire i nomi dei file da valutare; esempio:
    Elenco file.xls
    
                   A
    1       Elenco file
    2   "27 dicembre 2012"
    3   "28 dicembre 2012"
    4   "29 dicembre 2012"
    5   "NomeFile 4"
    6   "NomeFile 5"
    7   "NomeFile 6"
    n   "NomeFile n"
    
    File 456.xls inizialmente vuoto.
    Altro nuovo file, Work.xls
    Questo file sarà quello che gestirà tutti i controlli e i rispettivi inserimenti nel file 456.xls
    In questo file dovremo cominciare a scrivere i codici VBA.
    
    Prima di tutto ho definito le variabili:
    
        Public Const Pat As String = "C:\Prove\"
        Public Const Master As String = "Elenco file.xls"
        Public Const Slave As String = "456.xls"
        Public Dalla As Date, Alla As Date
        Public QuestoFile As String, File As String, Mese As String, Attività As String
        Public Rig As Integer, Col As Integer
    
    Poi ho iniziato a scrivere il codice:
    
       Sub Auto_Open()
        Application.ScreenUpdating = False
        Application.DisplayAlerts = False
        QuestoFile = ActiveWorkbook.Name
        Workbooks.Open Filename:=Pat & Slave
        Sheets("NomeFoglioDati").Select
    
       Workbooks.Open Filename:=Pat & Master
       Sheets("NomeFoglioDati").Select
    
    A questo punto ho fatto una scansione di tutti i record presenti in questo file:
    
        Range("A2").Select
        Do While ActiveCell > 0
        File= ActiveCell
        Workbooks.Open Filename:=Pat & File
        Sheets("NomeFoglioDati").Select
        
    Qui ho inserito tutti controlli e, contestualmente, l'aggiornamento del file 456.xls
    Dopo l'aggiornamento del file 456.xls
    
        Windows(File).Activate
        ActiveWindow.Close
        Windows(Master).Activate
        ActiveCell.Offset(1, 0).Range("A1").Select
        Loop
        Windows(Slave).Activate
        ActiveWorkbook.Save
        ActiveWindow.Close
        Windows(Master).Activate        
        ActiveWindow.Close
        Windows(QuestoFile).Activate        
        ActiveWindow.Close
        Application.DisplayAlerts = True
        Application.ScreenUpdating = True
        End Sub
    
    Volendo, alla fine, si può chiudere Excel automaticamente.
    Considera solo che essendo:
    -se la da nella colonna 1 la cella x contenuta nella riga x del file 123.xls è uguale alla data che va dal giorno 20 DICEMBRE al giorno 20 GENNAIO scrivi GENNAIO nella colonna x riga x del file 456.xls
    - se nella colonna 2 la cella x contenuta nella riga x del file 123.xls è uguale o continene la parola ASS scrivi MANUTENZIONE nella colonna x riga x del file 456.xls
    se nei vari file, nella stessa riga, ci sono condizioni identiche, nel file 456.xls le condizioni andranno sovrascritte; troverai solo la condizione dell'ultimo file valutato.

    A disposizione.

    Giuseppe
Devi accedere o registrarti per scrivere nel forum
21 risposte