Al ejecutar macro de excel me dice error 429 activex no puede crear el objeto

Tengo un libro excel con una macro programada, que al ejecutarla lo que hace es adjuntarme un archivo a outlook para poder ser enviado por mail, en una de las pc que ejecute dico macro funciona perfecto, pero en una de la spc la misma macro me dice error 429 activex no puede crear el objeto, en la línea donde de la macro donde debería abrirme el programa, ¿por qué podría ser?

1 Respuesta

Respuesta
1

Hay una actualización de windows, que desactivo los controles activex. Busca todos los archivos exd la pc, incluso en carpetas ocultas y archivos ocultos. Renombra los archivos y vuelve a probar.

Los archivos exe? No entiendo... El win que uso es el xp

Disculpa, tienes que buscar archivos con extensión exd

Con el buscador del explorador de windows, buscar todos los archivos que terminan en "exd" desde la carpeta inicial C:

Te va a aparecer una lista de archivos, por ejemplo:

A cada uno de esos archivos cambia el nombre, yo le puse el mismo nombre de archivo y "_resp"

Ya que hayas realizado los cambios, entra nuevamente a excel y prueba.

Antes que nada te re agradezco la dedicación, lo hice, solo me arroja 1 archivo, le cambie el nombre pero nada... me sigue tirando el mismo error en la línea

Set dam = CreateObject("outlook.application").createitem(0)

Es muy raro, ¿qué podrá ser?

La macro completa es la siguiente

Sub CAJA()
    ruta = ThisWorkbook.Path & "\"
    ARCH1 = ruta & "arqueo enero.xlsm"
    ARCH2 = ruta & "enero.xlsm"
    ActiveWorkbook.SaveCopyAs 1
    Set dam = CreateObject("outlook.application").createitem(0)
    dam.To = "CAJA"
    dam.Subject = "CAJA"
    dam.Body = ""
    dam.Attachments.Add ARCH1
    dam.Attachments.Add ARCH2
    dam.Display
End Sub

¿Y en esa pc si tienen instalada el outlook por default para enviar correos?

Si, de hecho tengo otra macro en otro archivo con la función de que me envíe el archivo en uso que si funciona sin problema, es muy raro...

¿

Habrá otra manera de expresarlo?

Puedes poner la otra macro que si funciona

Lo probé, pero no me funciona ya que esta grabada, y solo me adjunta 1 archivo, y necesito que valla con los 2 archivos. Salvo que se pueda modificar el código para que me adjunte el archivo que estoy trabajando y luego el otro, pero no se como!

Pon la macro que sí funciona, para revisarla y hacerle los cambios

La coloque, pero no me adjunta los 2 archivos, solo el archivo activo...

esta seria la que me funciona

Application.Dialogs(xlDialogSendMail).Show

pero no logro que me adjunte el otro archivo!

Esta macro, solamente es para enviar el archivo activo, no tiene parámetro para anexar otro archivo.

Application. Dialogs

Otra opción es que lo envíes por gmail, por ejemplo, cambia correo y passwd por los datos de tu correo de gmail

En la parte de archivos pon la ruta y el nombre de archivo, una línea por cada archivo, los nombres de la ruta y de los archivos deberán estar completos.

Sub SendMail_Gmail()
'Mod.Por.DAM
    Dim Email As CDO.Message
    correo = "[email protected]"
    passwd = "clave"
    Set Email = New CDO.Message
    Email.Configuration.Fields(cdoSMTPServer) = "smtp.gmail.com"
    Email.Configuration.Fields(cdoSendUsingMethod) = 2
    With Email.Configuration.Fields
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = CLng(465)
        .Item("http://schemas.microsoft.com/cdo/" & "configuration/smtpauthenticate") = Abs(1)
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 30
        .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = correo
        .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = passwd
        .Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    End With
    With Email
        .To = "[email protected]"
        .From = correo
        .Subject = "asunto"
        .TextBody = "cuerpo"
        'archivos
        .AddAttachment "c:\trabajo\hola.txt"
        .AddAttachment "c:\trabajo\zped.txt"
        .Configuration.Fields.Update
        On Error Resume Next
        .Send
    End With
    If Err.Number = 0 Then
        MsgBox "El mail se envió con éxito"
    Else
        MsgBox "Se produjo el siguiente error: " & Err.Number & " " & Err.Description
    End If
    Set Email = Nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas