Delen via

Macro blijft hangen op Set objOutlook = CreateObject("Outlook.Application")

Anoniem
2023-07-10T01:06:43+00:00

Ik gebruik deze macro al heel lang. Plotseling heb ik een probleem. Op de regel "Set objOutlook =  CreateObject("Outlook.Application") blijft de macro hangen.

    Dim objOutlook As Object

     Dim objMail As Object  

     Dim strAan As String

     Dim strCC As String

     Dim strOnderwerp As String

     Dim strBericht As String

     Dim strAttachment As String

     Dim oAccount As Object

Hier blijft de macro hangen :

  Set objOutlook = CreateObject("Outlook.Application")

     Set objMail = objOutlook.CreateItem(0)

Er is niets gewijzigd in mijn macro's, dus moet er een andere reden zijn waarom er nu een probleem ontstaat. Ik gebruik deze macro regelmatig en het heeft nooit problemen gegeven.

Microsoft 365 en Office | Excel | Overige | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

Antwoord geaccepteerd door vraagauteur

  1. Anoniem
    2023-07-21T09:00:41+00:00

    Ik hoop dat op zijn minst weet wat de vbe is ==> visual basic editor dan in het menu "extra" klikken op verwijzingen en outlook zoeken.

    Eventueel eens een bestand delen kan ook helpen.

    Waarom heb je trouwens nergens vermeld welke versie van Excel je gebruikt. dat is belangrijke info!

    Was dit antwoord nuttig?

    1 persoon vond dit antwoord nuttig.
    0 opmerkingen Geen opmerkingen

8 extra antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2023-07-11T12:20:08+00:00

    Uw code werkt voor mij wanneer ik het test. (Ik heb commentaar gegeven op de bijlage-opties)

    De macro blijft hangen, geen fouten? Gebruik de suggestie van Jan om te controleren of Outlook open is - blijft het nog hangen?

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2023-07-11T04:41:17+00:00

    Getobject werkt enkel als het object, hier outlook, al gestart is

    Daarom werk ik met deze code

    Public oOutlook As Outlook.Application

    Function fMakeOutlookobject() As Boolean

    Dim blnOutlookWasActief As Boolean

    On Local Error Resume Next

    Set oOutlook = GetObject(, "Outlook.Application")

    If Err <> 0 Then

    Err.Clear 
    
    Set oOutlook = CreateObject("Outlook.Application") 
    
    blnOutlookWasActief = False 
    
    If Err &lt;&gt; 0 Then 
    
      MsgBox "Kan outlook niet openen" & vbCrLf & Err.Description, vbSystemModal 
    
      Exit Function 
    
    End If 
    

    Else

    blnOutlookWasActief = True 
    

    End If

    fMakeOutlookobject = blnOutlookWasActief

    End Function

    Extra: maak Uw bericht eens op deze manier

    strbericht = WorksheetFunction.TextJoin(vbCrLf, False, Range("AA1:AA15"))

    Minder plaats en duidelijker :)

    Jan

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2023-07-11T00:52:10+00:00

    Hallo Diane,

    Ik krijg geen foutmelding. De macro blijft hangen op deze regel: Set objOutlook = CreateObject("Outlook.Application"). Ik moet dan Excel via Taakbeheer afsluiten, want de zandloper blijft op mijn scherm staan.

    GetObject heeft een andere syntaxis. Hoe zou ik deze moeten gebruiken in deze macro om daarmee Outlook Office 365 te openen?

    Ik hoop dat met de totale macro je begrijpt hoe de macro exact functioneert en al heel lang zonder problemen is gebruikt, met CreateObject.

    Ik gebruik deze macro al enkele jaren (met Office 365) en heb eerder nooit problemen gehad.

    Dit is de totale macro:

    Sub VerstuurMail()

     Dim objOutlook As Object 
    
     Dim objMail As Object 
    
     Dim strAan As String 
    
     Dim strCC As String 
    
     Dim strOnderwerp As String 
    
     Dim strBericht As String 
    
     Dim strAttachment As String 
    
     Dim oAccount As Object 'Outlook.Account 
    
     Set objOutlook = CreateObject("Outlook.Application") 
    
     Set objMail = objOutlook.CreateItem(0) 
    
    Sheets("factuur").Select 
    
     strAan = [O2] 
    
     strOnderwerp = [AA22] 
    
     strBericht = [AA1] & vbCrLf & \_ 
    
           [AA2] & vbCrLf & \_ 
    
           [AA3] & vbCrLf & \_ 
    
           [AA4] & vbCrLf & \_ 
    
           [AA5] & vbCrLf & \_ 
    
           [AA6] & vbCrLf & \_ 
    
           [AA7] & vbCrLf & \_ 
    
           [AA8] & vbCrLf & \_ 
    
           [AA9] & vbCrLf & \_ 
    
           [AA10] & vbCrLf & \_ 
    
           [AA11] & vbCrLf & \_ 
    
           [AA12] & vbCrLf & \_ 
    
           [AA13] & vbCrLf & \_ 
    
           [AA14] & vbCrLf & \_ 
    
           [AA15] 
    
     strAttachment = [O5] 
    
     For Each oAccount In objOutlook.Session.Accounts 
    
        If oAccount.SmtpAddress = [AA19] Then 
    
        Exit For 
    
     End If 
    
        Set oAccount = Nothing 
    
     Next 
    
    If Not oAccount Is Nothing Then 
    
     With objMail 
    
         .To = strAan 
    
         .Subject = strOnderwerp 
    
         .Body = strBericht 
    
         If Len(strAttachment) &gt; 0 Then 
    
            If Len(Dir(strAttachment)) &gt; 0 Then 
    
               .Attachments.Add strAttachment 
    
            End If 
    
         End If 
    
         Set .sendUsingAccount = oAccount 
    

    Dim dezefakt As String

    dezefakt = Range("H15").Value

         .Send 
    
     End With 
    
    End If 
    
     Set objMail = Nothing 
    
     Set objOutlook = Nothing 
    
    Sheets("uren").Select 
    
     End Sub
    

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  4. Anoniem
    2023-07-10T03:12:48+00:00

    Hallo, ik ben Diane en zal je vandaag graag helpen.

    Wat is de foutmelding?

    Wordt Outlook altijd uitgevoerd wanneer u de macro uitvoert? Probeer GetObject te gebruiken in plaats van createobject- is dat ook fout?

    Als je vragen hebt, aarzel dan niet om ze te stellen.

    --Diane

    Geef iets terug aan de gemeenschap. Help de volgende persoon met dit probleem door aan te geven of dit antwoord uw probleem heeft opgelost. Klik onderaan op Ja of Nee.

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen