Adjunto macro ajustada. No comprendí porqué la ejecutas 2 veces... así que retiré esa parte del código.
Como tu hoja de origen tiene una macro en el evento Selection, la inhabilito para que no se ejecute mientras seleccionás el rango. Por lo tanto no se modifican los colores.
Si tu idea es asignar un formato diferente, podés hacer uso de la variable rgo1 ... pero no me quedó claro en qué hojas vas a asignar formatos.
Sub pasandoVal_otraHoja_SELEC() 'con selección de rangos
'x Elsamatilde
'hoja destino
Set ho2 = Sheets("Hoja2")
'solicitar inicio del rango de datos de la hoja activa
'controla posible error al cancelar ventana
On Error Resume Next
'evitar que se ejecute el evento Selection_Change
Application.EnableEvents = False
Set rango = Application.InputBox("Seleccione 1 celda o el rango que desee volcar a hoja y luego presione ACEPTAR.", Type:=8)
rgo1 = rango.Address
Set rango = Nothing
Set rango = Application.InputBox("Seleccione la PRIMER celda de destino y luego presione ACEPTAR.", Type:=8)
rgo2 = rango.Address
On Error GoTo 0
If rgo1 = "" Or rgo2 = "" Then
MsgBox "Error en el ingreso de celdas origen-destino."
Exit Sub
End If
'se recorre la col a partir de la celda origen hasta encontrar 1 celda vacía
Range(rgo1).Select
'cantidad de columnas a convertir
colx = Range(rgo1).Columns.Count
While ActiveCell <> ""
For i = 0 To colx - 1
'si se trata de celdas con texto se pasa sin convertir
If IsNumeric(ActiveCell.Offset(0, i)) Then
If Val(ActiveCell.Offset(0, i)) <> 0 Then
ho2.Range(rgo2).Offset(0, i) = ActiveCell.Offset(0, i).Value * 1
End If
Else
'pasa el dato sin convertir
ho2.Range(rgo2).Offset(0, i) = ActiveCell.Offset(0, i).Value
End If
Next i
'pasa a la fila siguiente en rango destino
rgo2 = Range(rgo2).Offset(1, 0). Address(False, False)
'pasa a fila sgte en rango origen
ActiveCell.Offset(1, 0).Select
Wend
Application.EnableEvents = True
End Sub
Sdos!