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

Aus Excel definierten Email account ansprechen

Aus Excel definierten Email account ansprechen
11.09.2015 10:45:24
Matthias
Hallo
nachfolgend mein Code.
Sub SeriendruckVS()
'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
Dim olOldBody As String
Dim wksData As Worksheet, wksPrint As Worksheet
Dim iRow As Integer
Dim FolderPDF As String, File_PDF As String
On Error GoTo Fehler
Set wksData = Worksheets("Mitgliederdaten")
Set wksPrint = ActiveWorkbook.Worksheets("VS")
iRow = 7
ActiveWorkbook.Worksheets("VS").Unprotect PWs
FolderPDF = ActiveWorkbook.Path & Application.PathSeparator & "_11_E-Mail"
If Dir(FolderPDF, vbDirectory) = "" Then
VBA.MkDir FolderPDF
End If
FolderPDF = FolderPDF & Application.PathSeparator
Do Until IsEmpty(wksData.Cells(iRow, 1))
If UCase(wksData.Cells(iRow, 22).Value) = "C" Then 'Wert in Spalte D prüfen
wksPrint.Range("T1").Value = wksData.Cells(iRow, 1).Value 'lfd. Nr
wksPrint.Calculate '? - wenn Formelberechnungen aktualisiert werden müssen
File_PDF = FolderPDF & wksPrint.Range("A6").Text & "_" _
& wksPrint.Range("A7").Text & ".pdf" 'Zellen und verbindenden Text ggf. anpassen
wksPrint.ExportAsFixedFormat Type:=xlTypePDF, Filename:=File_PDF, _
Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=False
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)
With strEmail
Set .SendUsingAccount = .Session.Accounts.Item(2)
olOldBody = .htmlBody
.To = wksData.Cells(iRow, 10).Value
.Subject = "Vertrag Amateursportler" & " " & Worksheets("GD").Range("$W$2"). _
Value
.body = "Hallo" & " " & wksPrint.Range("A7").Value & "," & Chr(13) & Chr(13) &  _
_
"anbei dein Vertrag als Amateursportler" & " " & Worksheets("GD").Range("$W$2").Value & " " & " _
zur weiteren Verwendung."
.Display    'Mail nur Anzeigen Nicht senden
VBA.SendKeys "^{END}", True
'Einfügen einer bestimmten Signatur
strSignatur = "SKK Willmering"
'strSignatur = "meineFirmenSignatur"
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
_
Execute
.Attachments.Add File_PDF
.send
Sleep 15000  ' 2 Sekunden warten
Dim olApp    As Object
Dim olName   As Object
Dim olFolder As Object
Dim olMail   As Object
Set olApp = GetObject(, "OutLook.Application")
Set olName = olApp.GetNamespace("MAPI")
Set olFolder = olName.Session.Folders("SKK Willmering").Folders("Gesendete Objekte")
Set olMail = olFolder.Items.GetLast
olMail.SaveAs FolderPDF & Format(Date, "yymmdd") & "_" & "VS" & "_" & wksPrint.Range("A6").Text  _
& "_" & wksPrint.Range("A7").Text & ".msg", 3
On Error Resume Next
End With
Kill File_PDF
End If
iRow = iRow + 1
Loop
ActiveWorkbook.Worksheets("VS").Protect PWs
Err.Clear
Fehler:
End Sub
Damit wird eine PDF Aus Excel erstellt und an bestimmte Emailadressen versendet. Dancah wird die Email gespeichert.
Eine Frage bleibt dennoch offen.
Mit dem Code
Set .SendUsingAccount = .Session.Accounts.Item(2)
Wird der Emailaccount ausgewählt. In dem Fall habe ich zwei Accounts und der anzusprechende Account ist der zweite.
Was ist aber wenn ich auf einem anderen PC nur einen Account habe, der aber genauso heisst wir der Orginal Account? Funktioniert das dann noch? Ich denke fast nicht oder?
Kann man den Bezug auf den Account von der laufenden Nummer (hier 2) ändern auf den Acoountnamen? Dieser bleibt immer gleich.
Besten Dank für die Hilfe.

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus Excel definierten Email account ansprechen
11.09.2015 11:39:27
mumpel
Hallo!
Sprich den Account mit seinem Namen an, nicht mit dem Index. Also Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
Gruß, René

AW: Aus Excel definierten Email account ansprechen
11.09.2015 11:51:07
matthias
mhm hätte es so versucht, aber dann bringt er mir einen Fehler. (ungültiger prozeduraufruf)
Ich denke hier muss noch was angepasst werden?
Hat jemand eine idee?

AW: Aus Excel definierten Email account ansprechen
11.09.2015 12:24:45
mumpel
Eine solche Fehlermeldung kann ich nicht reproduzieren. Was genau gibst Du denn als Namen an?

AW: Aus Excel definierten Email account ansprechen
11.09.2015 15:19:14
matthias
Ich gebe den Namen des Emails Konto an. Unter dem dann der Posteingang etc. aufgeführt wird.

AW: Aus Excel definierten Email account ansprechen
11.09.2015 15:53:52
mumpel
Dann müsste es eigentlich funktionieren.

Anzeige
AW: Aus Excel definierten Email account ansprechen
11.09.2015 15:58:01
Michael
Hi zusammen,
ich habe zwar null Ahnung von OL, aber es scheint, als würde .item eine Nummer erwarten anstelle eines Namens.
Versuch's mal mit Set .SendUsingAccount = .Session.Accounts("Kontoname")
und siehe http://www.office-loesung.de/ftopic433162_0_0_asc.php
Schöne Grüße,
Michael

AW: Aus Excel definierten Email account ansprechen
11.09.2015 16:02:56
mumpel
Eigentlich müsste es mit "Session.Accounts.Item" funktionieren, egal ob man den Index angibt oder den Namen.

AW: Aus Excel definierten Email account ansprechen
11.09.2015 16:47:25
mumpel
Hier mal ein Beispiel in dem zuvor der Index ausgelesen wird.
Sub MailTest()

Dim olApp     As Outlook.Application
Dim olAcc     As Long
Dim olItem    As Long
Dim olOldBody As String

Set olApp = CreateObject("Outlook.Application")


olItem = 1

For olAcc = 1 To olApp.Session.Accounts.Count
    If olApp.Session.Accounts.Item(olAcc).DisplayName = "Kontoname" Then Exit For
    olItem = olItem + 1
Next olAcc


       
      With olApp.CreateItem(0)
            Set .SendUsingAccount = .Session.Accounts.Item(olItem)
                .GetInspector.Display
                olOldBody = .HTMLBody
                .To = "test@server.de"
                .Subject = "Test"
                .HTMLBody = "Hallo,<br><br>nur ein Test." & _
                            "<br><br>Gruß, Max" & olOldBody
      End With
      
      
End Sub

CodeConverter für Office-Foren, AddIn für Excel/Word 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige
AW: Aus Excel definierten Email account ansprechen
11.09.2015 19:24:16
matthias
Hallo,
funktioniert auch nicht.
Ich habe eine Exchange Konto in Outlook das auch Postfach heisst und mit einem Symbol das ein Haus zeigt.
Meine externe Emailadresse hat ein ganz anderes Symbol(Aktenschublade)
Kann es sein, dass meine zweite Emailadresse gar keine Postfach ist sondern einfach nur eingebunden ist in das Exchange Konto?
Wenn ich nämlich emails versenden gehen die zuerst in den Postausgang des Exchange Postfaches und dann erst in den Ordner Gesendete Element von der zweiten Emailadresse.
Kann es sein, dass dadurch ein Problem entsteht?
Wenn ja wie löse ich das?

Anzeige
AW: Aus Excel definierten Email account ansprechen
11.09.2015 19:58:40
mumpel
Bei Exchange funktioniert SendUsingAccount nicht. Da musst Du mit SentOnBehalfOfName arbeiten.

AW: Aus Excel definierten Email account ansprechen
11.09.2015 20:52:00
matthias
Ist es irgendwie möglich das variabel zu gestalten
sprich entweder
SentOnBehalfOfName wenn ein exchange konto angelegt ist
oder
SendUsingAccount
wenn keins angelegt ist?

AW: Aus Excel definierten Email account ansprechen
11.09.2015 21:23:56
mumpel
Da ich kein Exchange habe kann ich diesbezüglich nichts testen.
Einfach mit einem Error-Handling versuchen.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige