Migrar macro de VBA a LibreOffice

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

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.

Saludos

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

Set MItem = OutlookApp.CreateItem(olMailItem)

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