Código vba para dividir texto y haga la función de "texto a columnas" automáticamente

Tengo un archivo que en la celda A1 se ingresa unos datos con escáner y dichos datos los necesito dividir en dos partes, la primera parte se divida y quede en la misma celda A1, y la segunda parte pase a la celda B2 al dar enter o cambiar de celda, el divisor de texto seria una diagonal o una coma.

Respuesta
1

Te evio el Código solicitado

    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
        Semicolon:=False, Comma:=True, Space:=False, Other:=True, OtherChar _
        :="/", FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True

Por favor recuerda valorar las respuestas!

Slds

Juan

Buen día Juan, pero como inicio el código,¿deberá ser un evento "change"? Te envío una imagen para que te des una idea, lo que necesito hacer, es que al ingresar un valor en la celda C6 y dar enter para ingresar un nuevo valor en la celda c7 el valor de la celda C6 se divida y me coloque el "9896" en la celda D6, el divisor siempre seria una diagonal, ojala me puedas ayudar, de antemano muchísimas gracias.

En esta caso, entiendo que lo que precisas no es un text to column, sino una función de texto que identifique el valor y lo coloque en D6 el valor del modelo

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And Target.Row > 5 Then
Modelo = Right(Target, Len(Target) - InStrRev(Target, "/"))
ActiveSheet.Cells(Target.Row, Target.Column + 1).Value = Modelo
End If
End Sub

Esto debe colocarse como una macro de Hoja y entrara en el IF cuando se modifuique cualquier valor en la columna C, siempre en cuendo la fila sea >5.

Por favor recuerda valorar la respuesta!

Slds

Juan

Juan buen día, agradezco mucho tu ayuda y me funciono a la perfección, solo que no se si me podrás ayudar, crees que sea posible que  una vez que los valores se pasaron a la otra columna estos sean borrados de la columna original  ej: "S2XLH21-50" todo lo demas "/9896" borrarlo

Gracias.

Seguro, te paso el Código

Private Sub Worksheet_Change(ByVal Target As Range)
Checker = InStrRev(Target, "/")
    If Target.Column = 3 And Target.Row > 5 And Checker > 0 Then
        Modelo = Right(Target, Len(Target) - InStrRev(Target, "/"))
        ActiveSheet.Cells(Target.Row, Target.Column + 1).Value = Modelo
    ElseIf Target.Column = 4 And Target.Row > 5 Then
        Check2 = InStr(ActiveSheet.Cells(Target.Row, Target.Column - 1).Value, "/")
            If Check2 > 0 Then
            InicVal = Left(ActiveSheet.Cells(Target.Row, Target.Column - 1).Value, InStr(ActiveSheet.Cells(Target.Row, Target.Column - 1), "/") - 1)
            ActiveSheet.Cells(Target.Row, Target.Column - 1).Value = InicVal
            End If
    End If
End Sub

debes agregarle la condicion Target <> ""  y ademas debes guardar en otro evento los valores para que entre al modificar la columna 4.

Por favor recuerda valorar la respuesta!

Slds

Juan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas