Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Excel von Outlook Konto trennen

Forumthread: Excel von Outlook Konto trennen

Excel von Outlook Konto trennen
20.09.2025 20:37:54
Piet
Hallo Kollegen

ich habe ein Problem mit dem ich mich Nicht auskenne. Das sind böhmische Dörfer für mich.
Man kann mit Excel auch Outlook Mails versenden, aber da gibt es ein Problem. Das MS Konto.
Wenn ich senden will, öffnet MS mir ein Outlook Konto, das ich dafür NICHT benutzen will.

Es scheint mit Excel fest verknüpft zu sein. Ich weiss aber nicht wo und wie man das einstellen oder löschen kann??
Der Versuch das Mail Konto im Makro anzugeben hat nicht geklappt. Wie oder Wo kann man das ändern??
Dasselbe passiert, wenn ich versuche mit Excel gesendete Mails in eine Tabelle einzulesen.
MS öffnet mir dann das Mail Konto für Passwortabfrage, bei For Next Schleife immer wieder.

Habt ihr einen Code wo ich das gewünschte Outlook Konto im Makro angeben kann?
Und wo auch 30-40 Geburtstags Einladungen ohne Passwort Abfrage durchlaufen??

mfg Piet

Sub Mail_erstellen()

Dim oApp As New Outlook.Application
Dim oMail As Outlook.MailItem
Set oMail = oApp.CreateItem(olMailItem)

With oMail
.BodyFormat = olFormatHTML
.Display
.To = "kaiweissmann@outlook.de;" & Tabelle1.[b1].Value
.CC = "mail@vbatrainer.de"
.BCC = "mail@vbatrainer.de"
.Subject = "Beispiel-Mail"
.HTMLBody = "Dies ist ein Beispieltetxt" & .HTMLBody
.Attachments.Add "C:\Users\kaiwe\Desktop\Testdatei.png"
.Send
' .Save
End With
End Sub
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel von Outlook Konto trennen
20.09.2025 21:21:46
Alwin Weisangler
Hallo Piet,

so:

Set .SendUsingAccount = .Session.Accounts.Item("DeineKorrekteMail@test.de")


Falls du auswählen willst kommst du so an deine Accounts (Augabe auf Tabellenblatt):


Sub OutlookAccounts_auflisten()
Dim i As Long, a As Outlook.Account, o As Object
Set o = Outlook.Session
With Tabelle1
.Columns("A:B").ClearContents
For Each a In o.Accounts
i = i + 1
.Cells(i, 1) = o.Accounts.Item(i).UserName
.Cells(i, 2) = o.Accounts.Item(i).SmtpAddress
Next
End With
End Sub


Gruß Uwe
Anzeige
AW: Excel von Outlook Konto trennen
21.09.2025 14:19:03
Piet
Hallo Uwe

noch eine höfliche Frage, wie muss ich den Code zum Mail einlesen ändern??

mfg Piet

Sub GetAllMyMails2()

' Sub liest die Mails des Posteingangs ein und listet die einzelnen Komponenten im Register Mails auf
Dim i As Integer, n As Integer, sMails() As String
Dim iAnz As Integer, jAnz As Integer
Dim TxtAtt As String, j As Integer

With ThisWorkbook.Sheets("Mails")
.Cells.ClearContents
' Überschrift im MailRegister schreiben
.Cells(1, 1).Resize(1, 3) = Split("Absender Betreff Mail-Text")

' Mails aus dem Posteingang holen und verarbeiten
With CreateObject("Outlook.Application").GetNamespace("MAPI")
Set .Session.Accounts = .Session.Accounts.Item("Mein Mailkonto")
With .Folders("Mein Mailkonto").Folders("Posteingang")
TxtAtt = Empty
On Error Resume Next
jAnz = .Attachments.Items.Count
For j = 1 To jAnz
TxtAtt = TxtAtt & .Attachments.Item(j).Filename & vbCrLf
Next j
On Error GoTo 0
iAnz = .Items.Count
ReDim sMails(iAnz, 3)
For i = 0 To iAnz - 1
With .Items(i + 1)
sMails(n, 0) = .SenderName
sMails(n, 1) = .Subject
sMails(n, 2) = .body
sMails(n, 3) = TxtAtt
End With
n = n + 1
Next i
End With
End With
.Cells(2, "A").Resize(n, 4) = sMails()
End With
MsgBox "Habe " & n & " Mails abgeholt!", vbInformation, "Mails importieren"
End Sub
Anzeige
AW: Excel von Outlook Konto trennen
21.09.2025 14:30:14
Alwin Weisangler
Hallo Piet,

Ich kann erst heute Abend wieder an den PC. Da stelle ich dir das mal zusammen.
Ich bin davon ausgegangen da du Early Bindung nutzt, dass du mit den Infos zurecht kommst.

Gruß Uwe
AW: Excel von Outlook Konto trennen
21.09.2025 23:30:53
Alwin Weisangler
Hallo Piet,

bevor ich dir was zusammenstelle, muss ich wissen ob du Early Binding (so wie im Anfangsbeitrag "Sub Mail_erstellen()...") nutzen willst, oder Late Binding wie im letzten "Sub GetAllMyMails2()...".

Bei Early Binding muss der Verweis Microsoft Outlook 16.0 Library aktiviert sein. Dies wählt man unter Extras --> Verweise im VBA Editor aus.
Bei Late Binding führt der Weg über die Dimensionierung der benötigten Objektvariablen und deren Erzeugung via Set DeineObjektvariable = CreateObject("").

Ich persönlich nutze gern Early Binding um beim Schreiben von Code die Intellisense des VBA-Editors als Auswahlmöglichkeit zur Verfügung zu haben. Die hat den Vorteil, dass man die benötigte Vokabel (Eigenschaft oder Funktion) vor die Augen bekommt.
Des Weiteren sollte man da Lokalfenster des Editors nutzen um in die Objektvariablen hineinzuschauen. Also aktiviere dieses Fenster, falls du es noch nicht getan hast.

Hier erst mal der Weg via Early Binding:



Option Explicit

' Beispiel mit Early Binding
' Verweis Microsoft Outlook 16.0 Library muss aktiviert sein

Sub TestMail()
Dim Outobj As Outlook.Application
Dim Mail As Object
Set Outobj = New Outlook.Application
With Outobj.CreateItem(0)
Set .SendUsingAccount = .Session.Accounts.Item(1) 'direkte Ansprache via Nummer des Items
.GetInspector.Display ' öffnet den erzeugten Item
.To = "test@testserver.de"
.CC = "testserver.de"
.Subject = "Test"
.HTMLBody = "

Mein Testeintrag aus Zelle""A1""

" & Tabelle1.Range("A1") & "

Mit freundlichen Grüßen
Dein Name

"
'.Send
End With
Set Outobj = Nothing
End Sub

Falls du den Account namentlich auswählbar haben möchtest, kannst du die vorhandenen Accounts nebst Mailadresse mit der bereits von mir gezeigten Prozedur aus deinem Outlook auslesen oder einfach per Dropdown in einer Zelle deiner Wahl den AccountNamen auswählbar machen.

Gruß Uwe
Anzeige
AW: Excel von Outlook Konto trennen
22.09.2025 12:40:31
Piet
Hallo Uwe

Sorry, das ich mich nicht sofort melde, bin im Umzugs Stress, werde vile beansprucht.

Ich muss offen zugeben, das ich von Unterschieden bei Outlook noch nie etwas gehört habe.
Meine selbst beigebrachten Kenntnisse beruhen auf normalen sortieren, kopieren, verschieben, usw.
Microsoft Outlook 16.0 Library ist aktiviert, was Early und Late Binding ist, Null Ahnung - (kann kein Englisch!)

Ich habe hier einen anderen Laptop wie in Deutschland bei einem Freund, weiß nicht wie der eingestellt ist?
Höfliche Frage: - gibt es die Möglichkeit mir beide Versionen zu schicken? Nur zur Vorsicht.
Oder hast du einen Internet Link? Wo ich vielleicht beide Makro Versionen finden kann?

Wichtig wäre mir Mails -MIT- Word, Excel, PDF Anhang einzulesen und den Anhang in Downloads zu speichern.
Hast du dafür ein passendes Programm? Oder einen passenden Link?
Vielen Dank für deine Bemühungen und für deine Antwort.

mfg Piet
Anzeige
AW: Excel von Outlook Konto trennen
22.09.2025 13:37:59
Alwin Weisangler
Hallo Piet,

Early Binding bedeutet frühe Bindung und Late Binding bedeutet späte Bindung.
Dabei geht es um das angewendete Prinzip zum Füllen von Objektvariablen.
Dies ist also nicht auf Outlook begrenzt, sondern eine Sache des angewendeten Prinzips.

Ist in der Exceldatei die benötigte Bibliothek aktiviert, bleibt diese auch auf anderen Rechnern aktiviert.

Da musst dir erst mal keine Gedanken darüber machen, dass auf einem anderen Rechner dies nicht funktioniert.

Probleme wird es geben, wenn die Bibliothek auf dem anderen Rechner nicht vorhanden oder gesperrt ist. Da hilft auch nicht Late Binding weiter.

Einzig Reparatur / Neuinstallation / Kauf einer Version, welche das klassische Outlook enthält / entsperren der Bibliothek vom System Admin der Firma kann dann weiterhelfen.

Zu Late Binding: Da hast du ja schon ein Beispiel (2. Version) gezeigt. Das ist schon soweit für deinen Zweck anpassbar. Aber der Zugriff auf die Items (Mail Accounts) ist eben nur schreibgeschützt möglich - also nur lesen.
Es wird sicherlich via API Wege geben dies zu überwinden. Ich weiß aber nicht, ob dies anzuraten ist. Wer weiß schon, ob solch ein Vorgehen Hintertüren für angriffslustige Zeitgenossen öffnet.

Deshalb zumindest bei diesen Teil (Auswahl des Email Accounts) via Early Binding anwenden.

Gruß Uwe
Anzeige
AW: Excel von Outlook Konto trennen
22.09.2025 14:36:47
Alwin Weisangler
sorry, da hatte ich noch etwas übersehen.

Late Binding geht ebenso. Nur eben nicht über Mapi. Dazu muss ein temporärer Item erzeugt werden - also CreateItem(0)



Sub TestMail()
Dim Outobj As Object
Dim Mail As Object
Set Outobj = CreateObject("Outlook.Application") ' Late Binding
With Outobj.CreateItem(0)
Set .SendUsingAccount = .Session.Accounts.Item(1) 'direkte Ansprache via Nummer des Items
.GetInspector.Display ' öffnet den erzeugten Item
.To = "test@testserver.de"
.CC = "testserver.de"
.Subject = "Test"
.HTMLBody = "Hallo!Mein Testeintrag aus Zelle""A1""" & Tabelle1.Range("A1") & "Mit freundlichen GrüßenDein Name"
'.Send
End With
Set Outobj = Nothing
End Sub


Gruß Uwe
Anzeige
AW: Vielen Dank, ich probiere es morgen aus oWt
23.09.2025 04:41:44
Piet
...
AW: Excel von Outlook Konto trennen
21.09.2025 14:03:57
Piet
Hallo Uwe

vielen Dank für deine Hilfe, 2 Fragen habe ich dazu:
1) was steht im 1. Code vor der Set .SendUsingAccount als Object?
2) beim 2 Code bekomme ich Fehlermeldung bei Dim a= Outlook.Account, -> Benutzerdef. Variable
Probiere ich es mit Object Fehlermeldung bei Set o = Outlook.Session
Was muss ich da noch ändern??


mfg Piet
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige