Anzeige
Archiv - Navigation
1400to1404
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
Pop-Up fenster für eine Eingabe
09.01.2015 11:26:56
Dennis
Hallo zusammen,
ich habe mal wieder ein Problem und hoffe auf eine Lösung von euch - hat bisher fantastisch geklappt. :-) Folgende Situation: in einem Arbeitsblatt werden per CommandButtons E-Mails generiert. In der Betreffzeile muss der Benutzer ein paar XXXXX durch eine bestimmte Nummer ersetzen, die er durch ein anderes Programm vorgegeben bekommt, und die sich nur durch Umwege in die Zwischenablage kopieren lassen. Leider wird es trotz eines Pop-Ups, dass explitzit sagt "XXXXX ersetzen" ab und an vergessen, die XXXXXX durch die entsprechende Nummer zu ersetzen. Das nervt die Empfänger und mich sehr.
Ich möchte daher, dass nach dem Click auf den CommandButton ein kleines Pop-Up erscheint, in das der User die Nummer eingibt, und dass diese Eingabe dann die XXXXX in der Betreffzeile ersetzt. Dann soll die Mail angezeigt werden, der User klatscht seine Signatur darunter und schickt die Mail ab. Hier der Code bisher: (Da, wo Name1 und so steht, sind natürlich richtige Mailadressen, die ich aber aus datenschutzgründen rausgenommen habe)

Private Sub CommandButton1_Click()
MsgBox ("Bitte in der Eskalationsmail beachten:" & vbCrLf & "" & vbCrLf & "1. Im Betreff die  _
XXXXXXXXX durch die Request ID ersetzen" & vbCrLf & "" & vbCrLf & "2. Die Zeile HIER BISHERIGE  _
GEMAEINTRÄGE EINFÜGEN bearbeiten" & vbCrLf & "" & vbCrLf & "3. Eigene Signatur anfügen!")
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "Name1@dhl.com"
.CC = "Name2@dhl.com; Name3@dhl.com; Name1@deutschepost.de"
.Subject = "1. Eskalation Express, Request ID XXXXXXXXX -KSF-"
.Body = "Sehr geehrter Herr Name," & vbCrLf & "" & vbCrLf & "leider haben wir auf  _
unsere Anfrage/n bisher keine Antwort erhalten." & vbCrLf & "Gemäß den Eskalationsstufen benö _
tige ich Ihre Hilfe und bitte Sie, die dringend benötigte Stellungnahme schnellstmöglich einholen zu lassen, damit der Fall zu einem finalen Abschluss gebracht werden kann." & vbCrLf & "" & vbCrLf & "Auszug aus GEMA:" & vbCrLf & "" & vbCrLf & "HIER BISHERIGE GEMAEINTRÄGE EINFÜGEN" & vbCrLf & "" & vbCrLf & "Für Ihre Unterstützung vielen Dank im voraus." & vbCrLf & "" & vbCrLf & ""
'Hier wird die Mail nochmals angezeigt
.Display 'oder .Send zum versenden
End With
'OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

Die große Frage: Geht das überhaupt? Ich möchte das ungerne über eine Eingabe in eine Zelle oder ein Textfeld lösen, das würde ich vermutlich auch alleine hinbekommen. ;-) Das Pop-Up hätte was schönes, elegantes an sich.
Vielen Dank für jede Hilfe und beste Grüße aus Hamburg
Dennis M.

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

Betreff
Datum
Anwender
Anzeige
AW: Pop-Up fenster für eine Eingabe
09.01.2015 11:46:49
UweD
Hallo
so?
Private Sub CommandButton1_Click()
Dim Nachricht As Object, OutApp As Object
Dim IDNr As String
IDNr = InputBox("XXXXXXXXX durch die Request ID ersetzen", "Eskalationsmail", "XXXXXXXXX")
MsgBox ("Bitte in der Eskalationsmail beachten:" & vbCrLf & "" & vbCrLf & _
"1. Die Zeile HIER BISHERIGE GEMAEINTRÄGE EINFÜGEN bearbeiten" & vbCrLf & _
"" & vbCrLf & "2. Eigene Signatur anfügen!")
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "Name1@dhl.com"
.CC = "Name2@dhl.com; Name3@dhl.com; Name1@deutschepost.de"
.Subject = "1. Eskalation Express, Request ID " & IDNr & " -KSF-"
.Body = "Sehr geehrter Herr Name," & vbCrLf & "" & vbCrLf & "leider haben wir auf  _
unsere Anfrage/n bisher keine Antwort erhalten." _
& vbCrLf & "Gemäß den Eskalationsstufen benötige ich Ihre Hilfe und bitte Sie, die  _
dringend benötigte Stellungnahme schnellstmöglich einholen zu lassen, damit der Fall zu einem finalen Abschluss gebracht werden kann." _
& vbCrLf & "" & vbCrLf & "Auszug aus GEMA:" & vbCrLf & "" & vbCrLf & "HIER  _
BISHERIGE GEMAEINTRÄGE EINFÜGEN" & vbCrLf & "" & vbCrLf & "Für Ihre Unterstützung vielen Dank im voraus." & vbCrLf & "" & vbCrLf & ""
'Hier wird die Mail nochmals angezeigt
.Display 'oder .Send zum versenden
End With
'OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub
Gruß UweD

Anzeige
AW: Pop-Up fenster für eine Eingabe
09.01.2015 12:00:03
Dennis
Klasse,
genau das habe ich gesucht. Vielen Dank, Uwe! :-)

Eigene Signatur über Outllok
09.01.2015 12:20:31
Klaus
Hallo Dennis,
du hast zwar nicht danach gefragt, aber ich antworte trotzdem. Nutze "GetInspector.Display" statt "Display", dann fügt Outlook automatisch die Standardsignatur des Nutzers an. Im Gegensatz zu "Display" muss der "GetInspector" aber am Anfang stehen. Das Makro sähe dann so aus:
Private Sub CommandButton1_Click()
Dim Nachricht As Object, OutApp As Object
Dim IDNr As String
IDNr = InputBox("XXXXXXXXX durch die Request ID ersetzen", "Eskalationsmail", "XXXXXXXXX")
MsgBox ("Bitte in der Eskalationsmail beachten:" & vbCrLf & "" & vbCrLf & _
"1. Die Zeile HIER BISHERIGE GEMAEINTRÄGE EINFÜGEN bearbeiten" & vbCrLf & _
"" & vbCrLf) ' & "2. Eigene Signatur anfügen!")
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.GetInspector.Display
.To = "Name1@dhl.com"
.CC = "Name2@dhl.com; Name3@dhl.com; Name1@deutschepost.de"
.Subject = "1. Eskalation Express, Request ID " & IDNr & " -KSF-"
.Body = "Sehr geehrter Herr Name," & vbCrLf & "" & vbCrLf & "leider haben wir auf  _
unsere Anfrage/n bisher keine Antwort erhalten." _
& vbCrLf & "Gemäß den Eskalationsstufen benötige ich Ihre Hilfe und bitte Sie, die  _
dringend benötigte Stellungnahme schnellstmöglich einholen zu lassen, damit der Fall zu einem finalen Abschluss gebracht werden kann." _
& vbCrLf & "" & vbCrLf & "Auszug aus GEMA:" & vbCrLf & "" & vbCrLf & "HIER  _
BISHERIGE GEMAEINTRÄGE EINFÜGEN" & vbCrLf & "" & vbCrLf & "Für Ihre Unterstützung vielen Dank im voraus." & vbCrLf & "" & vbCrLf & ""
End With
'OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub
hier ungetestet - klappt aber in "meinen" Mail-Makros gut.
Grüße,
Klaus M.vdT.

Anzeige
AW: Eigene Signatur über Outllok
09.01.2015 12:29:26
Dennis
Hallo Klaus,
Danke für den Tipp, das habe ich auch schon angedacht. Mir war aber so, dass das nur in höheren Versionen als Ofice 2003 ging, oder nicht? Ich teste das nachher mal durch. Erstmal muss ich ~300 CommandButtons umbauen. ;-)
Danke und Gruß
Dennis

300 Buttons ?
09.01.2015 12:45:38
Klaus
Hallo Dennis,
wenn du wegen so einer kleinen Änderung 300 Buttons umbauen musst liegt bei dir etwas im argen! Du kannst Code auch in Module auslagern und aus Buttons aufrufen. Anbei mal ein Beispiel auf die schnelle:
Public mySubject As String
Public myTo As String
Public myCC As String
Public myText As String
Sub Button1()
Dim IDNr As String
IDNr = InputBox("XXXXXXXXX durch die Request ID ersetzen", "Eskalationsmail", "XXXXXXXXX")
MsgBox ("Bitte in der Eskalationsmail beachten:" & vbCrLf & "" & vbCrLf & _
"1. Die Zeile HIER BISHERIGE GEMAEINTRÄGE EINFÜGEN bearbeiten" & vbCrLf & _
"" & vbCrLf)
myTo = "Name1@dhl.com"
myCC = "Name2@dhl.com; Name3@dhl.com; Name1@deutschepost.de"
mySubject = "1. Eskalation Express, Request ID " & IDNr & " -KSF-"
myText = "Sehr geehrter Herr Name," & vbCrLf & "" & vbCrLf & "leider haben wir auf unsere  _
Anfrage/n bisher keine Antwort erhalten." _
& vbCrLf & "Gemäß den Eskalationsstufen benötige ich Ihre Hilfe und bitte Sie, die  _
dringend benötigte Stellungnahme schnellstmöglich einholen zu lassen, damit der Fall zu einem finalen Abschluss gebracht werden kann." _
& vbCrLf & "" & vbCrLf & "Auszug aus GEMA:" & vbCrLf & "" & vbCrLf & "HIER  _
BISHERIGE GEMAEINTRÄGE EINFÜGEN" & vbCrLf & "" & vbCrLf & "Für Ihre Unterstützung vielen Dank im voraus." & vbCrLf & "" & vbCrLf & ""
Call SendSheetOutlook(mySubject, myTo, myCC, myText)
End Sub
Sub Button2()
myTo = "werAnders@mailserver.com"
myCC = "ich@post.com; du@porsche.com; ersiees@microsoft.de"
mySubject = "Das Mail von heute"
myText = "Hallo Leute, hier sende ich ein völlig anderes Mail mit dem gleichem Mail-Makro  _
wie oben"
Call SendSheetOutlook(mySubject, myTo, myCC, myText)
End Sub
Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String)
Dim olApp         As Object
Dim olOldBody     As String
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
End With
End Sub
So kannst du mit zwei Buttons (oder 300) zwei (oder 300) verschiedene Mails verschicken - brauchst das Mail-Makro selber aber nur einmal.
Grüße,
Klaus M.vdT.

Anzeige
AW: GetInspector erst ab 2007
09.01.2015 13:29:27
Dennis
Tja, so ist das bei der Post. ;-) Dieses Jahr kommt aber ein neues Office, dann wird das auch eingebaut. Wegen der dich zu recht entsetzenden 300+ Buttons: Das geht leider in der Tat nicht anders, da jeweils 14 Buttons auf 29 Tabellenblättern sind, die auch alle einzeln gehalten werden müssen - Vorgabe von oben. Mit Suchen und Ersetzen ist das aber recht schnell gemacht, da habe ich schon schlimmere Operationen an der Datei vorgenommen. ;-) Und ich hab eine Beschäftigung für den schmalen Freitag.

Anzeige
Danke für die Rückmeldung! mit Text
09.01.2015 13:33:34
Klaus
Na dann Prost!
Ich spare mir jetzt jeglichen abfälligen Kommentar über den Zustand wenn Leute "von Oben" besser wissen wie man das Tagesgeschäft erledigt als die Sachbearbeiter selber - da haben wir alle unsere eigenen Storys zu erzählen :-)
Dann einen beschaulichen Freitag mit ganz viel STRG+C, STRG+V !
LG,
Klaus M.vdT.

AW: Danke für die Rückmeldung! mit Text
09.01.2015 13:44:33
Dennis
Jap, da kommen einige interessante Anekdoten zusammen. Aber das würde den Rahmen hier wohl sprengen.. Also auf in die Copy & Paste-Schlacht. :-D
Beste Grüße und ein schönes Wochenende
Dennis M.

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige