Separar números concatenados

Ante todo saludos y buenas vibras para TodoExpertos.

Mi pregunta es: Tengo una hoja excel, en la columna B tengo datos como:

B

1201-1230

15666-15670

130-140

122271-122290

45612

530

Lo que deseo es una macro que me separe datos en dos columnas: Columna C y D que separe los números en las dos columnas y si solo es un numero entero lo pase a la columna C=numero entero y en la D =0

, ejemplo con los datos anteriores:

C D

1201 1230

15666 15670

130 140

122271 122290

45612 0

530 0

Agradeceré me ayuden por favor. Esperando su respuesta me despido

Atentamente

Richar Chavez

1 respuesta

Respuesta
1

Prueba con esta macro

Sub separar()
'Por.DAM
Application.DisplayAlerts = False
With Range("C1:C" & Range("C" & Rows.Count).End(xlUp).Row)
    .TextToColumns Destination:=Range("C1"), _
        DataType:=xlDelimited, _
        Other:=True, OtherChar:="-", _
        FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
        TrailingMinusNumbers:=True
End With
With Range("D1:D" & Range("C" & Rows.Count).End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "0"
End With
End Sub

Amigo Dam gracias por responder, si fueras tan amable de describirme tu macro en relación a lo que pregunte. Pero de todas maneras te aclarare la pregunta.

En una hoja excel Hoja1 Columna B desde B2 asta B850 (cada vez aumenta mas datos) tengo datos como números concatenados por un guion(-) ejemplo 1201-1230, lo que deseo es una macro que me separe este dato en dos columnas Columna C2=1201 y D2=1230, también tengo datos en la columna B de números enteros ejemplo 45612 y quiero que la macro cuando encuentre números enteros copie en la Columna C=45612 y en la D=0 y asi sucesivamente la macro recorra la columna B asta no encontrar datos. Ejemplo De datos en la columna B y como la macro aria quedar en la columna C y D

Columna B Columna C Columna D

1540-1550 1540 1550

16898-16900 16898 16900

5201 5201 0

301-355 301 355

Dado mi aclaración agradeceré me ayudes amigo ya que no tengo mucho conocimiento en macros.

Atentamente

Richar Chavez

Perdona, ya hice los ajustes a la macro.

Sigue las Instrucciones para ejecutar la macro
1. Abre tu archivo de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Sub separar()
'Por.DAM
Application.DisplayAlerts = False
With Range("B1:B" & Range("B" & Rows.Count).End(xlUp).Row)
    .TextToColumns Destination:=Range("C1"), _
        DataType:=xlDelimited, _
        Other:=True, OtherChar:="-", _
        FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
        TrailingMinusNumbers:=True
End With
With Range("D1:D" & Range("D" & Rows.Count).End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "0"
End With
End Sub

Lo que hace la macro es separar la columna B en la columna C y D, separando los números por cada guión.

Posteriormente rellena la columna D con 0 en donde la celda esté vacía.

Estimado amigo Dam que Excelente solución le diste a mi problema, muchas pero muchas gracias amigo, me sirve excelentemente tu macro, espero contar contigo en otras oportunidades. Bendiciones para TodoExpertos y para Usted amigo DAM.

Atentamente

Richar Chavez

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas