A couple of thoughts

[vba]
Sub Mousepare()
Const strTitleSelectRange_c As String = "Select Range"
Dim rng1 As Excel.Range
Dim rng2 As Excel.Range
Dim cella As Object
Dim cella2 As Object
Dim C As String
Dim R As Integer
Dim c1r As Integer
Dim c2r As Integer
Dim c1c As Integer
Dim c2c As Integer
Dim tot As Integer

With Application

.ScreenUpdating = False
.Calculation = xlCalculationManual
End With

' Definisci i range
Set rng1 = GetRange("Select range n?1 with mouse:", strTitleSelectRange_c)
Set rng2 = GetRange("Select range n?2 with mouse :", strTitleSelectRange_c)
R = InputBox("Select offset (number value) to report:")
C = InputBox("Select column where report the value:")
contatore = 1
For Each cella In rng1

For Each cella2 In rng2

Trim (cella.Value)
cella.Value = Replace(cella.Value, Chr(160), "")
Trim (cella2.Value)
cella2.Value = Replace(cella2.Value, Chr(160), "")
c1r = cella.Row
c2r = cella2.Row
'c1c = cella.Column
'c2c = cella.Column

If cella2 = cella Then

'Range(C & c1r).Value = cella2.Offset(0, 1).Value
Range(C & c1r).Value = cella2.Offset(0, R).Value
End If

contatore = contatore + 1
Next cella2
Next cella

With Application

.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With

End Sub
Private Function GetRange(Prompt As String, Title As String) As Excel.Range
On Error Resume Next
Const lngRange_c As Long = 8
Set GetRange = Excel.Application.InputBox(Prompt, Title, Type:=lngRange_c)
End Function
[/vba]