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)

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

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