Condividi:        

[Excel] - Copia dati da un foglio ad un altro

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

[Excel] - Copia dati da un foglio ad un altro

Postdi stefanoil » 10/09/13 11:14

Innanzitutto buongiorno.
Ho provato a risolvere il mio problema da solo ma non sono riuscito a trovare la soluzione giusta.
Ora vi spiego.
Ho una cartella di lavoro in cui sono presenti due fogli.
Il foglio2 funge da database e contiene una tabella con dei dati (come si vede in foto)

Immagine

Il foglio1 è invece un foglio di report dove voglio mettere in evidenza dei dati presi dal foglio2.

Immagine

La mia macro dovrebbe fare questo:

1) attivarsi non appena vado a modificare il contenuto di una cella nel foglio1 (cella E2 dove ho messo un menù a tendina che mi obbliga a scegliere tra voci preselezionate);
2) identificare sulla riga 2 del foglio2 la colonna che contiene la voce selezionata al punto 1;
3) copiare i dati della colonna identificata (dalla riga 3 alla riga 19) nel foglio 1 nella colonna E (dalla riga 5 alla riga 21).

Il codice che ho provato a creare è questo che allego ma non mi funziona. Più precisamente mi restituisce sempre i dati di una stessa colonna (ho provato solo due righe).
Vi ringrazio già da ora per l'aiuto che mi riuscirete a dare.

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range) ' attiva il codice al variare della selezione dal menù a tendina
    Dim KeyCells As Range

    Set KeyCells = Range("E2")
   
    If Not Application.Intersect(KeyCells, Range(Target.Address)) _
           Is Nothing Then
         
    Sheets("SIM ZONA").Activate                     ' esegue il controllo su tutte le colonne da 1 a UC
UC = Cells(2, Columns.Count).End(xlToLeft).Column
For CC = 1 To 20
    If Cells(2, CC).Value = Sheets("REPORT COSTI").Range("E2") Then
    Sheets("REPORT COSTI").Activate
    Cells(5, 5) = Sheets("SIM ZONA").Cells(3, CC).Value
    Cells(6, 5) = Sheets("SIM ZONA").Cells(4, CC).Value
    End If
Next CC
           
    Sheets("REPORT COSTI").Activate
           
MsgBox "VOCE DI COSTO MODIFICATA" 'Restituisce il messaggio al variare della voce di costo

    End If
End Sub
stefanoil
Newbie
 
Post: 3
Iscritto il: 10/09/13 08:50

Sponsor
 

Re: [Excel] - Copia dati da un foglio ad un altro

Postdi scossa » 10/09/13 11:56

stefanoil ha scritto:Innanzitutto buongiorno.
Ho provato a risolvere il mio problema da solo ma non sono riuscito a trovare la soluzione giusta.
Ora vi spiego.
Ho una cartella di lavoro in cui sono presenti due fogli.
Il foglio2 funge da database e contiene una tabella con dei dati (come si vede in foto)

Immagine


Ciao,

ti rendi conto che se non alleghi il file costringi che volesse aiutarti a costruirsi il tuo file ex-novo?
Allegalo (depurato da eventuali dati sensibili) e otterrai più facilmente un aiuto.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: [Excel] - Copia dati da un foglio ad un altro

Postdi stefanoil » 10/09/13 13:51

Chiedo venia per la mancanza del file.

Qui il link per effettuare il download

http://rapidshare.com/files/453959659/Simulatore_%20V.1.5.xls

Grazie
stefanoil
Newbie
 
Post: 3
Iscritto il: 10/09/13 08:50

Re: [Excel] - Copia dati da un foglio ad un altro

Postdi Anthony47 » 10/09/13 14:17

Ciao stefanoil , benvenuto nel forum.
Puoi quindi ottenere i risultati che crechi con una formula, senza bisogno della macro:
-in E2 di REPORT COSTI e' presente la scelta effettuata
-selezioni E5:E21 e inserisci la formula
Codice: Seleziona tutto
=INDICE('SIM ZONA'!$3:$19;;CONFRONTA($E$2;'SIM ZONA'!$2:$2;0))

Da confermare con Contr-Maiusc-Enter

La tua macro non funziona perche' e' una macro di evento, quindi inserita nel modulo di codice di "REPORT COSTI": qualsiasi riferimento non qualificato [es un generico Cells(2, CC).Value] puntera' ai dati di REPORT COSTI, mentre tu ti illudi che essa punti al foglio che hai selezionato.

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

Re: [Excel] - Copia dati da un foglio ad un altro

Postdi stefanoil » 10/09/13 15:22

Ciao Anthony,
prima di tutto grazie per la rapida risposta.
Effettivamente grazie alla tua formula risulta tutto estremamente più leggero.

Giusto per mia cultura personale, nella mia macro ho provato ad utilizzare un riferimento più accurato per quelle celle che mi hai fatto notare (ignoravo l'esistenza del problema che mi hai descritto). Utilizzando per quella parte di codice la stringa Sheets("SIM ZONA").Cells(2, CC).Value la macro funziona correttamente.

L'unica differenza per cui mi può tornare utile utilizzare la macro è che volendo, solo a fini di simulazione, posso modificare il valore della cella in cui ho copiato il dato. Diversamente, tramite la formula, mi riporta un errore in quanto provo a modifare la matrice.

Ad ogni modo mi sei stato veramente utilissimo insegnandomi una formula che avevo decisamente trascurato e correggendomi l'errore che mi stava facendo impazzire.
Grazie di cuore.
stefanoil
Newbie
 
Post: 3
Iscritto il: 10/09/13 08:50

Re: [Excel] - Copia dati da un foglio ad un altro

Postdi Anthony47 » 11/09/13 01:18

Se vuoi modificare una formula a matrice applicata su piu' celle dovrai farlo dopo aver selezionato l' intero range di celle (E5:E21, nel nostro caso).

Ciao, alla prossima.
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] - Copia dati da un foglio ad un altro":


Chi c’è in linea

Visitano il forum: Nessuno e 38 ospiti