Quitar números de celdas en una columna

Quisiera eliminar todos los números que tienen al inicio una celda hasta que encuentre la primera letra. Y así con toda las celdas de la misma columna

Es para ponerla dentro de una macro

Luego copiaría 4 columnas de la hoja 1 y otras cuatro de la hoja 2 y por ultimo pegarlas en la hoja 3 desde A1

Principal problema con eliminar los números antes de copiar

1 respuesta

Respuesta
1

Prueba esta macro quita todos los números de la 1a columna de la hoja 1 y hoja2 y copia las 4 columnas de cada hoja en la hoja hoja 3 a partir de la columna A

Sub eliminar_numeros()
For i = 1 To 2
    Set h = Worksheets("hoja" & i)
    Set datos = h.Range("a1").CurrentRegion
With datos
    For j = 1 To .Rows.Count
        numero = .Cells(i, 1):     largo = Len(numero): x = 0
        For k = 1 To largo
            izq = Left(numero, k): der = Right(izq, 1)
            If IsNumeric(der) Then x = x + 1
        Next k
        derecha = Right(numero, largo - x)
        .Cells(j, 1) = derecha
    Next j
    .Columns(1).Resize(.Rows.Count, 4).Copy
    If i = 1 Then Sheets("hoja3").Range("a1").PasteSpecial
    If i > 1 Then Sheets("hoja3").Range("e1").PasteSpecial
End With
Next i
Set datos = Nothing
End Sub

Gracias pero no sirve

Solo quiero quitar los números de la hoja1 celdas C2:C999

Es una celda que tiene varios números en la parte inicial y luego letras y numeros

Solo quiero quitar todos los números hasta  que encuentre la primera letra

te pongo dos ejemplos

22645967 avena glt5g grand

143644967 GERBER5 Grain227gCA

No siempre tiene la misma cantidad de números y no quiero quitar el resto de números dentro del texto

tendría que quedar 

avena glt5g grand

GERBER5 Grain227gCA

Según tu formula me copia el dato de la celda C1 y lo copia en todas las inferiores

No se si esta bien explicado

Una cosa más, las columnas a copiar de cada hoja son diferentes

Hoja1 b,c,h

Hoja2 b,c,o

Gracias

Bien entonces prueba con esta macro, la única condición es que entre el ultimo numero y la primera letra exista un espacio en blanco, esto te permitirá separar los primeros números sin afectar a los números posteriores, luego que los números fueron eliminados copiara las columnas que que quieres a la hoja 3

Sub quitar_numeros_y_copiar()
Set h1 = Worksheets("hoja1")
Set h2 = Worksheets("hoja2")
filas = h1.Range("c2").CurrentRegion.Rows.Count
Set datos = h1.Range("c2").Resize(filas, 1)
With datos
    For i = 1 To filas
        dato = .Cells(i, 1)
        separa = Split(dato, " ")
        .Cells(i, 1) = separa(1) & " " & separa(2)
    Next i
End With
Union(h1.Range("b2:b999"), h1.Range("c2:c999"), h1.Range("h2:h999")).Copy
Sheets("hoja3").Range("a1").PasteSpecial xlPasteAll
Union(h2.Range("b2:b999"), h2.Range("c2:c999"), h2.Range("o2:o999")).Copy
Sheets("hoja3").Range("d1").PasteSpecial xlPasteAll
set datos=nothing: set h1=nothing: set h2=nothing
End Sub

¡Gracias! 

El otro día la probé y funcionaba ahora da error en esta fila

.Cells(i, 1) = separa(1) & " " & separa(2)

Eso es porque no tienes números antes del texto, mira la imagen, al no haber números que quitar marcara error en la línea que posteaste, ponle antes de esa línea on error resume next para que se salte el error y después de la línea on error goto 0

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas