Estoy realizando un excel para tratar cierta información que recibo por email. La idea es que, mediante Visual Basic (macros, etc) o alguna funcion, el excel coja ese email y lo procese. El cuerpo del mensaje es lo que me interesa. La información que contiene es en texto plano y, a pesar de que es muy parecida en todos los correos (el formato del correo quiero decir), hay pequeñas variaciones.
La informacion es la que sigue:
Referencia: 000001 Proceso: 05 SB: 2,3-2,6
Nombre y proveedor ==========
Codigo: 555211 Color: 0042
[...etc...]
Quiero realizar un excel que realice las siguientes operaciones:
- Coja y procese el email que recibo por Outlook
- Coloque los valores en una tabla por separado
Es decir:
[CELDA] Referencia [CELDA] 000001
[CELDA] Proceso [CELDA] 05
[CELDA] SB [CELDA]2,3-2,6
...etc...
Hasta ahora y ante la imposibilidad de realizar esto que solicito, lo unico que conseguido es:
Cojo el texto recibido del correo y lo pego en una celda
En una tabla recojo los datos de forma automatica mediante el comando EXTRAE
=EXTRAE(D8;38;8) ...etc...
El problema con esto es que, a parte de que tienes que realizar una parte manual (copiar y pegar del correo al excel), los correos recibidos, aunque son muy muy parecidos unos con otros, siempre hay alguna pequeña variacion de distancia entre los valores:
Ejemplo
[correo 1]
Referencia: 000001 Proceso: 05 SB: 2,3-2,6
Nombre y proveedor ==========
Codigo: 555211 Color: 0042
[correo 2]
Referencia: 001C56 Proceso: 05 SB: 2,3-2,6
Nombre y proovedor ==========
Codigo: 555211 Color: 0042
En la referencia, aunque despues de ella venga Proceso, no es el mismo tamaño, por lo que ya el comando EXTRAE no funciona tan bien.
Mediante VisualBasic he creado un botón (no se apenas nada de VB pero me estado informando y buscando codigos) para que, estos valores extraidos del correo, los coloque en una tabla y los vaya colocando en la ultima fila no ocupada por otro valor:
Queria saber si podrían orientarme a alcanzar mi objetivo o si, por el contrario, se les ocurre alguna otra forma más rapida y automatica de realizar lo antes mencionado, estoy abierto a sugerencias.
El tema de conectar el Excel con Outlook llevo dias buscando por Google pero solo encuentro tutoriales de como, mediante VisualBasic, mandar correos a traves de Excel (vamos, todo lo contrario a lo que yo quiero)
Muchas gracias de antemano y, espero sus respuestas
Gracias
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Buenas,
Estoy realizando un excel para tratar cierta información que recibo por email. La idea es que, mediante Visual Basic (macros, etc) o alguna funcion, el excel coja ese email y lo procese. El cuerpo del mensaje es lo que me interesa. La información que contiene es en texto plano y, a pesar de que es muy parecida en todos los correos (el formato del correo quiero decir), hay pequeñas variaciones.
La informacion es la que sigue:
Referencia: 000001 Proceso: 05 SB: 2,3-2,6
Nombre y proveedor ==========
Codigo: 555211 Color: 0042
[...etc...]
Quiero realizar un excel que realice las siguientes operaciones:
- Coja y procese el email que recibo por Outlook
- Coloque los valores en una tabla por separado
Es decir:
[CELDA] Referencia [CELDA] 000001
[CELDA] Proceso [CELDA] 05
[CELDA] SB [CELDA]2,3-2,6
...etc...
Hasta ahora y ante la imposibilidad de realizar esto que solicito, lo unico que conseguido es:
Cojo el texto recibido del correo y lo pego en una celda
En una tabla recojo los datos de forma automatica mediante el comando EXTRAE
=EXTRAE(D8;38;8) ...etc...
El problema con esto es que, a parte de que tienes que realizar una parte manual (copiar y pegar del correo al excel), los correos recibidos, aunque son muy muy parecidos unos con otros, siempre hay alguna pequeña variacion de distancia entre los valores:
Ejemplo
[correo 1]
Referencia: 000001 Proceso: 05 SB: 2,3-2,6
Nombre y proveedor ==========
Codigo: 555211 Color: 0042
[correo 2]
Referencia: 001C56 Proceso: 05 SB: 2,3-2,6
Nombre y proovedor ==========
Codigo: 555211 Color: 0042
En la referencia, aunque despues de ella venga Proceso, no es el mismo tamaño, por lo que ya el comando EXTRAE no funciona tan bien.
Mediante VisualBasic he creado un botón (no se apenas nada de VB pero me estado informando y buscando codigos) para que, estos valores extraidos del correo, los coloque en una tabla y los vaya colocando en la ultima fila no ocupada por otro valor:
Private Sub CommandButton1_Click()
Range("B3").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("D" & Cells.Rows.Count).End(xlUp).Offset(1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
Application.CutCopyMode = False
Range("B3").Select
End Sub
Queria saber si podrían orientarme a alcanzar mi objetivo o si, por el contrario, se les ocurre alguna otra forma más rapida y automatica de realizar lo antes mencionado, estoy abierto a sugerencias.
El tema de conectar el Excel con Outlook llevo dias buscando por Google pero solo encuentro tutoriales de como, mediante VisualBasic, mandar correos a traves de Excel (vamos, todo lo contrario a lo que yo quiero)
Muchas gracias de antemano y, espero sus respuestas
Gracias