Eliminar guiones de las deldas en las que exista al final, de una columna con datos

Ya me ayudaste antes y no poco con mis problemas con VBA en Excel.

Verás necesito una macro que recorra una columna (AA) en la que hay celdas con texto. En algunas de ellas al final del texto aparecen unos guiones que necesitaria eliminar. No aparecen en todas, sólo en algunas.

Te adjunto una imagen:

Respuesta
1

Esta macro hace lo que tu deseas:

Sub Eliminar_guiones()
    'Ultima fila de datos'
    uf = Range("AA" & Rows.Count).End(xlUp).Row
    'Recorremos la columna AA hasta la última fila de datos'
    For f = 2 To uf 
        'Comprueba si el último caracter es un guión'
        If Right(Cells(f, "AA"), 1) = "-" Then
            'Elimina el guión, cogiendo todos los caracteres de la celda menos el último'
            Cells(f, "AA") = Left(Cells(f, "AA"), Len(Cells(f, "AA")) - 1)
        End If
    Next
End Sub

Puedes ponerla en la hoja o en un módulo.

Si te ha valido la respuesta.

2 respuestas más de otros expertos

Respuesta
1

Te anexo la macro

Sub EliminaGuion()
'Por.Dante Amor
    For i = 2 To Range("AA" & Rows.Count).End(xlUp).Row
        If Right(Cells(i, "AA"), 1) = "-" Then
            Cells(i, "AA") = Left(Cells(i, "AA"), Len(Cells(i, "AA")) - 1)
        End If
    Next
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta

Perdona Dante, pero me encuentro con que hay algunas celdas que tienen al final hasta cuatro guiones, podrías modificar la macro para que los eliminase hubiera uno, dos , tres o cuatro.

Ya tu respuesta ha sido excelente. Espero a ver si pudieras remodelarla.

Gracias mil.

Con lo siguiente se eliminar todos los guiones de la derecha

Sub EliminaGuion()
'Por.Dante Amor
    For i = 2 To Range("AA" & Rows.Count).End(xlUp).Row
        Do While Right(Cells(i, "AA"), 1) = "-"
            Cells(i, "AA") = Left(Cells(i, "AA"), Len(Cells(i, "AA")) - 1)
        Loop
    Next
End Sub
Respuesta
1

No te doy la respuesta con macros, pero te recomiendo que en una columna auxiliar copies la siguiente fórmula (digamos que tu primer celda es AA2)

Entonces escribe

=SI(DERECHA(AA2;"-");IZQUIERDA(AA2;LARGO(AA2)-1);AA2)

Y luego copia esta fórmula hacia abajo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas