Vediamo se riusciamo a semplificarti la vita...
Ho capito che ti piacerebbe posizionare sul foglio "Rapp Enel" dei dati prelevati da foglio "1", di una riga a piacere, che magari e' in un elenco soggetto a filtro e ordinamento.
Supponiamo che ti basti poter selezionare la riga desiderata e avere quella riga riportata sul "Rapp Enel".
Lavoriamo sul foglio "Rapp Enel"
Per cominciare in A2 scrivici 14 (e' l'unica riga compilata di "1" e la useremo come collaudo di quel che andiamo a fare).
Dalla macro (che alla fine sara' inutile) ricavo che il contenuto di 1-colonna O va nelle celle unite X2:Y2 di "Rapp Enel"; seleziona X2:Y2 e scrivici la formula
- Codice: Seleziona tutto
=SE(SCARTO('1'!O1;A2-1;0)<>"";SCARTO('1'!O1;A2-1;0);"")
Formatta la cella come meglio ti piace
Il contenuto di colonna P va in "AB2:AE2"; seleziona "AB2:AE2" e scrivici la formula
- Codice: Seleziona tutto
=SE(SCARTO('1'!P1;A2-1;0)<>"";SCARTO('1'!P1;A2-1;0);"")
NOTA: e' la stessa formula di prima, solo si sostituisce O con P
Formatta la cella come meglio ti piace
Immagino che hai compreso il concetto e sei in grado di scrivere, nelle altre celle del rapportino da compilare, le altre formule tutte analoghe a queste di esempio, in modo da popolare il rapportino con tutte le informazioni da prelevare su un servizio descritto in foglio "1"
Prova a modificare il contenuto di A2 con altro numero, e vedrai che il rapportino cambia automaticamente.
Si tratta ora di individuare un modo con cui, da foglio "1", si sceglie quale servizio compilare e stampare. Per questo ti propongo di usare il "doppioclick" sulla riga prescelta; cioe' basta fare doppioclick su una riga, ad esempio 5, per compilare il rapportino con i dati della riga 5.
Per questo bastera' riuscire a scrivere 5 sulla cella A2 di "Rapp Enel"
Per ottenere cio':
-tasto dx sul tab col nome foglio "1"; scegli Visualizza codice
-copia questo codice e incollalo nel frame destro della finestra che si e' aperta:
- Codice: Seleziona tutto
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim CkArea As String
'
CkArea = "O:W"
If Not Application.Intersect(Target, Range(CkArea)) Is Nothing Then
Sheets("Rapp Enel").Range("A2") = Target.Row
Cancel = True
Beep
End If
End Sub
That's all.
In questo modo quando fai doppioclick sul una riga del foglio "1", nelle colonne O:W, il rapportino risultera' compilato con i dati selezionati. Un "beep" conferma l'operazione.
Ti va bene?
Ciao