Ho provato a cercare qualcosa su internet di qualche macro per poter fare quello che mi occorre ed ho trovato un codice che dovrebbe aiutarmi:
- Codice: Seleziona tutto
Sub Trasposta5 ()
Set zona = Range(Range("A1"), Range("A1").End(xlDown)) 'impostiamo con "zona" i 'riferimenti alla cella iniziale (A1) e a quella finale (A1.End)
cont = zona.Rows.Count 'indi con "cont" si prende il totale delle righe interessate
For N = 1 To cont Step 5 'si inizia il ciclo da 1 fino al numero "cont", con passo 5
If Worksheets("Foglio1").Cells(N, 1) <> "" Then 'se la cella riga N, col. 1 contiene dati
Range(Cells(N, 1), Cells(N + 4, 1)).Select 'si selezionano cinque righe
Selection.Copy 'si copia la selezione dei valori contenuti nelle tre righe
Worksheets("Foglio2").Select 'e si passa al foglio destinazione
Dim iRow As Integer
iRow = 1 'si imposta l'avvio indicando da quale riga iniziare (dalla riga 1)
While Cells(iRow, 1).Value <> "" 'si inizia il ciclo While...Wend cercando una cella vuota
iRow = iRow + 1 ' si incrementa di una riga ad ogni ciclo
Wend
Cells(iRow, 1).Select 'trovata la cella vuota, si seleziona e s'incollano i dati copiati
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
End If
Worksheets("Foglio1").Select 'si ritorna sul foglio con l'elenco di partenza
Next 'e si continua alla terza riga successiva, fino alla fine elenco
Application.CutCopyMode = False 'si elimina il tratteggio sulle celle copiate
End Sub
Questo codice però mi genera un errore 1004 dicendo "Errore nel metodo Select per la classe Range", ora essendo un neofita non riesco a capire il motivo dell'errore, quale può essere il problema?
Grazie a tutti in anticipo.