** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - extraer texto de string
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoextraer texto de string

 Responder Responder
Autor
Mensaje
cpampasPT Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Marzo/2010
Localización: Portugal
Estado: Sin conexión
Puntos: 486
Enlace directo a este mensaje Tema: extraer texto de string
    Enviado: 04/Abril/2019 a las 18:35
Buenos dias ,
Le estoy dando vueltas sobre como extraer las direcciones de  email contenidos en una string, pero todavia no lo consigo, la string es la siguiente :
---------------------------

A & M Consultores
Descripcion: Ofrecemos servicios para respaldar su gestión a todos los niveles e impulsarle para asumir retos presentes y futuros. A través del diagnóstico obtendrá una radiografía actual de su negocio para tomar decisiones de una forma más objetiva y consiguiendo así ahorrar tiempo y dinero.
Dirección: Urola 8  Cod Postal: 20230
Ciudad: Legazpia   Provincia: Guipúzcoa (Gipuzkoa)
Tel: 675 39 10 40   E-mail: consultores@amempresas.com
Web: www.amempresas.com

ABEGA PREVENCION
Descripcion: Elaboracion de planes de prevención
Dirección: Av. Eduardo Boscá, 14. Despacho 7  Cod Postal: 46023
Ciudad: Valencia   Provincia: Valencia
Tel: 963374162   E-mail: valencia@abega-prevencion.com
Web: www.abega-prevencion.com

------------------------------

y lo que quiero es  extraer de la string unicamente los emails, en concreto serian :

valencia@abega-prevencion.com

consultores@amempresas.com


Intente hacer un bucle para saber en que posicion se encuentra el caracter @

InStr(1, miSTR, "@", vbTextCompare)

pero luego tengo que obtener el texto a la izquierda del caracter @, y a la derecha del caracter @, correspondiente a la direccion de email. Alguna sugerencia ?

Saludos


Arriba
pitxiku Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 27/Septiembre/2017
Localización: En mi casa
Estado: Sin conexión
Puntos: 996
Enlace directo a este mensaje Enviado: 04/Abril/2019 a las 19:12
Si todos los textos son como los mostrados, puedes buscar las cadenas E-Mail y Web para delimitar la dirección.

También te puede servir la función InStrRev.

Editado por pitxiku - 04/Abril/2019 a las 19:12
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5184
Enlace directo a este mensaje Enviado: 04/Abril/2019 a las 23:47
Buenas noches a todos.

Yo haría esto:

posicionMail=Instr(miStr , "E-mail:")'Aqui nos da el valor de donde está la E
posicionMail=posicionMail+9 'Aquí nos da el valor de donde empieza el correo
CorreoBusco=Mid(Mistr,posicionMail)

Debes repasar el 9, ya que yo le he contado en la pantalla... revisa tu si es 8 o cualquier otro.

Tal vez lo mejor sería que contaras hasta donde están los dos puntos (:), que es 7 y luego eliminar los posibles espacios iniciales, con un Replace por ejemplo.

Mejor lo miras y nos cuentas tu decisión y así aprendemos todos.

Saludos.
Gracias
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5184
Enlace directo a este mensaje Enviado: 04/Abril/2019 a las 23:59
Buenas de nuevo.

Se me olvida tratar el resto de la cadena después del .com

Aquí va:

posicionMail=Instr(miStr , "E-mail:")'Aqui nos da el valor de donde está la E
posicionMail=posicionMail+9 'Aquí nos da el valor de donde empieza el correo
CorreoBusco=Mid(Mistr,posicionMail)

Vuelvo a utilizar la misma variable posicionMail, pues no afectará para el resultado siguiente.

posicionMail=Instr(CorreoBusco," ") 'Esto es lo que existe después del .com, o de cualquier otro correo (acabado en .es, o en .loquequieraqueacabe). Y le quitaremos 1 (pues el valor ahora es el del espacio posterior a la finalización del correo).

CorreoBusco=Mid(Correobusco,1,posicionMail-1)'Recuerda, hay que ver los espacios iniciales

Saludos.
Gracias
Arriba
cpampasPT Ver desplegable
Asiduo
Asiduo
Avatar

Unido: 20/Marzo/2010
Localización: Portugal
Estado: Sin conexión
Puntos: 486
Enlace directo a este mensaje Enviado: 05/Abril/2019 a las 10:03
Hola Colegas,
Probe lo que me sugiere Vimipas, y funciona perfecto.

Dim posicionMail As Integer, correobusco As String, Mistr As String
Mistr = Me.txt
posicionMail = InStr(Mistr, "E-mail:") 'Aqui nos da el valor de donde está la E
posicionMail = posicionMail + 8 'Aquí nos da el valor de donde empieza el correo
correobusco = Mid(Mistr, posicionMail)
posicionMail = InStr(Mistr, "E-mail:") 'Aqui nos da el valor de donde está la E
posicionMail = posicionMail + 8 'Aquí nos da el valor de donde empieza el correo
correobusco = Mid(Mistr, posicionMail)
posicionMail = InStr(correobusco, " ")
correobusco = Mid(correobusco, 1, posicionMail - 7)

ahora lo tengo que meter en un Loop para que me vaya identificando los emails de la string que es bastante larga.
Gracias por la ayuda

Podeis cerrar el hilo
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable