codice:
Sub Macro1()
Dim tmpPosSx, tmpPosDx, PrimaRigaSelezione, UltimaRigaSelezione, _
PrimaColonnaSelezione, UltimacClonnaSelezione, ColonneInSelezione As Integer
Dim strFormatoStupido, tmpString As String
strFormatoStupido = ActiveWindow.RangeSelection.Address(False, False, xlR1C1)
tmpPosSx = InStr(1, strFormatoStupido, "[")
tmpPosDx = InStr(1, strFormatoStupido, "]")
PrimaRigaSelezione = CInt(Mid(strFormatoStupido, tmpPosSx + 1, (tmpPosDx - tmpPosSx) - 1) + 1)
strFormatoStupido = Right(strFormatoStupido, Len(strFormatoStupido) - tmpPosDx)
tmpPosSx = InStr(1, strFormatoStupido, "[")
tmpPosDx = InStr(1, strFormatoStupido, "]")
PrimaColonnaSelezione = CInt(Mid(strFormatoStupido, tmpPosSx + 1, (tmpPosDx - tmpPosSx) - 1) + 1)
strFormatoStupido = Right(strFormatoStupido, Len(strFormatoStupido) - tmpPosDx)
tmpPosSx = InStr(1, strFormatoStupido, "[")
tmpPosDx = InStr(1, strFormatoStupido, "]")
UltimaRigaSelezione = CInt(Mid(strFormatoStupido, tmpPosSx + 1, (tmpPosDx - tmpPosSx) - 1) + 1)
strFormatoStupido = Right(strFormatoStupido, Len(strFormatoStupido) - tmpPosDx)
tmpPosSx = InStr(1, strFormatoStupido, "[")
tmpPosDx = InStr(1, strFormatoStupido, "]")
UltimacClonnaSelezione = CInt(Mid(strFormatoStupido, tmpPosSx + 1, (tmpPosDx - tmpPosSx) - 1) + 1)
ColonneInSelezione = UltimacClonnaSelezione - PrimaColonnaSelezione + 1
For i = PrimaRigaSelezione To UltimaRigaSelezione Step 1
If i Mod 2 = 0 Then
Range(Cells(i, PrimaColonnaSelezione), _
Cells(i, PrimaColonnaSelezione + ColonneInSelezione)).Select
Selection.Copy
Range(Cells(i - 1, UltimacClonnaSelezione + 1), _
Cells(i - 1, UltimacClonnaSelezione + ColonneInSelezione)).Select
ActiveSheet.Paste
Range(Cells(i, PrimaColonnaSelezione), _
Cells(i, PrimaColonnaSelezione + ColonneInSelezione)).Select
'Selection.EntireRow.Delete
End If
Next i
End Sub