Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1280to1284
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

Outlook aus Excel-VBA (online-excel.de ; Ramses)

Outlook aus Excel-VBA (online-excel.de ; Ramses)
18.10.2012 14:26:56
Klaus
Hallo Forum,
auf Online-Excel hat Ramses einen Code vorgestellt, mit dem sich Excel-Tabellen per VBA über Outlook verschicken lassen.
http://www.online-excel.de/excel/singsel_vba.php?f=86
Wenn ich den einfach mit Copy und Paste übernehme, ist mir bereits geholfen. Nur sehe ich im Code ein paar Zeilen, die vielleicht an 2010 angepasst werden müssten .. und dafür ersuche ich das Forum um Hilfe!

Sub Excel_Workbook_via_Outlook_Senden()
Dim MyMessage As Object, MyOutApp As Object
Dim Qe As Integer
Dim AWS As String
'Testen ob die aktuelle Mappe schon gespeichert wurde
If ThisWorkbook.Saved = False Then
'Die letzten Änderungen wurden noch nicht gespeichert
Qe = MsgBox("Diese Mappe wurde noch nicht gespeichert, und kann nicht versandt werden!"  _
_
_
& Chr$(13) & "Soll die Datei gespeichert werden?", vbInformation + vbYesNo, " _
Sendefehler")
If Qe = vbNo Then
'Abbruch durch Benutzer
MsgBox "Sendevorgang abgebrochen"
Exit Sub
Else
'Prüfen ob die Datei schon mal gespeichert wurde
If Right(ThisWorkbook.Name, 3)  "xls" Then
'Nein > Speicherdialog aufrufen
Application.Dialogs(xlDialogSaveAs).Show
Else
'Speichern
ThisWorkbook.Save
End If
End If
End If
'Aktive Arbeitsmappe wird als mail gesendet
'Übergabe des Mappennames an die Variable
AWS = ThisWorkbook.FullName
'Outlook Object erstellen
Set MyOutApp = CreateObject("Outlook.Application")
'Outlook Nachricht erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Empfänger
.To = "irgendwer@provider"
'Betreff
.Subject = "Testmeldung von Excel2000 " & Date & Time
.Attachments.Add AWS
'Hier wird ein normaler Text erstellt
.Body = "Mail für normalen Textempfang"
'Hier wird eine HTML Mail erstellt
'Dies kann zu Problemen führen, wenn der Empfänger
'nur TEXT Dateien empfangen darf.
'.HTMLBody = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt und gesendet
'.Send
End With
'Outlook schliessen
MyOutApp.Quit
'Variablen leeren
Set MyOutApp = Nothing
Set MyMessage= Nothing
End Sub

der Teil der Speicherroutine

'Prüfen ob die Datei schon mal gespeichert wurde
If Right(ThisWorkbook.Name, 3)  "xls" Then

dürfte seit der Einführung von *.xlsx; *.xlsm usw nicht mehr funktionieren. Einfach auf "4" und "xlsm" hochsetzen kann ich die aber nicht, da die Datei ja auch *.xls heissen könnte ... was ist hier zu tuen?
Ganz am Ende schließt Outlook mit

'Outlook schliessen
MyOutApp.Quit

Hierdraus hätte ich gerne eine IF-Bedingung, die Outlook nur schließt wenn Excel es auch öffnen musste (ich hab den ganzen Tag Outlook offen, die meisten Kollegen auch). Wie kann ich den Pseudocode "IF Outlook=Open then ToQuitVariable = FALSE" denn VBA konform umsetzen?
Grüße und dank im Vorraus,
Klaus M.vdT.

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook aus Excel-VBA (online-excel.de ; Ramses)
18.10.2012 14:42:27
Michael
Für Deine Speicherroutine mußt Du die Dateiendung ermitteln.
Dies geht mit

Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") + 1)

und das Ergebnis dann vergleichen, das schaut dann so aus

Select Case Mid(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") + 1)
Case Is  "XLSX", "XLS", "XLSM", "XLSB"
'Hier Dein Code
End Select
Wird am Ende wirklich Outlook geschlossen?
Denke er macht nur die von Dir erzeugte Instanz zu!?
Michi

AW: Outlook aus Excel-VBA (online-excel.de ; Ramses)
18.10.2012 14:57:05
Michael
Zum Speichern hab ich da noch was.
Wenn es eine Neue Datei ist, diese aber noch nicht gespeichert wurde, ist die Variable ThisWorkbook.Path noch leer.
Dann würde der Aufruf einfacher lauten:
if ThisWorkbook.Path = "" Then 
HTH
Michi

Anzeige
AW: Outlook aus Excel-VBA (online-excel.de ; Ramses)
18.10.2012 15:37:50
Klaus
Hallo Michael,
vielen Dank, das hilft mir weiter! (Der Teil mit dem Speichern).
Ja, es wird wirklich das eine Outlook geschlossen. Ich sehe auch keine andere Instanz von Outlook, wenn ich den Code im Einzelschritt abgehe.
Das ist unter verwendung des .Display Kommandos gleich doppelt doof, da eben auch die (noch nicht versendte) Mail mit geschlossen wird.
Grüße,
Klaus M.vdT.

AW: Outlook aus Excel-VBA (online-excel.de ; Ramses)
18.10.2012 16:38:45
mumpel
Hallo!
Office Telefon- und Mailfunktion. Mit diesem Add-In kannst Du in jedem Format speichern und versenden. Sogar als ZIP-Archiv packen und dann dieses ZIP-Archiv senden. Lies vor der Nutzung bitte alle Anleitungen durch, die sich im ZIP-Archiv befinden.
Gruß, René
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige