Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
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
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

@ Ramses

@ Ramses
25.01.2004 00:44:48
Jonathan
Hallo Ramses!
KRola empfahl mir, dich hier direkt anzusprechen, weil Du mir bestimmt weiterhelfen könntest.
es ging um folg.
mit
ActiveWorkbook.SendMail "xxx@t-online.de", "Fehlerdatei"
sende ich die aktuelle Datei als Anlage an die Emailadresse.
Nun möchte ich aber nicht diese Datei versenden, sondern eine bestimmte (mit Pfadangabe). Wie geht das?
Zudem wies mich KRola auf die Installation von Outlook hin. Wie würde eine Fehlermeldung aussehen, wenn Outlook nicht inst. ist?

Ich danke Dir!
Liebe Grüße
Jonathan

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

Betreff
Datum
Anwender
Anzeige
AW: @ Ramses
25.01.2004 12:08:10
Torsten
Hi Jonathan,
ich bin zwar nicht Ramses, aber vielleicht nimmst Du ja auch meine Hilfe an. Also die SendMail Methode gilt für das Workbook Objekt. Du müsstest also , wenn Du eine beliebige Datei versenden willst, zunächst einem Object die Datei zuweisen und dann versnden, wie z.B.
'Objektvariable initialisieren
Dim excwb as workbook
'Objektvariable zuweisen
set excwb = Workbooks("c:\afbaebbtbt\sdgbsgg\123.xls")
'Mail versenden
excwb.sendmail recipients:="123@t-online.de", subject:="test"
Details zu den Mailsystemen (inkl. Outlook, Outlook läuft unter Microsoft Mail), Anmeldung am Mailssystem, Abmelden vom Mailsystem etc. gibt es in der VBA Hilfe unter den Indexeinträgen Mailsystem, Mailsession, MailLogon und MailLogoff ....
Ich hoffe es hilft erst einmal
Grüße
Torsten
Anzeige
sieht gut aus :-)
25.01.2004 12:16:03
Jonathan
und vor allem sehr logisch!!!
vielen dank schon mal! Wenn ich damit ni´cht weiterkomme, meld ich mich nochmal!!!
liebe grüße
Jonathan
AW: @ Ramses
25.01.2004 12:32:32
Jonathan
Hallo!
ich habe es eben ausprobiert, die zweite zeile meldet er mir als fehler......

liebe Grüße
Jonathan
AW: @ Ramses - sorry
25.01.2004 13:30:49
Torsten
Hi Jonathan, tut mir leid, aber so ist das, wenn man ungetesten Code herausgibt, und dann die Gedanken nicht 100% zusammen hat. Dieser Code funktioniert (getestet mit Outlook):

Sub test1()
'Objektvariable initialisieren
Dim excwb As Workbook
'Objektvariable zuweisen, Workbook öffnen
Set excwb = Workbooks.Open("C:\Dokumente und Einstellungen\Test\Desktop\test.xls")
'Mail versenden
excwb.SendMail Recipients:="123@t-online.de", Subject:="test"
'Workbook schliessen
excwb.Close
End Sub

Die eMail wird im Postausgang abgelegt. Beim nächsten Senden geht sie mit weg. Möchtest Du das Ganze noch weiter automatisieren möchte ich Dir gern den Weg weisen: Verweis zur Outlook Bibliothek setzen, Mailitem definieren, Attachment = zu versendende Datei, Subject=Betreff, body=Test der Mail, mail versenden( send- Methode). Steht alles in den VBA Hilfen von Outlook und Excel.
Grüße

Torsten
Anzeige
AW: @ Ramses
25.01.2004 13:19:22
Ramses
Hallo
schön diese Empfehlung :-)).
Mal sehen was wir machen können.
Der Code von Torsten ist schon mal nicht schlecht, allerdings können nur geöffnete Mappen gesendet werden mit dieser Methode.
Du musst deshalb das ganze etwas abändern:


Option Explicit
Sub Mini_Mail()
'Objektvariable initialisieren
Dim excwb As Workbook
'Datei öffnen
Application.Workbooks.Open "C:\test.xls"
'Objektvariable zuweisen
Set excwb = Workbooks("test.xls")
'Mail versenden
excwb.SendMail Recipients:="123@t-online.de", Subject:="test"
'Datei schliessen
excwb.Close False
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Damit wird die Datei über das aktuelle im System angemeldete Standard-Mailsystem gesendet. Allerdings unterstützen nicht alle Mailsysteme die Möglichkeiten von VBA.
Da ist derzeit leider nur MS Outlook, nicht Outlook-Express !!, und Notes, welche die VBA-Object Programmierung unterstützen ( ist zwar nicht ganz korrekt gesagt, trifft aber den Kern für Anfänger ) und "ferngesteuert" werden können.
Wenn du MS Outlook ab 2000 installiert hast, dann kannst du folgenden Code verwenden


Option Explicit
Sub Excel_Mail_für_einzelnen_Empfänger_mit_Attachment()
    'Variablendefinition
    Dim Fs As Object, f As Object
    Dim OutApp As Object, Mail As Object
    Dim As Integer, Msg As Integer
    Dim Nachricht As Variant
    Dim AWS As String
    Dim AnzEmpfänger As Integer
    'Variablen füllen
    'Filesystemobjekt erstellen
    Set Fs = CreateObject("Scripting.FileSystemObject")
    'Attachment zuweisen
    'Pfad steht hier in D1
    AWS = Cells(1, 4)
    '1. Fehlerprüfung
    'Mit dem FilesystemObjekt wird zuerst die Existenz
    'der Datei geprüft. Wenn diese nicht existiert
    'wird das Makro abgebrochen
    'Der Link auf deine Anlage liegt in der Spalte D
    'in der gleichen Zeile wie der markierte Empfänger
    If Fs.fileexists(AWS) = False Then
        Msg = MsgBox("Die Datei: " & AWS & " in F" & i & " exitstiert nicht !" & vbCrLf & "Der Sendevorgang an; " & Cells(i, 1) & " wird abgebrochen!", vbCritical + vbOKOnly, "Dateifehler")
        Exit Sub
    End If
    'Sendevorgang einleiten
    Set OutApp = CreateObject("Outlook.Application")
    Set Nachricht = OutApp.CreateItem(0)
    With Nachricht
        'Empfänger steht in A1 oder
        '.To = "irgendwer@irgendein-provider.de"
        .To = Cells(i, 1)
        'Betreff steht in B1 oder
        '.Subject = "Änderung an Mappe1"
        .Subject = Cells(i, 2)
        'der zu sendende Text steht in C1 oder
        '.Body = "Einige Werte in Mappe1 wurden geändert" & vbcrlf & "Bitte prüfen"
        .Body = Cells(i, 3)
        'Attachment anhängen
        .Attachments.Add AWS
        'Hier wird die Mail zuerst angezeigt
        .Display
        'Hier wird die Mail gleich in den Postausgang gelegt
        'und gesendet
        '.Send
    End With
    'Variablen zurücksetzen
    Set OutApp = Nothing 'CreateObject("Outlook.Application")
    Set Nachricht = Nothing 'OutApp.CreateItem(0)
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5



Mit

If Application.MailSystem <> 1 Then
MSgBox "Kein unterstütztes MS Mailsystem vorhanden. Attachment kann nicht gesendet werden"
Exit Sub
End If

individuell auf die installierte Mailsysteme reagieren ( siehe OLH )
So nun kannst du mal ein wenig probieren.
Gruss Rainer
Anzeige
AW: @ Ramses
25.01.2004 15:41:03
Jonathan
Vielen dank!!!
Du schriebst, wennich ab Outlook 2000 inst. habe, kann ich den 2. Code nehmen......
der erste code geht nur bis 2000? oder auch bei neueren versionen?

Liebe Grüße
Jonathan
AW: @ Ramses
25.01.2004 16:23:53
Ramses
Hallo
der erste Code nimmt einfach das installierte Mailsystem, aber die Datei muss immer geöffnet werden.
Bei der zweiten Variante kann sie als Attachment verschickt werden ohne sie zu öffnen
Gruss Rainer
AW: @ Ramses
25.01.2004 17:05:07
Jonathan
Okay, vielen dank!!!!
Hast mir sehr weitergeholfen!

Liebe Grüße
Jonathan
Merci :-) Geschlossen o.T.
25.01.2004 21:33:38
Ramses
...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige