knibbli
Goto Top

E-Mail -Versand funktioniert in Excel 2007 und in Excel 2010 (Beta). Nur leider ........ bei Excel 2003 macht er es nicht.

Hallö face-smile

da mir Didi1954 die letzten Tage sehr viel beigebracht hat und mein erstes Problem mehr als ausführlich und zuvorkommend gelöst hat,
möchte ich gerne den Versuch wagen und hier nun mein neu aufgetauchtes Problem mit Eurer Hilfe zu lösen. face-smile

Ich habe mit Hilfe des rundumfassenden Wissens im WWW face-smile

nun bei mir einen Button eingebaut

der den Inhalt (reine Werte) des aktiven Blattes kopiert,
einen Ordner erstellt,
die Datei mit einem bestimmten Namen und im Excel 2003 Format dort ablegt,
dann das E-Mail Programm öffnet
es als Anhang anhängt
damit es versendet werden kann.

Dieser funktioniert eigentlich perfekt in Excel 2007 und in Excel 2010 (Beta).

Nur leider ........ bei Excel 2003 macht er es nicht.

Anscheinend kennt Excel 2003 die Anweisung zum Öffnen des E-Mail Programms nicht ? Es scheint an dem Punkt zu haken ???

Wichtig ist, es darf sich nicht auf ein bestimmtes E-Mail Programm beziehen. Wie gesagt ab Excel 2007 funktioniert es, ob Lotus oder auch Outlook.

Kann mir jemand helfen, dies in den Griff zu bekommen ?

Lieb Grüß

Knibbli

Achso, hier noch der jetzige Code ...

<Code ="vba">
Sub Blatt_Email_click()
Send_E_Mail
End Sub

Sub Formeln_wandeln()
Dim a As Range
For Each a In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
a.Copy
a.PasteSpecial (xlPasteValuesAndNumberFormats)
Next a
Application.CutCopyMode = False
End Sub

Private Sub Neuen_Ordner_erstellen_Click()
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objOrdner = objFSO.CreateFolder("C:\TEST")
End Sub

Sub Send_E_Mail()
Dim SavePath As String
Neuen_Ordner_erstellen_Click
SavePath = "C:\TEST"
Application.ScreenUpdating = False
ActiveSheet.Copy
Formeln_wandeln
ActiveWorkbook.SaveAs SavePath & "\" & "Test" & "-" & ActiveSheet.Name & "_DAT_" & Format(Now, "yyyy-mm-dd_hh-mm-ss") & "_Uhr" & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False
Application.Dialogs(xlDialogSendMail).Show
ActiveWindow.Close
End Sub

Content-Key: 148268

Url: https://administrator.de/contentid/148268

Printed on: April 20, 2024 at 15:04 o'clock

Member: mkuchen
mkuchen Aug 04, 2010 at 06:15:48 (UTC)
Goto Top
Moin,

natürlich funktioniert sowas auch in Excel 2003. Dort wird es nur anders gehandled.

'Dim olApp As Object
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
'Empfänger
' .Recipients.Add "vorname.name@domain.xy"
'Betreff
.Subject = "Test-Mail"
'Nachricht
.Body = "Das ist eine e-Mail" & Chr(13) & _
"Viele Grüße..." & Chr(13) & Chr(13)
'Lesebestätigung aus
.ReadReceiptRequested = False
.Send
' End With
Set olApp = Nothing

Ich hoffe, das hilft dir irgendwie weiter. Das Ganze funktioniert jetzt nur mit Outlook. Wie es bei Lotus geht, kann ich dir momentan leider nicht sagen, da ích sowas nicht nutze.
Mitglied: 76109
76109 Aug 04, 2010 at 07:36:40 (UTC)
Goto Top
Hallo Knibbli!

Dieser (etwas umbebaute) Code funktioniert z.B. in Excel 2002 mit dem Standard-E-Mail-Programm Thunderbird, wobei ich das Dateiformat "xlExcel7" gewählt habe.
Option Explicit

Const SaveFolder = "C:\Test\Mail"  

Private Sub Blatt_Email_click()
    Send_E_Mail
End Sub

Private Sub Send_E_Mail()
    Dim objFSO As Object, SavePath As String
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")  
    
    If objFSO.FolderExists(SaveFolder) = False Then
        If objFSO.CreateFolder(SaveFolder) = False Then
            MsgBox "Der Ordner konnte nicht erstellt werden!", vbExclamation, "Fehler":   Exit Sub  
        End If
    End If
        
    Call Formeln_wandeln
    
    SavePath = SaveFolder & "\" & "Test" & "-" & ActiveSheet.Name & "_DAT_" & Format(Now, "yyyy-mm-dd_hh-mm-ss") & "_Uhr" & ".xls"  
    
    ActiveWorkbook.SaveAs SavePath, FileFormat:=xlExcel7, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False  
    
    Application.Dialogs(xlDialogSendMail).Show:  ActiveWindow.Close
End Sub

Private Sub Formeln_wandeln()
    Dim a As Range
    
    Application.ScreenUpdating = False
    
    For Each a In ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas)
        a.Copy
        a.PasteSpecial (xlPasteValuesAndNumberFormats)
    Next
    
    With Application
        .CutCopyMode = False
        .ScreenUpdating = True
    End With
End Sub

Und dieser Code würde auch die aktuelle Arbeitsmappe mit Betreffzeile versenden, wobei auch mehrere Empfänger mittels eines Arrays festgelegt werden können:
Sub Test()
    ThisWorkbook.SendMail Recipients:="ErwinMustermann@Mail.de", Subject:="Excel-Arbeitsmappe"  
End Sub

Gruß Dieter
Member: Knibbli
Knibbli Aug 04, 2010 at 18:09:24 (UTC)
Goto Top
Hallo mkuchen face-smile

Danke für deine Mühe,

ich glaube aber, deiner funktioniert nur bei Outlook, da CreateObject("Outlook.Application").

Ausprobieren werde ich Ihn aber morgen mal.

Lieb Grüß

Knibbli
Member: Knibbli
Knibbli Aug 04, 2010 at 18:21:03 (UTC)
Goto Top
Hallo Dieter face-smile

Du bist ja fleißig.....schon wieder du face-wink

Dachte schon es liegt an Application.Dialogs(xlDialogSendMail).Show

Aber du hast ja das gleiche benutzt.

Ich werde deines auch ausprobieren. Kann ich aber erst morgen machen da ich hier kein 2003 habe,

ob es wohl wirklich am Dateiformat "xlExcel8" liegt ?

Ich wechsel das erst mal aus bei mir im Code ob es nur daran liegt.

Dann nehme ich deinen ganzen Code und schaue wie es aussieht face-smile


Lieben Gruß

Knibbli

PS: Ich werde noch schnell mal zu meiner anderen Frage mit den Comboboxen rüber gehen face-smile
Mitglied: 76109
76109 Aug 04, 2010 at 19:05:20 (UTC)
Goto Top
Hallöchen Knibbli!

Zitat von @Knibbli:
ob es wohl wirklich am Dateiformat "xlExcel8" liegt ?
Das xlExcel7 habe ich nur genommen, weil es in meiner Version (2002) kein xlExcel8 gibtface-sad

Bekommst Du in Excel 2003 eine Fehlermeldung?

Gruß Dieter
Member: Knibbli
Knibbli Aug 04, 2010 at 19:25:49 (UTC)
Goto Top
Ja, aber ich kann das jetzt nicht ausprobieren und dir genau aufschreiben.

Habe hier jetzt kein 2003 aufen Rechner.
Schreibe es Morgen Mittag hier rein.

Habe es auch auf verschiedensten Rechnern ausprobiert mit den verschiedenen Excelversionen 2003 2007 2010 (BETA) und verschiedenen Mailprogrammen
und verschiedenen Windows Versionen und verschiedenen berechtigten Pfaden.
Am Ende war immer bei Excel 2003 das Problem.

Ich melde mich ganz bestimmt Morgen in der Mittagspause, was er genau meldet.

Lieb Grüß

Knibbli
Mitglied: 103148
103148 May 20, 2014 at 12:29:13 (UTC)
Goto Top
ähm, mal gefragt, ich möchte eine Email Vorlage verwenden und die Excel Datei anhängen, diese Funktion muss in die mappe1 eingebaut werden und der Inhalt aus der mappe2 an die Vorlage gehangen werden.....

geht das?