Renombrar asunto de un correo en Outlook

Cualquier otro tipo de consultas sobre la Hoja de Cálculos Excel.
Reglas del Foro 1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!

Renombrar asunto de un correo en Outlook

Notapor Salvador1 » 06 Dic 2018 12:20

Hola:

Me pregunto si hay alguna forma de modificar con una macro el asunto de un email recibido (sé que se puede hacer manualmente). He buscado información y no encuentro nada al respecto.

Para que os hagáis una idea lo utilizo para lo siguiente: con una macro en Outlook descargo el archivo adjunto del email seleccionado a una carpeta del pc, inserto su ruta en una celda de un archivo Excel, visualizo el adjunto (pdf) con un webbrowser y obtengo un dato (importe) que quiero insertar en el asunto del email. Estos pasos ya los he conseguido hacer (hasta llegar a la visualización), pero no sé cómo renombrar el asunto del email...si es que se puede.

Lo que se me ocurre es guardar el email en el pc con extensión .msg y renombrarlo con Excel, pero después tendría que copiarlo a Outlook y no sé si se puede hacer.

Si conociérais algun ejemplo por simple que fuera, intentaría adaptarlo a lo que necesito.

Saludos.
Salvador1
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 436
Registrado: 19 Oct 2010 16:38

Re: Renombrar asunto de un correo en Outlook

Notapor Héctor Miguel » 06 Dic 2018 14:46

Salvador1 escribió:... pero no sé cómo renombrar el asunto del email...si es que se puede...

por que no publicas lo que llevas avanzado ?

quiza solo te falte agregar dos instrucciones como...
Código: Seleccionar todo
  <objeto_eMail>.Subject = "asunto modificado"
  <objeto_eMail>.Save

saludos,
hector.
Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4732
Registrado: 26 Mar 2005 18:31

Re: Renombrar asunto de un correo en Outlook

Notapor Salvador1 » 06 Dic 2018 17:28

Aquí lo tienes.

Básicamente, el Excel me sirve para ver el contenido de los archivos adjuntos de un email y poder cambiarle el nombre a su "asunto".

Y recuerdo que la cuestión es si hay alguna forma de cambiar el nombre a un email mediante programación.

Observaciones:
1º Este código hay que pegarlo en Outlook (también lo he puesto en un módulo dentro del archivo...)
2º Modificar la ruta donde se almacenará el archivo Excel (está preparado para guardarse en el escritorio), así como su nombre.
3º Crear una carpeta [en el escritorio] donde se almacenarán los adjuntos que se extraigan del email seleccionado (en este caso se llama "Nueva" y también preparada para estar en el escritorio).

La macro no está muy "fina", pero sirve para hacerse una idea.

Código: Seleccionar todo
Sub Macro1()

'>>>>>>>>>>'OJO: esta macro hay que insertarla en OUTLOOK, (no en Excel)!!<<<<<<<<<<<<<<

Dim appExcel As Object, xlWkb As Object, ruta As String, ARCHIVO As String, Vec(), Mat()
Dim x
Set appExcel = CreateObject("Excel.Application")

'El archivo Excel está en el escritorio (en una carpeta llamada NUEVA)
ruta = CreateObject("wscript.shell").SpecialFolders("desktop") & "\"      '<<<<======RUTA del archivo Excel
ARCHIVO = "Ejemplo.xlsm" ''<<<<======Nombre del archivo Excel.

'Si está cerrado Excel, lo abre, y si no, lo activa.
If Dir(ruta & ARCHIVO) = "" Then MsgBox "el archivo """ & ruta & ARCHIVO & """ NO existe en la ruta de busqueda !!!": Exit Sub
  On Error Resume Next
  Set appExcel = GetObject(, "excel.application")
  If Err Then GoTo instanciar
  Set xlWkb = appExcel.Workbooks(ARCHIVO)
  If Err Then GoTo Abrir
  GoTo abierto
instanciar:
  Set appExcel = CreateObject("excel.application")
Abrir:
  appExcel.Workbooks.Open ruta & ARCHIVO
abierto:
  appExcel.Visible = True
  Set xlWkb = Nothing
  On Error GoTo 0
 

With appExcel
.Application.EnableEvents = False
.Range("a2:e10").Clear 'Habrá un máximo de 2 ó 3 adjuntos.
End With

i = 2 'fila donde empieza la primera ruta del primer adjunto guardado: [A2]

For Each x In Application.ActiveExplorer.Selection
    For Each ADJUNTO In x.Attachments
   
        'Si el archivo es pdf...
        If ADJUNTO.Filename Like "*.pdf" Then
        nombrearchivo = ruta & "Nueva" & "\" & ADJUNTO.Filename '<<===== Carpeta "NUEVA" donde se guardan los adjuntos extraidos.
        'Guardar archivo en la carpeta "Nueva" del PC
        ADJUNTO.SaveAsFile nombrearchivo
        'Insertar ruta del archivo en la columna "A" a partir de la 2ª fila
        appExcel.Sheets(1).Cells(i, "a") = nombrearchivo
        i = i + 1
        End If
    Next
     
     'Al seleccionar [A2] se activa el evento que abre el Userform1, y con el ENTER vamos saltando
     'de línea y escribiendo en el propio Userform el nuevo nombre que se insertará en la columna D.
     'Pero ese nuevo nombre debería ser para renombrar el EMAIL SELECCIONADO (del tipo .msg), no el adjunto como en este caso.
     appExcel.Application.EnableEvents = True
     appExcel.Sheets(1).[a2].Select
Next x
With appExcel
Set appExcel = Nothing
Set x = Nothing
Set ADJUNTO = Nothing
End With
End Sub


Saludos.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
Salvador1
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 436
Registrado: 19 Oct 2010 16:38

Re: Renombrar asunto de un correo en Outlook

Notapor Héctor Miguel » 07 Dic 2018 01:47

de tu respuesta, esta parte es la esencia de tu consulta...
Salvador1 escribió:Básicamente, el Excel me sirve para ver el contenido de los archivos adjuntos de un email y poder cambiarle el nombre a su "asunto"...

y del codigo que muestras, toca hacer estas 4 nuevas (RE)preguntas, porque NO alcanza para "hacerse la idea":
como ?, cuando ?, a cual ?, por cual ?

- como... ha de saber "la macro" que un eMail requiere de un cambio en su asunto ?
- cuando... se debe dar la instruccion a "la macro" de cambiar ese asunto ?
- a cual... eMail (en turno o pasado) se le cambia el asunto ?
- por cual... (nuevo) asunto se cambia (ya sabiendo cual es) "ese" eMail ?

te recuerdo que las instrucciones necesarias para ese tipo de cambio son:
Código: Seleccionar todo
  <objeto_eMail>.Subject = "asunto modificado"
  <objeto_eMail>.Save

saludos,
hector.
Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4732
Registrado: 26 Mar 2005 18:31

Re: Renombrar asunto de un correo en Outlook

Notapor Salvador1 » 07 Dic 2018 08:06

Héctor Miguel escribió:- como... ha de saber "la macro" que un eMail requiere de un cambio en su asunto ?

No lo puede saber. Hay que cambiar el asunto del(los) email(s) que seleccione.


Héctor Miguel escribió:- cuando... se debe dar la instruccion a "la macro" de cambiar ese asunto ?

Una vez que me haya llegado el email. No me refiero al momento de recibirlo, sino cuando yo lo precise. Le doy un repaso a los emails recibidos y aquél que yo quiera cambiar, lo selecciono y ejecutaría la macro. Recuerdo que lo que haría manualmente sería abrir el adjunto, ver el importe que tiene y modificar el asunto.

Héctor Miguel escribió:- a cual... eMail (en turno o pasado) se le cambia el asunto ?

No entiendo a qué te refieres con "en turno o pasado", pero aun así te informo que se le cambia el asunto a aquél que yo seleccione en la bandeja de entrada (como he comentado en la primera respuesta).

Héctor Miguel escribió:- por cual... (nuevo) asunto se cambia (ya sabiendo cual es) "ese" eMail ?

Por el que yo escriba manualmente. No es un texto fijo. Por ejemplo: "SOCIEDAD X NOTIFICACIÓN 1.250 EUR."
Por eso en el adjunto que subí, dije que el texto que yo quiero que tenga el "nuevo" asunto del email sería el que yo escribiera en el campo que hay debajo de la imagen WebBrowser.


Héctor Miguel escribió:- te recuerdo que las instrucciones necesarias para ese tipo de cambio son:
Código: Seleccionar todo
  <objeto_eMail>.Subject = "asunto modificado"
  <objeto_eMail>.Save

Se me olvidó comentarte sobre esto. Yo creo que esas líneas sirven, o al menos las utilizo en otros casos, para tomar el texto del asunto del email al exportarlo a Excel, pero que yo sepa, no sirve para modificar el asunto en el propio Outlook.

¿Me podrías dar una pista de la línea de código que necesaria para modificar el asunto? O qué idea tienes al respecto? Quizás así te pueda ayudar mejor con mis respuestas.



Saludos
Salvador1
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 436
Registrado: 19 Oct 2010 16:38

Re: Renombrar asunto de un correo en Outlook

Notapor Héctor Miguel » 07 Dic 2018 20:02

Salvador1 escribió:
Héctor Miguel escribió:- cuando... se debe dar la instruccion a "la macro" de cambiar ese asunto ?

... Le doy un repaso a los emails recibidos y aquél que yo quiera cambiar, lo selecciono y ejecutaría la macro. Recuerdo que lo que haría manualmente sería abrir el adjunto, ver el importe que tiene y modificar el asunto...

la siguiente macro, "ejecutada" desde outlook, con un correo seleccionado, le modifica el "asunto" por lo que tu decidas:
primero, te muestra el asunto actual
despues lo modifica (y guarda el mensaje para afirmar el cambio)
finalmente muestra el asunto modificado
Código: Seleccionar todo
Sub cambiaAsuntoDeMailSeleccionado()
  With ActiveExplorer.Selection.Item(1)
    MsgBox .Subject
    .Subject = "Asunto modificado !!!"
    .Save
    MsgBox .Subject
  End With
End Sub

saludos,
hector.
Avatar de Usuario
Héctor Miguel
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 4732
Registrado: 26 Mar 2005 18:31

Re: Renombrar asunto de un correo en Outlook

Notapor Salvador1 » 07 Dic 2018 20:29

¡Perfecto, Héctor!

Al final era más simple de lo que pensaba, y era lo que me sugeriste al principio.

Muchas gracias, ¡y hasta la próxima!
Salvador1
Miembro Frecuente
Miembro Frecuente
 
Mensajes: 436
Registrado: 19 Oct 2010 16:38


Volver a Otras Consultas

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados