Macro para rectificar dirección de calles

Recibo planillas con listados de direcciones, muchas mal escritas o con abreviaturas.

Quiero agilizar su rectificación o normalización con una macro en excel

1 Respuesta

Respuesta
1

También con una macro tendrás dificultad de reconocer qué datos corresponden a tal o cual calle.

Podrías contar con una macro que 'reconozca' ciertos textos y según eso coloque un texto genérico.

Por ej:

Santa María de Punilla ... Sta María de Punilla... Sta M° de Punilla

José de San Martín... Jose de San martin ... Jose San Martín

En ese caso podrías tener una tabla con el dato que debiera ir en caso de que aparezca la palabra Punilla.

Entonces tendrías una tabla con las col:

CORRECTO                        posibles valores

Sta.Maria de Punilla ... Punilla

José de San Martín ... José San Jose de San ... San Martin

Como verás las variantes son muchas y quizás en una sola corrida de macro no se cubra todas ... pero te aproximará para una 2da vuelta.

Comenta si te interesa, o se te ocurre algún otro modo. No olvides indicar en qué col se encuentran tus datos y si puedes dejar una imagen de algunos datos mejor.

¡Gracias! 

Elsa:

Disculpa, no encuentro como adjuntar un archivo; lo enviaré por email

Adjunto archivo con ejemplos y cómo estoy enfrentando el problema. Incluye, por el momento, 2 macros, una para eliminar acentos y otros caracteres, y otra para separar el nombre de la calle del n° domiciliario.

Verás que mis principales problemas (por el momento) son:

  1. cómo reconocer algunos textos (abreviaturas y nombres típicos escritos de distintas maneras), compararlos con las listas respectivas incluidas en el archivo (que irán aumentando en casos) y hacer el reemplazo correspondiente
  2. cómo reconocer los nombres de calles que empiezan con números para la macro que separa el nombre de la calle del número domiciliario.

Muchas gracias por tu ayuda

JCP

Enviame entonces a mi correo, no olvides recordarme el tema que nos ocupa:

cibersoft_arg de yahoo.com.ar

Cibersoft.arg de gmail.com

Sdos!

Valoraste antes de enviar el libro a mi correo...

Bien, ahora te lo devolví con la macro para las abreviaturas. Revisalo y comentame.

Sdos!

¡Muchísimas Gracias Elsa Matilde!  creo que ahora puedo avanzar

Estoy estudiando tu macro pero me fallan los conocimientos. No he logrado que me busque si hay otra abreviatura en la misma celda, solo busca en la primera palabra.

Te contaré si lo logro 

Hola Elsa Matilde:

No logré modificar la macro que me enviaste para que reemplaze todas las abreviaturas que hay en una cadena; solo lo hace con la primera palabra de la cadena.

Basándome en esa macro y en otra que encontré en la página que indico, hice la siguiente para reemplazar los nombres incorrectos (más de una palabra como A BEELO en lugar de ANDRES BELLO) pero también me supera , solo lo hace  si esas palabras son las primeras de la cadena

Sub reemplazanombres()
'x JCP basandose en Elsamatilde y https://msdn.microsoft.com/es-es/library/office/ff839746.aspx
Dim n As Range

'recorre col B, busca en tablas los textos que pueda
Sheets("Nombres").Select
Range("a2").Select
'recorre la col hasta encontrar un vacío
While ActiveCell <> ""
'recorre la cadena buscando el nombre mal escrito
nombremalo = ActiveCell.Value
nombrecorrecto = ActiveCell.Offset(0, 1)
Z = Len(nombrecorrecto)

With Sheets("Procedimiento").Range("A:A")
Set c = .Find(nombremalo, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
' Do
NuevoTexto = Application.WorksheetFunction.Substitute(c, nombremalo, nombrecorrecto)
c.Value = NuevoTexto
Set c = .FindNext(c)
' Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

ActiveCell.Offset(1, 0).Select

Wend
End Sub

Estas haciendo mención a una hoja 'Nombres' que no está en tu libro... enviamelo nuevamente para que ajuste la macro.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas