Macro extrae numero y texto de cada fila de una columna

En la celda B2, se tiene el código y la descripción de un producto, se requiere extraer en c2 el código y en d2 la descripción

             B2                                         C2                                           D2

123456 Descripción                      123456                               descripción

99999999 computador xyz        99999999                            computador xyz

Asi sucesivamente, hasta recorrer la última fila de B

2 Respuestas

Respuesta
1

Existen varias formas, pero la más rápida y sin macros es usar el asistente para convertir texto en columnas que está en la ficha Datos en el panel Herramientas de Datos, función Texto en columnas, te muestro:

Dividir nombres con el Asistente para convertir texto en columnas

  1. Seleccione el rango de datos que desea convertir.
  2. En la ficha Datos, en el grupo Herramientas de datos, haga clic en Texto en columnas.
  3. En el paso 1 del Asistente para convertir texto en columnas, haga clic en Delimitados y luego en Siguiente.
  4. En el paso 2, active la casilla de verificación Espacio y desactive las demás casillas bajo Delimitadores.

    En el cuadro Vista previa de los datos se muestra el nombre y el apellido en dos columnas distintas.

  5. Haga clic en Siguiente.

  6. En el paso 3, haga clic en una columna en el cuadro Vista previa de los datos y luego en Texto bajo Formato de los datos en columnas.

    Repita este paso para cada columna del cuadro Vista previa de los datos.

  7. Si desea mostrar el contenido separado en las columnas junto al nombre completo, haga clic en el icono situado a la derecha del cuadro Destino y, a continuación, seleccione la celda colocada junto al nombre en la lista (en tu caso C2).

Respuesta
1

H o l a:

Te anexo la macro

Sub Separar()
'Por.Dante Amor
    For i = 2 To Range("B" & Rows.Count).End(xlUp).Row
        esp = InStr(1, Cells(i, "B"), " ")
        If esp > 0 Then
            Cells(i, "C") = Left(Cells(i, "B"), esp - 1)
            Cells(i, "D") = Mid(Cells(i, "B"), esp + 1)
        Else
            If IsNumeric(Cells(i, "B")) Then
                Cells(i, "C") = Cells(i, "B")
            Else
                Cells(i, "D") = Cells(i, "B")
            End If
        End If
    Next
    MsgBox "Fin"
End Sub

':)
'S aludos. D a n t e   A m o r . R ecuerda valorar la respuesta. G racias
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas