Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1788to1792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

IBM Notes oder Outlook?

IBM Notes oder Outlook?
02.11.2020 10:06:12
Klaus
Hi Leute,
bei uns wird grad von IBM Notes auf Outlook umgestellt. Kein Problem, für beides hab ich _ bereits das passende Makro parat.

Private Sub SendMail_Outlook(sSubject As String, sTo As String, sCC As String, sText As String)
'original Outlook Code by mumpel / www.herber.de / 11.04.2013 11:23:25
'http://www.herber.de/forum/messages/1308295.html
Dim olApp         As Object
Dim olOldBody     As String
'Make Email
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add myFile
End With
End Sub
Sub SendMail_Notes(sSubject As String, sTo As String, sCC As String, sText As String)
Dim Maildb As Object
Dim MailDbName As String
Dim MailDoc As Object
Dim Session As Object
Dim vAn As Variant
'Lotus Notes initialisieren
Set Session = CreateObject("Notes.NotesSession")
Set Maildb = Session.currentdatabase
Set MailDoc = Maildb.CreateDocument
MailDoc.Form = "Memo"
vAn = Split(sTo, " ; ")     'Empfänger Array
MailDoc.sendto = vAn        'Empängeradresse setzen
MailDoc.Subject = sSubject  'Betreff des Mails
MailDoc.SAVEMESSAGEONSEND = True
Set Workspace = CreateObject("Notes.NotesUIWorkspace") ' **durch das öffnen des Dokumentes  _
durch NotesUIWorkspace**
Call Workspace.EDITDOCUMENT(True, MailDoc)             ' **erreicht man das die eingestellte  _
Signatur aus den    **
Set doc = Workspace.CURRENTDOCUMENT                    ' **Lotus Notes Optionen eingefügt wird   _
_
Call doc.GOTOFIELD("Body")
Call doc.INSERTTEXT(sText)
'Call doc.Send(True)
Set Maildb = Nothing
Set MailDoc = Nothing
Set Session = Nothing
End Sub

Jetzt könnte ich natürlich die Auswahl, welches Programm zum versenden verwendet wird, dem User überlassen und bei fehlauswahl eine Fehlermeldung hinnehmen:
Sub SendWhat()
Dim sText As String
Dim sTo As String
Dim sCC As String
Dim sSubject As String
sTo = "Frank Farmer ; Karl Ransaier "
sCC = ""
sSubject = "Todays File"
If MsgBox("Haben Sie Outlook (ja) oder immer noch Notes (nein) ?", vbYesNo) = 6 Then
sText = "Dear Colleages 
find mail attached
more text with possbile html " Call SendMail_Outook(sSubject, sTo, sCC, sText) Else sText = "Dear Colleagues " & Chr(10) & "find attached something without html" Call SendMail_Notes(sSubject, sTo, sCC, sText) End If End Sub

Aber das ist nicht gut - erstens sind die meisten meiner Anwender bereits mental überfordert wenn sie den VBA-Editor nur sehen, zweitens gerneriert IBM Notes die Fehlermeldung (Memo not Found) innerhalb von Notes und nicht an VBA, mann muss also hin und her clicken.
Kann VBA direkt abfragen, welches Mailprogramm installiert ist? Also in Pseudocode so:
Sub SendWhat()
Dim sText As String
Dim sTo As String
Dim sCC As String
Dim sSubject As String
sTo = "Frank Farmer ; Karl Ransaier "
sCC = ""
sSubject = "Todays File"
Dim Outlook_Installed As Boolean
Dim Notes_Installed As Boolean
set Outlook_Installed = prüfe ob Outlook installiert ist
set Notes_installed = prüfe ob IBM Notes installiert ist
If Outlook_Installed Then
sText = "Dear Colleages 
find mail attached
more text with possbile html _ _ b>" Call SendMail_Outlook(sSubject, sTo, sCC, sText) Else If Notes_Installed Then sText = "Dear Colleagues " & Chr(10) & "find attached something without html" Call SendMail_Notes(sSubject, sTo, sCC, sText) Else MsgBox ("Es wurde kein Mailprogramm gefunden") End If End If End If End Sub

Kann mir dafür jemand korrekten Code geben?
LG,
Klaus

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: IBM Notes oder Outlook?
02.11.2020 10:33:54
Luschi
Hallo Klaus,
überprüfe doch per Vba, ob Outlook auf dem Rechner schon vorhanden ist:
Google-Suche: prüfen outlook installiert, z.B. h i e r
Gruß von Luschi
aus klein-Paris
AW: IBM Notes oder Outlook?
03.11.2020 02:04:22
Klaus
Theoretisch gut, mache ich aber nicht so - siehe den Einand von ChrisL.
Hansueli hat mir unten eine Methode über die REG gezeigt.
Dir trotzdem danke für die Mühe, und danke für das "für andere googeln" :-)
LG,
Klaus
AW: IBM Notes oder Outlook?
02.11.2020 10:48:09
ChrisL
Hi Klaus
Ich vermute, dass ein längerer Zeitraum beide Programme installiert bleiben. Jedenfalls ist dies bei mir so (Migration in einem Monat und trotzdem ist Outlook bereits installiert). D.h. die Existenz eines bestimmten Mailprogramms kann nicht als Kriterium dienen. Wenn dann müsste man das Default-Mailprogramm aus der Registry lesen, aber wo/wie weiss ich auch nicht genau.
https://social.msdn.microsoft.com/Forums/en-US/62ecfd1c-eb0f-4fad-b36b-d05c79ff1168/how-to-find-default-email-client?forum=vblanguage
(funktioniert vielleicht mit einer bestimmten Windows-Version, aber wohl kaum auf Mac)
Was ich dir eigentlich nahelegen möchte, ist die Hyperlink-Methode zu wählen. Wie es scheint macht dein Mailprogramm nichts besonderes (keine Anhänge, spezielle Formatierungen etc.), weshalb Hyperlink die einfachste und Versions-unabhängige Methode wäre.
ActiveWorkbook.FollowHyperlink ("mailto:hans@muster.com?subject=Titel&body=EinText")
cu
Chris
Anzeige
AW: IBM Notes oder Outlook?
03.11.2020 02:02:50
Klaus
Hallo Chris,
die Hyperlink Methode kannte ich noch gar nicht, versuche ich mich mal mit - in einem anderem Projekt.
In diesem (habe ich aus dem Beispiel natürlich heraus gekürzt) wird über viele 100 Zeilen ein HTML-STRING geschrieben und in die OUTLOOK übertragen.
Bei Notes habe ich kein HTML (oder weiss nicht wie), da habe ich die Texte einfach runter geschrieben und entsprechend unprofessionell / unformatiert sah es auch aus.
Aber für kurze Mails - so "Achtung, Auftrag xxx noch nicht abgeschlossen" - taugt die Hyperlink Methode bestimmt besser.
LG,
Klaus
AW: IBM Notes oder Outlook?
02.11.2020 11:22:44
EtoPHG
Hallo Klaus,
Probier mal (Code in ein Modul):
Public Function getMailClient() As String
Dim wScript As Object
Dim RegKey As String
Dim Key As String
Key = "HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\"
On Error Resume Next
Set wScript = CreateObject("WScript.Shell")
getMailClient = wScript.RegRead(Key)
End Function
Als Formel =getMailClient() wird der Name der default Mail-Applikation zurückgegeben.
Gruess Hansueli
Anzeige
AW: IBM Notes oder Outlook?
03.11.2020 02:00:23
Klaus
Sieht sehr geil aus, hansueli. Zumindest bei mir zuhause funktioniert es korrekt - scheint genau das zu sein was ich gesucht habe.
Fettes Like!
mfg,
Klaus
AW: IBM Notes oder Outlook?
06.11.2020 09:22:14
Klaus
Es funktioniert, vielen Dank.
Erstaunlicherweise war unsere IT schneller als ich und hat bereits alle User auf Outlook umgestellt. Naja, speichere das mal für die Zukunft.
LG,
Klaus

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige