• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Mailen - Outlook openen en sluiten

Status
Niet open voor verdere reacties.

HJ1

Gebruiker
Lid geworden
3 sep 2021
Berichten
73
Via een knop wil een aantal stappen doen maar het verzenden gaat helaas nog niet.
Op dit moment wordt er wel een nieuw email bericht opgesteld en verzonden alleen doordat de Outloop applicatie niet wordt geopend wordt de mail niet verzonden.

Nu zou ik nog toegevoegd willen hebben dat :

1) Outlook applicatie moet worden geopend
2) Nieuw Outlook bericht wordt al opgesteld
3) Outlook applicatie moet weer gesloten worden

Welke stukjes moeten nog toegevoegd worden??

Code:
Sub opslaan_mailen()


'OPSLAAN
Sheets(5).Select

    sPad = Sheets("Instellingen").Range("C22")
    sTempPad = Split(sPad, "\")(0)
    
    Do Until Len(Dir(sPad, vbDirectory)) > 0
        i = i + 1
        sTempPad = sTempPad & "\" & Split(sPad, "\")(i)
        If Len(Dir(sTempPad, vbDirectory)) = 0 Then MkDir sTempPad
    Loop
    
Application.DisplayAlerts = False
Dim stPath As String
stPath = Sheets("Instellingen").Range("C22")
stPath = stPath & "\"

With CreateObject("Scripting.Filesystemobject")
    If Not .FolderExists(stPath) Then .CreateFolder stPath
    End With
    ActiveWorkbook.SaveAs filename:=stPath & Sheets("Instellingen").Range("C19") & ".xlsm"
Application.DisplayAlerts = True


'DOCUMENT VERZENDEN 
'Application.Dialogs(xlDialogSendMail).Show
    Dim OutApp As Object
    Dim OutMail As Object

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    On Error Resume Next
    With OutMail
        .To = ""
        .CC = ""
        .BCC = ""
        .Subject = "Formulier(en) " & Sheets("Instellingen").Range("C20")
        .Body = Sheets("Instellingen").Range("C27") 'standaard tekst in mail
        .Attachments.Add ActiveWorkbook.FullName
        'You can add other files also like this
        '.Attachments.Add ("C:\test.txt")
        .display   'or use .Display or .Send (send is automatisch verzenden naar TO:"
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing


'document automatisch sluiten
If Workbooks.Count = 1 Then
ActiveWorkbook.Saved = True
Application.Quit
Else
ActiveWorkbook.Close False
End If

End Sub
 
Wijzig .Display in .Send, zoals in het commentaar er achter staat.
 
In het Outlook bericht moet nog handmatig een emailadres ingevuld worden.

Wanneer .Send gebruikt wordt dan is dit optie niet meer mogelijk en wordt het mailtje <leeg> verstuurd.
 
Dan vul je een mail adres en en klik je op Verzenden in Outlook.
Of je vult achter .To een email adres in.
 
Het is elke keer een ander emailadres die je vanuit je Adreslijst kunt ophalen, vandaar dat die niet standaard bij TO: ingevuld kan worden.

Enige idee met welke code je Outlook applicatie standaard kunt openen en na verzenden Outlook ook weer kunt sluiten?
 
Outlook wordt al geopend.
Dan vul je een adres is, klikt op verzenden en dan op het kruisjeom Outlook te sluiten.
 
Wanneer ik de macro uitvoer dan wordt er wel een Outlook bericht geopend maar Outlook zelf niet, dat is juist hetgeen ik nodig heb.
 
Dat hoeft toch ook niet?
Klik in het nieuwe bericht op de Aan knop om een adres te selecteren.
 
Dan komt het bericht in Postvak UIT te staan.

Bij welk deel zou outlook volgens jou dan geopend worden?
 
Het is volgens mij gelukt, ik heb deze code gebruikt om Outlook te openen:

VBA.Shell ("Outlook")
 
Zonde om daar een Shell opdracht voor te gebruiken.
 
Klik eens op de link in #10.
 
Helaas is me dat niet gelukt, maar al fijn dat het toch met die Shell actie werkt.
Nu wordt alleen Outlook in beeld getoond terwijl ik het eigenlijk geminimaliseerd zou willen hebben zodat Outlook niet direct in beeld komt te staan.

Heb diverse opties geprobeerd maar toch blijft Outlook in beeld staan.
Deze zou ik verwachten maar negatief:
VBA.Shell ("Outlook"), vbMinimizedNoFocus

VBA.Shell ("Outlook"), vbMinimizedFocus
VBA.Shell ("Outlook"), vbNormalFocus
VBA.Shell ("Outlook"), vbNormalNoFocus
 
Die focus instellingen voor de Shell opdracht gelden voor het command scherm, niet voor het te starten programma.

De manier om Outlook te starten waar ik naar verwees werkt prima.
Wel het stukje over Verwijzing ook gelezen en gedaan?

Code in document verwerkt:
 

Bijlagen

  • Open en minimaliseer Outlook.xlsm
    112,5 KB · Weergaven: 9
Instelling bij Reference staat al standaard aan.

Wanneer ik die probeer dan krijg ik via F8 al direct een melding bij de "Dim" regels :

"Compileer fout: Een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd."


Code:
Sub OpenOutlookFolder()
    Dim xOutlookApp As Outlook.Application
    Dim xNameSpace As Outlook.Namespace
    Dim xFolder As Outlook.Folder
    Dim xFolderType As OlDefaultFolders
    On Error Resume Next
    Set xOutlookApp = New Outlook.Application
    Set xNameSpace = xOutlookApp.Session
    Set xFolder = xNameSpace.GetDefaultFolder(olFolderInbox)
    xFolder.Display
    Set xFolder = Nothing
    Set xNameSpace = Nothing
    Set xOutlookApp = Nothing
    Exit Sub
End Sub
 
Dan geloof ik niet dat bij Reference de instelling goed staat.
Kijk in het document dat ik plaatste in #16.
Daarin is ook het minimaliseren geregeld.
 
Je bijlage doet het niet.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan