Condividi:        

Copiare valori celle su fogli diversi dello stesso file exce

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

Copiare valori celle su fogli diversi dello stesso file exce

Postdi Marco75CT » 05/08/11 12:07

Buongiorno a tutti.
Ho bisogno del vostro aiuto.
Ho un software che mi genera un file .csv con 17 colonne e n righe.
Questi dati devono essere riportati in un file excel per poi essere analizzati.
Ogni colonna del foglio .csv (ad eccezione delle prime 2) deve essere copiata in uno specifico foglio del file excel (identificato con il titolo della colonna)...es.: colonna A-->foglio A; colonna B-->foglio B;...
Dato che il report è giornaliero, i dati dei giorni precedenti non devono essere sovrascritti, ma incollati nella colonna successiva (identificata con la data del giorno).
C'è un modo per fare eseguire queste operazioni da una macro?
Grazie
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Sponsor
 

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Flash30005 » 05/08/11 21:29

Ciao Marco75CT e benvenuto nel forum

Invia il file .csv modificando dati sensibili ma non i campi

Segui questa procedura
ma per incollare il link nel post devi aver scritto almeno 3 messaggi (ovunque nel forum)

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: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 06/08/11 21:11

Ciao Flash30005 e grazie per pronta risposta.
Ecco i links ai 2 files:
https://rapidshare.com/files/4124992590/Worksheet.csv
https://rapidshare.com/files/395164918/ ... titors.xls
Il file Workshhet.csv è quello generato dal software.
Il file Analisi_Competitors è quello che ho preparato io (è da completare).
Si tratta di una comparazione di tariffe.
L'obiettivo finale è quello di comparare le variazioni nel tempo rispetto a una determinata data futura.
Dato che si tratta di una mole imponente di dati, quanto più automatismi riesco a creare, tanto più veloce risulterà l'inserimento.
Confido nel tuo aiuto ;)
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Flash30005 » 07/08/11 04:20

Volevo farti solo una domanda
come risalgo alla data?
Mi spiego:
hai inserito in ogni foglio Column tutti i dati nella colonna B che riporta la data 06/08/2011
dove hai preso questa data se nel file.csv non esiste (escludendo il primo campo date)?
Forse dalla data di generazione del file?

Fai sapere
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: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 07/08/11 07:40

Esatto! La data nella prima riga di ogni foglio Column è quella di generazione del report.
A me servirebbe un automatismo che mi copi i dati del report nelle colonne di ogni foglio, distinguendo per foglio (ad ogni colonna un foglio) e per data di generazione.
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Anthony47 » 07/08/11 10:40

Ho dato uno sguardo anche io ai file, ti propongo quanto segue:
1) il file csv lo "importi" sul foglio Competitors Analysis"; puoi ottenere il codice per eseguire cio' automaticamente tramite il registratore di macro: partendo dal foglio "Set"
-selezioni il foglio " Competitors Analysis"
-lo azzeri
-avvii l' importazione (Menu /Dati /Importa dati esterni /Importa dati)
-esegui l' importazione dati

2) Lo spostamento delle colonne dal foglio importato ai vari fogli lo fai con una macro del tipo
Codice: Seleziona tutto
Sub marco75()
Dim TabTL As String, TabMvCol As Integer, SorgSh As String, I As Integer, LastR As Long, TargRt As String
TargRt = "Column"
SorgSh = "Competitors Analisys"
TabTL = "A3": TabMvCol = 15
'
Sheets(SorgSh).Activate
LastR = Cells(Rows.Count, 1).End(xlUp).Row
For I = 1 To TabMvCol
With Sheets(TargRt & I)
    Range(TabTL).Offset(0, I + 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1).Copy _
        Destination:=.Cells(Application.Match(1 * Range(TabTL).Value, .Range("A:A"), 0), _
        Application.Match(1 * Range(TabTL).Value, .Range("1:1"), 0))
End With
Next I
End Sub

Presuppone che i vari fogli ColumnX siano gia' presenti, che abbiano una intestazione con le date su riga1 e col A (verranno usate per determinare la posizione in cui incollare le nuove colonne, in funzione della prima data presente sul foglio importato), e che la sequenza di date sui vari ColumnX sia coerente con le sequenze che importi
La macro ovviamente e' un prototipo, la dovrai "rinforzare" per prevedere la gestione delle eventuali situazioni di errore che, noti i presupposti detti sopra e conoscendo il tuo processo di lavoro, potresti incontrare.

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

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 07/08/11 15:11

Ciao Anthony47 e grazie per aver risposto.
Purtroppo ho provato a seguire le tue istruzioni, ma non funziona.
Probabilmente sbaglierò qualcosa io.
Ecco cosa ho fatto:
1- ho importato il file csv sul foglio Competitors Analisys (importa tutti i dati sulla colonna A e su tante righe quante sono nel file csv)
2- ho creato la macro copiando il tuo codice
3- vado sul foglio column1 ed eseguo la macro marco75
risultato:
Errore di run-time '13'
Tipo non corrispondente
se faccio il debug mi evidenzia questa parte del codice:
Codice: Seleziona tutto
    Range(TabTL).Offset(0, I + 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1).Copy _
        Destination:=.Cells(Application.Match(1 * Range(TabTL).Value, .Range("A:A"), 0), _
        Application.Match(1 * Range(TabTL).Value, .Range("1:1"), 0))
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Anthony47 » 07/08/11 23:57

Ho provato la macro sul file che hai pubblicato, anche tu?
Se SI, La cosa piu' probabile che mi viene in mente e' che la col A del foglio "Competitors Analisys" non sia stata importata come data, puoi verificare?

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

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 08/08/11 07:09

Ok...ho modificato il file csv salvandolo come xls e la tua formula funziona!
Grazie 1000
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 19/08/11 14:51

Ciao Forum,
volevo modificare il codice che mi ha postato Anthony47:

Codice: Seleziona tutto
        Sub marco75()
        Dim TabTL As String, TabMvCol As Integer, SorgSh As String, I As Integer, LastR As Long, TargRt As String
        TargRt = "Column"
        SorgSh = "Competitors Analisys"
        TabTL = "A3": TabMvCol = 15
        '
        Sheets(SorgSh).Activate
        LastR = Cells(Rows.Count, 1).End(xlUp).Row
        For I = 1 To TabMvCol
        With Sheets(TargRt & I)
            Range(TabTL).Offset(0, I + 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row, 1).Copy _
                Destination:=.Cells(Application.Match(1 * Range(TabTL).Value, .Range("A:A"), 0), _
                Application.Match(1 * Range(TabTL).Value, .Range("1:1"), 0))
        End With
        Next I
        End Sub


Per adattarlo a un nuovo foglio Excel.
Il foglio importato si chiama Pianificazione
http://imageshack.us/photo/my-images/543/immagineinb.png/
Il foglio di destinazione si chiama Venduto.
http://imageshack.us/photo/my-images/84/immagine2fyj.png/
Io desidero che i valori presenti nella colonna D (Venduto) vengano copiati nel foglio Venduto nella colonna corrispondente alla prima data del foglio importato (Pianificazione) e nella riga corrispondente alla data.
Ho provato a modificare il codice, ma non riesco ad ottenere il risultato desiderato.
Mi potreste aiutare?
Grazie

Top
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Anthony47 » 20/08/11 13:58

Quindi vuoi copiare dal foglio Pianificazione la sola colonna D, immagino da D2 in giu', posizionandola nel foglio Venduto, con Riga /Colonna calcolata dalla data presente in Pianificazione!A2.
Per questo userai qualcosa del tipo
Codice: Seleziona tutto
Sub mrk2()
'
LastR = Sheets("Pianificazione").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Pianificazione").Range("D2:D" & LastR).Copy Destination:=Sheets("Venduto").Cells( _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("A:A"), 0), _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("1:1"), 0))
End Sub

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

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 21/08/11 06:58

Ciao Anthony47 e grazie per la risposta.
Purtroppo però mi da un errore che non riesco a capire.
Mi evidenzia la parte del codice seguente
Codice: Seleziona tutto
Sheets("Pianificazione").Range("D2:D" & LastR).Copy Destination:=Sheets("Venduto").Cells( _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("A:A"), 0), _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("1:1"), 0))
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Copiare valori celle su fogli diversi dello stesso file

Postdi Marco75CT » 21/08/11 09:42

Marco75CT ha scritto:Ciao Anthony47 e grazie per la risposta.
Purtroppo però mi da un errore che non riesco a capire.
Mi evidenzia la parte del codice seguente
Codice: Seleziona tutto
Sheets("Pianificazione").Range("D2:D" & LastR).Copy Destination:=Sheets("Venduto").Cells( _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("A:A"), 0), _
Application.Match(1 * Sheets("Pianificazione").Range("A2"), Sheets("Venduto").Range("1:1"), 0))


Scusa...distrazione mia! il file importato mi dava delle date in formato testo (perciò non riconoscibile).
Ho apportato le modifiche al file e ora funziona perfettamente.
Grazie 10000000000000000000000000000000000!
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54


Torna a Applicazioni Office Windows


Topic correlati a "Copiare valori celle su fogli diversi dello stesso file exce":


Chi c’è in linea

Visitano il forum: papiriof, raimea e 64 ospiti