Jump to content

Macro pegar cuerpo email recibido


Recommended Posts

Macro pegar cuerpo email recibido en una variable

Buenas noches compañeros, no se mucho de excel y necesito su ayuda, estoy haciendo una macro que me copie el cuerpo de un correo y me lo pegue en Excel pero no que me copie todo el cuerpo en una celda si no como viene en el correo por ejemplo si el correo es:

[ATTACH]29920.vB[/ATTACH]

Pegar asi

[ATTACH]29921.vB[/ATTACH]

en varias celdas

Hasta el momento copio todos mis correos en una capeta que cree en la bandeja de entrada llamada "audicase" y luego cuando finaliza la macro me los pasa a una subcarpeta que se llama procesados, todo eso me funciona bien...

Esto es lo que llevo


'' ***************************************************************************''
'' CORREOS AUDICASE ''
'' Propósito : Revisa una carpeta de la bandeja de entrada y guarda la ''
'' info en excel ''
'' Escrito : 08-May-2012 ''
'' ***************************************************************************''
' NOTAS:
' La Carpeta de la bandeja de entrada (Audicase) y el subfolder (Procesados) donde se guardarán los mensajes debe existir
' Este código requiere agregar una referencia al Microsoft Outlook 8.0 Object Model

Sub salvarcorreo()

'Declaración de variables
Dim appOl As New Outlook.Application
Dim ns As Outlook.Namespace
Dim Inbox As Outlook.MAPIFolder
Dim SubFolder As Outlook.MAPIFolder
Dim ProceFolder As Outlook.MAPIFolder
Dim Item As Object
Dim Atmt As Outlook.Attachment
Dim FileName As String
Dim i As Integer
Dim j As Integer
Dim varResponse As Variant
Dim cuerpo As Object
Dim cantidad As Integer
Set ns = appOl.GetNamespace("MAPI")
Set Inbox = ns.GetDefaultFolder(olFolderInbox)
Dim strBody As String

'Conteo de mensajes procesados
cantidad = 0

'Carpeta donde guarda los mensajes
Set ProceFolder = Inbox.Folders("Audicase").Folders("Procesados")

' Nombre de la subcarpeta de la bandeja de entrada
Set SubFolder = Inbox.Folders("Audicase")
i = 0

' Revisa si hay mensajes en la subcarpeta
If SubFolder.Items.Count = 0 Then
MsgBox "No hay mensajes.", vbInformation, "No se encontraron mensajes"
Exit Sub
End If

' Copia cada titulo de mensaje en la celda
i = 2
On Error Resume Next
For Each Item In SubFolder.Items

'*********************************Aqui va toda la Macro************************************
Range("A2").Activate
ActiveCell.FormulaR1C1 = Item.Subject
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = Item.ReceivedTime
ActiveCell.Offset(0, 1).Select
Item.Body.Copy
ActiveCell..Paste

'*******************************************************************************************
cantidad = cantidad + 1
i = i + 1
Next Item


'Copia los correos procesados a la carpeta
For j = 0 To cantidad
For Each Item In SubFolder.Items
Item.Move ProceFolder
Next Item
Next j


'Mesnaje de procesado
MsgBox "Se han copiado " & cantidad & " de elementos a Excel"

' Limpiar memoria
Set objItem = Nothing
Set Atmt = Nothing
Set Item = Nothing
Set ns = Nothing
Set appOl = Nothing
Exit Sub
End Sub
[/CODE]

Muchas gracias por la ayuda.....

post-48990-145877004687_thumb.jpg

post-48990-145877004689_thumb.jpg

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • 58 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      166
    • Comments
      89
    • Reviews
      25

    Latest File
    By pegones1

    1    0

  • Crear macros Excel

  • Posts

    • Hola a todos. Necesito copiar la tabla que tengo en la hoja Automatico Efectivo para la hoja Datos y que cuando agregue mas datos a la hoja automatico efectivo se valla copiando para la hoja datos de manera automatica pero que solo se copien los valores y no las formulas y que en la hoja de datos comiencen los datos copiados a partir de C5 con los encabezados de la tabla. Gracias de antemano tabla .xlsm
    • Lo siento, no se como hacerlo. Te adjunto el fichero. bdLigaEndesa.xlsm
    • Antoni creo que sí, es por mi ansia de escribir 😅 Uno cuando es nobel siempre coge el camino mas largo. Muy bueno y breve. Saludos.  
    • tus datos de muestra no tienen un arreglo "tabular" apropiado como origen para una TD (p.ej.) - no puedes mezclar diferentes codigos bajo un mismo titulo/encabezado (entre otros) asumo/entiendo que no dispones (o sabrias utilizar) las funciones de matriz dinamica que se podrian usar (?) entonces, la propuesta de solucion va por el lado de las macros (vba), funciona en cualquier version de excel (creo que) por cualquier otra herramienta va a resultar en muchos/demasiados pasos de transformacion (?) - inhabilite tus codigos (con un Exit Sub/Function) - los sustitui por un modulo aparte con procedimientos y una UDF (en vez de la que refieres) - agregue 2 formas con las macros asignadas (filtrar / quitarfiltros) - cada boton lo pulsas (segun la intencion) cuando completes los criterios para filtrar - analiza/estudia la propiedad "CurrentRegion" para entender las "fronteras" que debes mantener en los datos de origen - el estilo de programacion es una "invitacion" a que profundices en su analisis (no lleva comentarios) - el entendido es que hay 6 "grupos" (cod 1, cant 1 >>> cod 6, cant 6) con 2 celdas por grupo prueba y comenta lo que no entiendas concatena x filtro (ayudaExcel).xlsm
    • explico rápido... tengo un formulario de una base donde capturo los datos de salidas de comisión este cuenta con 2 combobox, en el combobox1 de "DAS DE COMISIÓN" selecciono 1 dia ,2 dias ,3 días  o 4 días dependiendo los días de comisión,y en el combobox 2 me debería de cambiar los precios dependiendo la zona, al seleccionar el combobox 1 el dia  se van llenando los textbox de alimentación y hospedaje.. es decir..(1 día solo el textbox de "alimentación" del día 1(se llena solo la alimentación por que es solo un dia, no habria hospedaje ), ....... 2 días de comisión, el textbox de alimentación del primer día,hospedaje del 1er día y alimentación del segundo día ....,3 días, se carga el textbox de  alimentación del 1er día , hospedaje del 1er día ,alimentación y hospedaje del 2o día y solo alimentación del día 3) si es zona 1 llevan un precio(alimentación $458,hospedaje $650) pero si es zona 2 los precios cambian(alimentación $650 y hospedaje $950) el problema es cuando seleccionaba el combobox2 me llenaba varios textbox o me los borraba,solo quiero que el combobox2 solo cambie el precio dependiendo la zona aunque yo ponga 1 o 3 o 2 días de comisión me deje los textboxox de los dias de comision ...espero haberme explicado....de antemano muchas gracias BASE.xlsm
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy