I dati che ci mostri sicuramente sono stati prodotti partendo da dati come quelli che vuoi ottenere, quindi questo e' il classico lavoro inutile...
Comunque, guarda il file FLATZZZ.xslm che puoi scaricare qui:
https://www.dropbox.com/s/0oc8ppxef21on ... .xlsm?dl=0Contiene questa macro:
- Codice: Seleziona tutto
Sub Servez()
'Vedi http://www.pc-facile.com/forum/viewtopic.php?f=26&t=107077
Dim sSh As Worksheet, I As Long, J As Long, myNext As Long
'
Set sSh = ActiveWorkbook.ActiveSheet
For I = 6 To sSh.Cells(Rows.Count, "B").End(xlUp).Row
If Cells(I, 2).Value <> "" Then
With Foglio1
For J = 3 To 34 Step 3
myNext = .Cells(Rows.Count, 2).End(xlUp).Row + 1
.Cells(myNext, 1) = Cells(I, 2)
If (Cells(I, J) + Cells(I, J + 1)) > 0 Then
.Cells(myNext, 2) = Cells(5, J).Cells(1, 1)
.Cells(myNext, 3) = Cells(6, J)
.Cells(myNext, 4) = Cells(I, J)
.Cells(myNext, 5) = Range("C3")
.Cells(myNext, 6) = Cells(I, 35)
'
.Cells(myNext + 1, 1) = Cells(I, 2)
.Cells(myNext + 1, 2) = Cells(5, J).Cells(1, 1)
.Cells(myNext + 1, 3) = Cells(6, J + 1)
.Cells(myNext + 1, 4) = Cells(I, J + 1)
.Cells(myNext + 1, 5) = Range("C3")
.Cells(myNext + 1, 6) = Cells(I, 35)
End If
Next J
End With
End If
Next I
MsgBox ("Trasposizione completata")
End Sub
Essa si prende carico di effettuare la trasposizione richiesta, accodando i nuovi dati a quelli preesistenti all'interno del file Flatzzz.
Operativamente:
1) apri Flatzzz.xlsm
2) apri il file che vuoi trasporre in Flatzzz e attiva il foglio con la tabella.
3) A questo punto lancia la macro:
-premi Alt-F8 da tastiera
-scegli Servez dall'elenco di macro disponibili e premi Esegui
Un messaggio segnalera' il completamento del lavoro. Chiudi il file e riprendi dal "punto 2".
Finito il lavoro, salva il contenuto di Flatzzz.xlsm con il nome che preferisci; lascia Flatzzz.xlsm vuoto, e usalo per crearti altri report in futuro.
Ovviamente la macro si aspetta di trovare un formato dati esattamente uguale a quello che hai pubblicato.
Se vuoi cancellare il contenuto di Flatzzz (per creare da zero i tuoi dati) allora ti suggerisco di lasciare le intestazioni di riga 1
Ciao