Haz tu Pregunta
0

Migrar macro de VBA a LibreOffice

preguntado 2020-07-27 14:36:35 +0200

updated 2020-07-27 15:30:26 +0200

Imagen Gravatar de mauricio

Hola buenos días, lo primero de todo MIL GRACIAS ya solo por leerme.

En el trabajo teníamos excel y ahora nos estan cambiando a libreoffice, y necesitaria ayuda para poder hacer que esa macro funcione en libre office.

No tengo mucha idea de macros, pero según lo que iba leyendo por internet iba pribando pero no hay manera.

Estoy un poco desesperado porque esto tengo que ponerlo en marcha a primeros de septiembre y si no lo consigo tendria que mandar todos los dias unos 30 correos de manera individual.

De nuevo muchas gracias

Espero vuestra respuesta.

Un saludo.

> Sub EnviarEmail()
> '
> ' Declaramos variables
> '
> Dim OutlookApp As Outlook.Application
> Dim MItem As Outlook.MailItem
> Dim cell As Range
> Dim Asunto As String
> Dim Correo As String
> Dim Destinatario As String
> Dim Clave As String
> Dim Msg As String
>     '
>     Set OutlookApp = New Outlook.Application
>     '
>     'Recorremos la columna EMAIL
>     '
>     For Each cell In Range("B11:B40")
>         '
>         'Asignamos valor a las variables
>         '
>         Asunto = "Contraseña"
>         Destinatario = cell.Offset(0, -1).Value
>         Correo = cell.Value
>         Clave= Format(cell.Offset(0, 1).Value, "###0")
>         Fecha = Format(cell.Offset(0, 2).Value, "dd/mmm/yyyy")
>         '
>         'Cuerpo del mensaje
>         '
>         Msg = "Buenos días" & Destinatario & vbNewLine & vbNewLine
>         Msg = Msg & "Su nueva contraseña es..... "
>         Msg = Msg & Clave & vbNewLine & vbNewLine
>         Msg = Msg & "Nota:" & vbNewLine
>         Msg = Msg & "Las claves se generan de forma aleatoria."
>         '
>         Set MItem = OutlookApp.CreateItem(olMailItem)
>         With MItem
>             .To = Correo
>             .Subject = Asunto
>             .Body = Msg
>             .Send
>             '
>         End With
>         '
>     Next
>     '
> End Sub
edit re-etiquetar marcar como ofensivo cerrar fusionar delete

2 Respuestas

Ordenar por » viejos nuevas más votado
0

respondido 2020-07-28 09:55:57 +0200

Hola buenos días,lo primero gracias por responder tan rapido. He cambiado y me da error en:

For Each cell In Range("B11:B20") (error de ejecucion basic) 35 Range

si pues voy a instalar tu extension y a ver si conseguimos que funcione.

De verdad mil gracias por tu tiempo.

Un abrazo

edit marcar como ofensivo delete enlace mas
0

respondido 2020-07-27 16:23:32 +0200

Imagen Gravatar de mauricio

updated 2020-07-27 16:27:38 +0200

Hablo de memoria por que tienes muchos, muchos años que no uso Windows, y no tengo a la mano uno donde probar, pero...

intentar reemplazar:

Dim OutlookApp As Outlook.Application
Dim MItem As Outlook.MailItem

Set OutlookApp = New Outlook.Application

por:

Dim OutlookApp as Object 
Dim MItem As Object
Set OutlookApp = CreateObject("Outlook.Application")

y pruebas...

Toma en cuenta que el soporte para VBA en LibreOffice es muy básico, siempre que sea posible, recomiendo migrar toda la macro.

Si no funciona, y puedes instalar mi extensión Zaz-EasyMacro, puedo guiarte en como migrar esta macro para que envíes tus correos. https://gitlab.com/mauriciobaeza/zaz-...

Saludos

P.D. No veo donde se declara la variable olMailItem

Set MItem = OutlookApp.CreateItem(olMailItem)
edit marcar como ofensivo delete enlace mas
Ingresa/Regístrate para Contestar

Herramientas de Preguntas

1 seguidor

Estadisticas

Preguntado: 2020-07-27 14:36:35 +0200

Visto: 22 veces

Ultima actualización: Jul 28