Problemas con el pasaje de Texto a Numero

Dante, ¿te acordás que te dije que había resuelto lo de pasar de texto a numero?... Bueno, hay algo que no funciona y quizás puedas ayudarme con esto!

Dispongo de este código

'1° PASO DE TEXTO A NUMERO-----------------------------------------------

   Sheets("STOQUEO").Select

    Range("Y2").Select

    ActiveCell.FormulaR1C1 = "=IF(RC[-23]="""","""",VALUE(RC[-23]))"

    Range("Y2").Select

    Selection.AutoFill Destination:=Range("Y2:Y25000"), Type:=xlFillDefault

    'Range("Y2:Y65000").Select

    Columns("Y:Y").Select

    Selection.Copy

    Range("Y1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

    Range("Y2").Select

    Application.CutCopyMode = False

Pero al hacer el segundo paso, que es cambiar el articulo usado a articulo nuevo, resulta que se vuelve a poner en formato texto!

'2° PONGO TODOS LOS ARTICULOS CON CODIGO NUEVO

ActiveSheet.Range("Y1") = "Codigos Nuevos"

ActiveSheet.Range("B2").Select

While ActiveCell.Row <= ActiveSheet.Range("D65536").End(xlUp).Row

    If Len(ActiveCell) < 6 Then

        ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell

    ElseIf Left(ActiveCell, 1) = 3 Then

        ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell.Value - 300000

    ElseIf Left(ActiveCell, 1) = 4 Then

        ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell.Value - 300000

    ElseIf Left(ActiveCell, 1) = 6 Then

        ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell.Value - 400000

    Else

        ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell

    End If

ActiveCell.Offset(1, 0).Select

Wend

¿Dónde podría estar el problema?

1 respuesta

Respuesta
3

H l a : 

Primero pasas los datos de la columna B a la Y

En el segundo paso, le estás diciendo que pase los datos, nuevamente, de la columna B a la Y

ActiveSheet.Range("Y" & ActiveCell.Row) = ActiveCell

Si lo que quieres es, ahora poner los de la columna Y a la B, entonces es así:

ActiveCell = ActiveSheet.Range("Y" & ActiveCell.Row)

S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas