• 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.

Outmail.Display probleem

Status
Niet open voor verdere reacties.

AD1957

Verenigingslid
Lid geworden
27 feb 2016
Berichten
1.990
Ik krijg het niet voor elkaar om outlook geopend te houden.
Bij .Display in de code verwacht ik dat het venster van Outlook open blijft staan.
Echter: het outlook venster sluit direct/ of vrij snel en staat dan te knipperen in de werkbalk START

Code:
Private Sub CommandButton1_Click()

Dim strbody As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
    
      strbody = "<B>BETREFT: </B>" & "onderhoud aan gastoestel fabrikaat/type: " & "<B>" & UserForm6.TextBox13.Value & "</B><br><br>" & _
              "Geachte Heer/Mevr. " & Sheets("Blad1").Range("K1").Value & "<br><br>" & _
              "Het is inmiddels weer een jaar of zelfs nog langer geleden dat wij onderhoud hebben gepleegd aan bovengenoemd gastoestel.<br>" & _
              "Om " & "<B>VEILIGHEID </B>" & "en een goed " & "<B>RENDEMENT </B>" & "te kunnen blijven garanderen is jaarlijks onderhoud noodzakelijk.<br><br>" & _
              "Wij hebben ons de vrijheid genomen om een nieuw onderhoud in te plannen op dd: " & "<H1><B>" & TextBox1.Value & " --  " & ComboBox1.Value & "</H1></B><br><br>" & _
              "Mocht deze dag en/of het tijdstip niet gelegen komen dan verzoeken wij u beleefd contact met ons op te nemen.<br><br>" & _
              "Met vriendelijke groet.<br><br>" & _
              "Uw onderhoudsbedrijf<br><br>" & _
               ComboBox2.Value

    

    With OutMail
        
        .To = ActiveCell.Offset(, 9).Value 'UserForm6.TextBox19.Value
        .Subject = "ONDERHOUD GASTOESTEL"
        .HTMLBody = strbody
        .Display
'        .Save
'        .Send
'        Application.WindowState = xlMaximized
    End With
    

Set OutMail = Nothing
Set OutApp = Nothing

 With DatumOnderhoud
   .TextBox1 = ""
   .ComboBox1 = ""
   .ComboBox2 = ""
   .Hide
End With

End Sub

In het voorbeeldbestand:
klick op een debiteurennummer in kolom A
Dan knop "mailen afspraak voor onderhoud"
 

Bijlagen

  • ONDERHOUD helpmij.xlsb
    177,7 KB · Weergaven: 25
Laatst bewerkt:
Ik gebruik Microsoft Office 2016 Professional Plus, windows 10
Genoemde code gebruik ik in meerdere bestanden.
Het vreemde is:
Soms werkt het wel, dan weer niet, soms verschijnt outlook maar zeer kort en krijg ik niet de kans om op verzenden te klicken.
Outlook wordt niet afgesloten maar wordt geminimaliseerd.
Ik zal eens op de sites die jij aanbeveelt gaan rondsnuffelen, verwacht echter niet hier een oplossing te vinden.

p.s.
Als ik een msgbox voor de code zet schijnt het wel te werken.
Code:
msgbox"test"
set outmail = nothing
i.p.v. .Display .Send of .Save gebruiken werkt ook normaal
 
Laatst bewerkt:
Hallo AD1957

Als ik dit stukje code weghaalt dan werkt het wel ik denk dat de code daardoor het display
scherm naar de achtergrond of te wel minimized naar de taakbalk

Code:
 With DatumOnderhoud
   .TextBox1 = ""
   .ComboBox1 = ""
   .ComboBox2 = ""
   .Hide
End With

Dus vang dat stukje code op een andere manier af
 
Laatst bewerkt:
Hoi Willem,
Ik heb de code aangepast, schijnt te werken.:thumb:
Nu nog eens kijken hoe dit op te lossen in de andere bestanden.

Code:
Private Sub CommandButton1_Click()

Dim strbody As String


UserForm6.Hide
Sheets("Blad1").Unprotect "dan1008"
Sheets("Blad1").Range("L1").Value = TextBox1.Value
Sheets("Blad1").Range("M1").Value = ComboBox1.Value
Sheets("Blad1").Range("N1").Value = ComboBox2.Value
Sheets("Blad1").Protect "dan1008"

Unload DatumOnderhoud

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
    
      strbody = "<B>BETREFT: </B>" & "onderhoud aan gastoestel fabrikaat/type: " & "<B>" & UserForm6.TextBox13.Value & "</B><br><br>" & _
              "Geachte Heer/Mevr. " & Sheets("Blad1").Range("K1").Value & "<br><br>" & _
              "Het is inmiddels weer een jaar of zelfs nog langer geleden dat wij onderhoud hebben gepleegd aan bovengenoemd gastoestel.<br>" & _
              "Om " & "<B>VEILIGHEID </B>" & "en een goed " & "<B>RENDEMENT </B>" & "te kunnen blijven garanderen is jaarlijks onderhoud noodzakelijk.<br><br>" & _
              "Wij hebben ons de vrijheid genomen om een nieuw onderhoud in te plannen op dd: " & "<H1><B>" & TextBox1.Value & " --  " & ComboBox1.Value & "</H1></B><br><br>" & _
              "Mocht deze dag en/of het tijdstip niet gelegen komen dan verzoeken wij u beleefd contact met ons op te nemen.<br><br>" & _
              "Met vriendelijke groet.<br><br>" & _
              "Uw onderhoudsbedrijf<br><br>" & _
               ComboBox2.Value

    

    With OutMail
        .To = ActiveCell.Offset(, 9).Value 'UserForm6.TextBox19.Value
        .Subject = "ONDERHOUD GASTOESTEL"
        .HTMLBody = strbody
        .Display
    End With
    

Set OutMail = Nothing
Set OutApp = Nothing


End Sub
 
Laatst bewerkt:
Waarom niet zo?
Code:
Private Sub CommandButton1_Click()
  Dim strbody As String
  UserForm6.Hide
  With Sheets("Blad1")
    .Unprotect "dan1008"
    .Range("L1").Resize(, 3) = Array(TextBox1.Value, ComboBox1.Value, ComboBox2.Value)
    .Protect "dan1008"
  End With
  Unload DatumOnderhoud
  strbody = "<B>BETREFT: </B>" & "onderhoud aan gastoestel fabrikaat/type: " & "<B>" & UserForm6.TextBox13.Value & "</B><br><br>" & _
              "Geachte Heer/Mevr. " & Sheets("Blad1").Range("K1").Value & "<br><br>" & _
              "Het is inmiddels weer een jaar of zelfs nog langer geleden dat wij onderhoud hebben gepleegd aan bovengenoemd gastoestel.<br>" & _
              "Om " & "<B>VEILIGHEID </B>" & "en een goed " & "<B>RENDEMENT </B>" & "te kunnen blijven garanderen is jaarlijks onderhoud noodzakelijk.<br><br>" & _
              "Wij hebben ons de vrijheid genomen om een nieuw onderhoud in te plannen op dd: " & "<H1><B>" & TextBox1.Value & " --  " & ComboBox1.Value & "</H1></B><br><br>" & _
              "Mocht deze dag en/of het tijdstip niet gelegen komen dan verzoeken wij u beleefd contact met ons op te nemen.<br><br>" & _
              "Met vriendelijke groet.<br><br>" & _
              "Uw onderhoudsbedrijf<br><br>" & _
               ComboBox2.Value

  With CreateObject("Outlook.Application").CreateItem(0)
    .To = ActiveCell.Offset(, 9).Value 'UserForm6.TextBox19.Value
    .Subject = "ONDERHOUD GASTOESTEL"
    .HTMLBody = strbody
    .Display
  End With
End Sub
 
Hoi VenA,

Je hebt gelijk, minder tikwerk. Alhoewel kan redelijk snel tikken:D

Ik zet de vraag als opgelost.
 
Vandaag toch weer hetzelfde probleem.
Zelf krijg ik het alleen opgelost door het toevoegen van een msgbox ( zie#3)
Code:
msgbox"MAIL IS VERZONDEN"
Set OutMail = Nothing
Set OutApp = Nothing

Heeft iemand nog een andere oplossing?
 
Laatst bewerkt:
Vervang
Code:
  With CreateObject("Outlook.Application").CreateItem(0)
    .To = ActiveCell.Offset(, 9).Value 'UserForm6.TextBox19.Value
    .Subject = "ONDERHOUD GASTOESTEL"
    .HTMLBody = strbody
    .Display
  End With

Door
Code:
    Dim objOutlook As Object

    On Error Resume Next
    Set objOutlook = GetObject(, "Outlook.Application")
    On Error GoTo 0

    If objOutlook Is Nothing Then
        Set objOutlook = CreateObject("Outlook.Application")
    End If

    With objOutlook.CreateItem(0)
        .To = ActiveCell.Offset(, 9).Value    'UserForm6.TextBox19.Value
        .Subject = "ONDERHOUD GASTOESTEL"
        .HTMLBody = strbody
        .Display
    End With

de code controleert als er maar een sessie van outlook loopt, meerdere outlooksessies kunnen met elkaar in conflict raken.
 
Laatst bewerkt:
Goedemiddag alphamax,

Ik heb de code in het voorbeeldbestand getest, het werkt.:thumb:
Nu nog kijken of de aanpassing in mijn andere bestanden ook werkt.
Hou je op de hoogte.
 
Goedemorgen alphamax,

Gisteren heb ik jouw code toegepast en het liep goed.

ECHTER!!!!
Na sluiten en heropenen van het bestand gaat het weer mis.

HEEL VREEMD IS
Als ik de programmacode inzie (verander helemaal niets!!!!),
dan werkt het weer als een tierelier.
Ik heb het nu div. malen geprobeerd.
Openen bestand: code werkt niet.
Ik controleer de code: en het werkt!!!!!!:confused::confused:

p.s. de oude code werkt dan ook
 
Laatst bewerkt:
Dan zal het ergens aan jouw systeem liggen.
De code die jij gebruikt wordt al tientallen jaren door honderden gebruikt, zonder noemenswaardige problemen.

Dus jouw probleem is.
De VBA code open een nieuw bericht, en na een poosje wordt dit bericht geminimaliseerd en staat onder in de taakbalk te knipperen.
Hoeveel knoppen staan dan in de taakbalk, 2?, een van outlook, en een van nieuw bericht?
 
Laatst bewerkt:
Misschien houdt outlook de focus door het toevoegen van dit regeltje op het eind.
Code:
AppActivate "ONDERHOUD GASTOESTEL"
"ONDERHOUD GASTOESTEL" staat bovenin het venster van het nieuwe bericht en is hetzelfde als .subject
 
Het bericht wordt direct geminimaliseerd en links staat maar 1 knop van outlook( even knipperend)
Wel verschijnt er rechts in de taakbalk een icoontje met de melding (outlook wordt door een ander programma gebruikt,u verbreekt de verbinding etc........
p.s. bij gebruik van .Save of .Send zijn er geen problemen.
Ik sta werkelijk voor een raadsel.
 
Sorry, laatste bericht gemist.
Waar moet ik dat stukje code dan plaatsen? direct achter .Display ??
 
Ik ook, maar ik kan je verder niet helpen, omdat ik mijn oude pc je probleem niet kan reproduceren, succes.
 
Sorry, laatste bericht gemist.
Waar moet ik dat stukje code dan plaatsen? direct achter .Display ??
ja dat kan, maar netter is om het te plaatsen na de "end with" daarna.
 
Ik zal beide voorstellen eens uitproberen.
Je hoort van me.
 
Ik heb het bestand nu div. malen gesloten en weer geopend en het blijft werken.:thumb::thumb:
Code:
    With objOutlook.CreateItem(0)
        .To = ActiveCell.Offset(, 9).Value 'UserForm6.TextBox19.Value
        .Subject = "ONDERHOUD GASTOESTEL"
        .HTMLBody = strbody
        .Display
    End With
    
AppActivate "ONDERHOUD GASTOESTEL"

Nu nog eens kijken of ik de andere bestanden ook aan de praat krijg.
Zal dan per code dit stukje moeten aanpassen.
Code:
AppActivate "ONDERHOUD GASTOESTEL"

Hartelijk dank en ik zal nog laten weten of het lukt.
 
Hallo alphamax,

Op eentje na heb ik alle codes werkend.
Die ene komt doordat er nogal veel code na de .Display staat.
Ik zal daar nog een oplossing voor zoeken, waarschijnlijk de hele code anders opzetten.
Mocht het niet lukken dan zal ik me weer melden.

Nogmaals dank,
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan