Supportnet / Forum / Tabellenkalkulation
Mit Excel eine E-mail versenden, Outlook Meldung
Frage
Hallo,
ich brauche Eure Hilfe!!!!
Ich hab einen Code erstellt, der aus Excel eine E-mail verschickt. Es wird keine Datei als Anhang verschickt, sondern es wird eine E-mail erstellt im Outlook und dann verschickt und klappt auch gut. Jetzt folgendxes Problem: Beim versenden der MAil aus Excel wird in den Outlook gewechselt und es kommt eine Meldung, das ein andeses Programm über die E-mailadresse eine Mail verschicken will. Nun muss man immer mit "Ja" bestätigen, damit die Mail versendet wird. Kann man das umgehen un die Meldung unterdrücken, das man nicht immer mit ja bestätigen muss???
Ich danke Euch für Eure Mühe!!!!
Gruß
Elhamplo
Antwort 1 von coros
Hi Elhamplo,
besorg Dir die Programme ClickYes oder Advanced Security for Outlook (beides Freeware Programme). Die übernehmen das Bestätigen der Meldung.
Du musst dann nur noch am Anfang Deines Makros, mit dem Du die Mail versendest, das Programm, z.B. „ClickYes“ aufrufen und am Ende das Programm dann wieder automatisch schließen lassen. Das kann man mit nachfolgenden Makros realisieren.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
besorg Dir die Programme ClickYes oder Advanced Security for Outlook (beides Freeware Programme). Die übernehmen das Bestätigen der Meldung.
Du musst dann nur noch am Anfang Deines Makros, mit dem Du die Mail versendest, das Programm, z.B. „ClickYes“ aufrufen und am Ende das Programm dann wieder automatisch schließen lassen. Das kann man mit nachfolgenden Makros realisieren.
Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _
ByVal dwProcessId As Long) As Long
Declare Function TerminateProcess Lib "kernel32" _
(ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Const PROCESS_TERMINATE = &H1
Sub ClickYes_exe_starten()
Shell ("C:\Programme\Express ClickYes\ClickYes.exe")
End Sub
Sub ClickYes_exe_beenden()
Dim Programmende As Long, Schluß As Long
Programmende = Shell("C:\Programme\Express ClickYes\ClickYes.exe", 0)
Schluß = OpenProcess(PROCESS_TERMINATE, False, Programmende)
TerminateProcess Schluß, 0
CloseHandle Schluß
End Sub
Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von fedjo
Hallo,
versuchs doch mal mit diesem Cote.
Gruß
fedjo
Sub Email()
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
End Sub
versuchs doch mal mit diesem Cote.
Gruß
fedjo
Sub Email()
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
End Sub
Antwort 3 von Elhamplo
Hey Coros,
danke für Deine Hilfe. Ich werd das gleich mal ausprobieren und werde mich wieder melden!!!
Ich danke Dir für Deine Hilfe!!!!
Hey fedjo
danke für den Code. Funst!! Danke! Jetzt noch eine Frage: kann man das automatisieren??? Mit dem Code wird der Text in eine E-mail übertragen, geht das auch das sofort gesendet wirds???
Danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
danke für Deine Hilfe. Ich werd das gleich mal ausprobieren und werde mich wieder melden!!!
Ich danke Dir für Deine Hilfe!!!!
Hey fedjo
danke für den Code. Funst!! Danke! Jetzt noch eine Frage: kann man das automatisieren??? Mit dem Code wird der Text in eine E-mail übertragen, geht das auch das sofort gesendet wirds???
Danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
Antwort 4 von coros
Hi Elhamplo,
ändere in dem Code von fedjo die Zeile
in
Wobei ich nicht ganz verstehe, was Du mit dem Code anfangen willst? Ich denke den zum Senden hast Du schon, der müsste doch fast genauso aussehen? Es ging doch um die Meldung, die bei Übermitteln an Outlook erscheint und die kommt auch bei dem Makro von fedjo.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ändere in dem Code von fedjo die Zeile
Mail.Displayin
Mail.SendWobei ich nicht ganz verstehe, was Du mit dem Code anfangen willst? Ich denke den zum Senden hast Du schon, der müsste doch fast genauso aussehen? Es ging doch um die Meldung, die bei Übermitteln an Outlook erscheint und die kommt auch bei dem Makro von fedjo.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von fedjo
Hi,
einfach die Zeile einfügen:
Mail.Display
Application.SendKeys "%s"
Man könnte auch aus der Tabelle noch Zellen kopieren und in die E-Mail einfügen.
Gruß
fedjo
einfach die Zeile einfügen:
Mail.Display
Application.SendKeys "%s"
Man könnte auch aus der Tabelle noch Zellen kopieren und in die E-Mail einfügen.
Gruß
fedjo
Antwort 6 von Elhamplo
Hey Coros,
hab das mal Probiert mit Deinem Code. Bekomme aber eine Fehlermeldung: Fehler beim Kopilieren und folgende Zeile uist makiert:
Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Wo muss ich den den ersten Teil Deines Codes einfügen, der Teil wo Click Yes aufgerufen wird???
Danke für Deine Hilfe!!!!!!!!!!!!!!!!!!!
Hallo fedjo,
danke für Deine Hilfe!!!!
kann man die mit einer Bedingung die Zellen in die E-mail kopieren? Als Beispiel: Wenn in Zelle C3 was steht soll die in die E-mail eigefügt werden, ansonten die Zelle nicht kopieren.
Danke!!!!!!!!!!!!!!
Ad all
Ich danke Euch für Eure Mühe!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Vielen, vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
hab das mal Probiert mit Deinem Code. Bekomme aber eine Fehlermeldung: Fehler beim Kopilieren und folgende Zeile uist makiert:
Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Wo muss ich den den ersten Teil Deines Codes einfügen, der Teil wo Click Yes aufgerufen wird???
Danke für Deine Hilfe!!!!!!!!!!!!!!!!!!!
Hallo fedjo,
danke für Deine Hilfe!!!!
kann man die mit einer Bedingung die Zellen in die E-mail kopieren? Als Beispiel: Wenn in Zelle C3 was steht soll die in die E-mail eigefügt werden, ansonten die Zelle nicht kopieren.
Danke!!!!!!!!!!!!!!
Ad all
Ich danke Euch für Eure Mühe!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Vielen, vielen Dank!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Gruß
Elhamplo
Antwort 7 von Risatara2
@Coros: Mitnichten wird bei dem Script von Fedjo (zum. bei mir WXP/O2k) eine Meldung ausgegeben, da Office ja nicht einfach so versendet, sondern nur ein Fenster anzeigen soll.
Ich, für meinen Teil, wäre zwar auch an einer brauchbaren Lösung interessiert, glaube aber nicht, dass die mit Office-Bordmitteln erreicht werden kann, da das ja irgendwie ein Widerspruch in sich wäre..
Ich, für meinen Teil, wäre zwar auch an einer brauchbaren Lösung interessiert, glaube aber nicht, dass die mit Office-Bordmitteln erreicht werden kann, da das ja irgendwie ein Widerspruch in sich wäre..
Antwort 8 von Elhamplo
Hey Coros,
hab noch mal ein bischen rumprobiert und muuss sagen es funst. Super Sache!!!!!!!!!!!!!!! Danke!!!!!!!!!!!!!!
Einfach klasse, ich danke Dir immer wieder für Deine Hilfe.
Gruß
Elhamplo
hab noch mal ein bischen rumprobiert und muuss sagen es funst. Super Sache!!!!!!!!!!!!!!! Danke!!!!!!!!!!!!!!
Einfach klasse, ich danke Dir immer wieder für Deine Hilfe.
Gruß
Elhamplo
Antwort 9 von coros
Hi Elhamplo,
freut mich, dass Du einen Weg zum Erfolg gefunden hast. Danke Dir auch für Deine Rückmeldung.
@Risatara2: Meine Aussage, dass auch bei dem Makro von @fedjo eine Warmeldung erscheint, bezog sich auf meine Antwort, in der ich geraten hatte, um die Datei sofort in den Postausgang zu verlegen, den Befehl "Mail.Display " gegen den Befehl "Mail.Send" zu tauschen. Und dann erfolgt die Sicherheitsabfrage sehr wohl. Mit dem Zusatz der SendKeys-Anweisung von @fedjo ist dieses nicht der Fall, aber diese Antwort kam später als mein Beitrag.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
freut mich, dass Du einen Weg zum Erfolg gefunden hast. Danke Dir auch für Deine Rückmeldung.
@Risatara2: Meine Aussage, dass auch bei dem Makro von @fedjo eine Warmeldung erscheint, bezog sich auf meine Antwort, in der ich geraten hatte, um die Datei sofort in den Postausgang zu verlegen, den Befehl "Mail.Display " gegen den Befehl "Mail.Send" zu tauschen. Und dann erfolgt die Sicherheitsabfrage sehr wohl. Mit dem Zusatz der SendKeys-Anweisung von @fedjo ist dieses nicht der Fall, aber diese Antwort kam später als mein Beitrag.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 10 von fedjo
Hi Elhamplo ,
ich habe das einfügen aus Excel mal auf die Aktive Zelle bezogen, mit einem Sonderzeichen ";" es werden dann fünf Zellen eingefügt das Sonterzeichen wird natürlich wieder gelöscht.
Man kann das ganze auch auf nur eine bestimmte Zelle (C3) beziehen. Das Makro läst sich am besten mit der "Enter" Taste starten.
Gruß
fedjo
Sub Enter()
Application.OnKey "{Enter}", "Email" ´Makro ausführen
End Sub
Sub Email()
If InStr(ActiveCell.Value, ";") > 0 Then
ActiveCell.Replace What:=";", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range(ActiveCell.Offset(0, -9), ActiveCell.Offset(0, -5)).Select
Selection.Copy
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Application.SendKeys "{TAB}"
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys ("^v")
Application.SendKeys "%s"
End If
End Sub
ich habe das einfügen aus Excel mal auf die Aktive Zelle bezogen, mit einem Sonderzeichen ";" es werden dann fünf Zellen eingefügt das Sonterzeichen wird natürlich wieder gelöscht.
Man kann das ganze auch auf nur eine bestimmte Zelle (C3) beziehen. Das Makro läst sich am besten mit der "Enter" Taste starten.
Gruß
fedjo
Sub Enter()
Application.OnKey "{Enter}", "Email" ´Makro ausführen
End Sub
Sub Email()
If InStr(ActiveCell.Value, ";") > 0 Then
ActiveCell.Replace What:=";", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range(ActiveCell.Offset(0, -9), ActiveCell.Offset(0, -5)).Select
Selection.Copy
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Application.SendKeys "{TAB}"
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys ("^v")
Application.SendKeys "%s"
End If
End Sub
Antwort 11 von Elhamplo
Hey fedjo,
danke für Deine Code!
Bei mir passiert aber nichts. Egal ob ich Enter drücke oder den Email Makro alleine aufrufe.
Ich hab das einfach in dein Modul eingefügt , aber es passiert nicht. Was hab ich denn falsch gemacht???
Gruß
Elhamplo
danke für Deine Code!
Bei mir passiert aber nichts. Egal ob ich Enter drücke oder den Email Makro alleine aufrufe.
Ich hab das einfach in dein Modul eingefügt , aber es passiert nicht. Was hab ich denn falsch gemacht???
Gruß
Elhamplo
Antwort 12 von fedjo
Hallo Elhamplo,
die Enter Taste muß erst aktiviert werden.
Excel Tabelle aufrufen und dem "Enter Makro" einen Buchstaben zuweisen (Extras, Makro, Makros, "Makro Enter", Optionen, Strg+ "x", OK.
Wenn dann die Tabelle geöffnet wird Strg+x drücken, Enter ist nun aktiviert, bei jedem drücken der Entertaste wird nun das "Makro Email "gestarten.
Viel Spass
Gruß
fedjo
die Enter Taste muß erst aktiviert werden.
Excel Tabelle aufrufen und dem "Enter Makro" einen Buchstaben zuweisen (Extras, Makro, Makros, "Makro Enter", Optionen, Strg+ "x", OK.
Wenn dann die Tabelle geöffnet wird Strg+x drücken, Enter ist nun aktiviert, bei jedem drücken der Entertaste wird nun das "Makro Email "gestarten.
Viel Spass
Gruß
fedjo
Antwort 13 von Elhamplo
Hey fedjo,
sorry, aber es klappt nicht. Mit deinem alten Code wird eine E-mail verschickt. Der neue Code da passiert garnichts, auch wenn ich den Enter-Code herausnehme. Was kann man noch machen???
Danke für Deine Mühe!!!
Gruß
Elhamplo
sorry, aber es klappt nicht. Mit deinem alten Code wird eine E-mail verschickt. Der neue Code da passiert garnichts, auch wenn ich den Enter-Code herausnehme. Was kann man noch machen???
Danke für Deine Mühe!!!
Gruß
Elhamplo
Antwort 14 von fedjo
Hallo Elhamplo,
ich habe den Cote getestet, er funktionirt bei mir.
Enter Makro Bustaben zuweisen,
in die Aktive Zelle ; einfügen und die Entertaste betätigen. Es werden links der Aktiven Zelle fünf Zellen (einstellbar) in das Email eingefügt.
Gruß
fedjo
Sub Email()
If InStr(ActiveCell.Value, ";") > 0 Then
ActiveCell.Replace What:=";", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range(ActiveCell.Offset(0, -0), ActiveCell.Offset(0, -4)).Select
Selection.Copy
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Application.SendKeys "{TAB}"
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys ("^v")
Application.SendKeys "%s"
End If
End Sub
ich habe den Cote getestet, er funktionirt bei mir.
Enter Makro Bustaben zuweisen,
in die Aktive Zelle ; einfügen und die Entertaste betätigen. Es werden links der Aktiven Zelle fünf Zellen (einstellbar) in das Email eingefügt.
Gruß
fedjo
Sub Email()
If InStr(ActiveCell.Value, ";") > 0 Then
ActiveCell.Replace What:=";", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Range(ActiveCell.Offset(0, -0), ActiveCell.Offset(0, -4)).Select
Selection.Copy
Dim ol, Mail As Object
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = " Muster " & Now
Mail.To = "Mustermann@freenet.de"
Mail.cc = ""
Mail.bcc = ""
Application.SendKeys "{TAB}"
Mail.body = Chr(13) & "Hallo," & Chr(13) & _
"ich möchte Sie informieren über....." & Chr(13) & Chr(13) & Chr(13) & _
"Gruß" & Chr(13) & "Mustermann" & Chr(13) & Chr(13) & _
"Dieses Mail wurde automatisch versandt."
Mail.Display
Application.SendKeys "{TAB}"
Application.SendKeys "{TAB}"
Application.SendKeys ("^v")
Application.SendKeys "%s"
End If
End Sub
Antwort 15 von Elhamplo
Hey,
Sorry das ich mich erst jetzt melde, war Krank und hatte keine Lust an den PC zu gehen.
Werd gleich mal den Code Testen.
Mal eine Frage: Was bedeutet Send.keys ("Tab")?? und wleche sind die Zellen deren Inhalt kopiert werden???
Ich danke Dir für Deine Hilfe.
Gruß
Elhamplo
Sorry das ich mich erst jetzt melde, war Krank und hatte keine Lust an den PC zu gehen.
Werd gleich mal den Code Testen.
Mal eine Frage: Was bedeutet Send.keys ("Tab")?? und wleche sind die Zellen deren Inhalt kopiert werden???
Ich danke Dir für Deine Hilfe.
Gruß
Elhamplo
Antwort 16 von Elhamplo
Hey,
hab das mal ausprobiert (ohne die Taste Enter zuu benutzen, aber es funst nicht. Ich hab den Code einfach in ein Standardmodul kopiert und die E-mail Adresse geändert und dann den Makro ausgeführt. Ich hab keine Mail án die Adrese bekommen. Auch im Outlook steht keine Mail im Ordner gesendete Objekte. Was mache ich denn falsch??
Danke für Deine Mühen!!!
Gruß
Elhamplo
hab das mal ausprobiert (ohne die Taste Enter zuu benutzen, aber es funst nicht. Ich hab den Code einfach in ein Standardmodul kopiert und die E-mail Adresse geändert und dann den Makro ausgeführt. Ich hab keine Mail án die Adrese bekommen. Auch im Outlook steht keine Mail im Ordner gesendete Objekte. Was mache ich denn falsch??
Danke für Deine Mühen!!!
Gruß
Elhamplo
Antwort 17 von Elhamplo
Hey,
Sorry, für die späte Antwort.
Hab es nochmal ausprobiert. ES FUNKTIONIERT!!!!!
Keine Ahnung was ich falsch gemacht habe.
Vielen, viellen Dank für Deine Mühe!!!!!
Gruß
Elhamplo
Sorry, für die späte Antwort.
Hab es nochmal ausprobiert. ES FUNKTIONIERT!!!!!
Keine Ahnung was ich falsch gemacht habe.
Vielen, viellen Dank für Deine Mühe!!!!!
Gruß
Elhamplo

