Hallo,
Ich muss eine Umfrage per E-Mail durchführen.
Wenn man in Word ein Formular erzeugt, bekommt man sehr schöne Umfrageblätter. Jedoch muss der Anwender dieses dann speichern und das Gespeicherte per E-Mail Anhang senden. Das überfordert einige Empfänger bzw. ist zu umständlich.
Wie kann man eine Schaltfläche einbinden, die per Knopfdruck das Formular-Doc als E-Mail an einen vorgegebenen Adressaten schickt?
Muss man da Visual Basic bemühen?
Habe Word 2010, Word 2003 und Word 2007 Lösungen werden sicher auch da funktionieren.
Gruß
Smilie 
Wenn man in Word ein Formular erzeugt, bekommt man sehr schöne
Umfrageblätter. Jedoch muss der Anwender dieses dann speichern
und das Gespeicherte per E-Mail Anhang senden. Das überfordert
einige Empfänger bzw. ist zu umständlich.
Wie kann man eine Schaltfläche einbinden, die per Knopfdruck
das Formular-Doc als E-Mail an einen vorgegebenen Adressaten
schickt?
Hallo Smilie,
nimm eine Befehlsschaltfläche aus der Steuerelementtoolbox und ziehe sie im Dokument auf. Dann Rechtsklick darauf, „Code anzeigen“, die zwei Zeilen die dort szehen, löschen, dort dann nachstehenden Code reinkopieren.
Hochkomma bedeutet Kommentarzeile, Kommentartext
Codequelle
Private Sub CommandButton1\_Click()
Application.DisplayAlerts = False
Dim aws As String
Dim olapp As Object
ActiveWorkbook.Save
aws = ActiveWorkbook.FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
.To = "empfä[email protected]"
'.cc = "[email protected],[email protected],[email protected]" 'optional Kopie an
'.bcc = "[email protected],[email protected],[email protected]" 'optional Blindkopie an
.Subject = "Text" ' Betreff optional
.HtmlBody = "Text" ' Body optional
'.ReadReceiptRequested = True 'optional Lesebestätigung anfordern
.Attachments.Add aws
.Display
'SendKeys "%s", True ' optional Mail sofort senden
End With
Set olapp = Nothing
Application.DisplayAlerts = True
End Sub
Gruß
Reinhard
Vielen Dank, Reinhard!
Ledier funktioniert der Code nicht ganz, es kommt der Laufzeitfehler ‚424‘ Object not found in Zeile
ActiveWorkbook.Save
Ich hab mal ein wenig nachgegoogled aber keine Lösung dafür finden können. „appWord.ActiveWorkbook.Save“ geht auch nicht. Eine Idee?
Ha, jetzt habe ich doch herausgefunden, wo der Fehler liegt.
Vermutlich ist der Code für Excel geschrieben worden. Statt „ActiveWorksheet“ muss es lauten:
ActiveDocument.Save
aws = ActiveDocument.FullName
Jetzt funktioniert’s! Prima Sache…
Hallo Smiley,
okay, die Linkseite sah solide aus, da habe ich nicht getestet.
Du hast gesagt, die Empfänger sind leicht überfordert mit Word, jetzt sogar noch mit Vba, kann gut sein daß die bei der Abfrage ob das Dokument mit oder ohne makros gestartet werden soll aus Panik auf „Nein“ klicken.
In Excel weiß ich wie man sie mehr oder minder leicht dazu zwingen kann, auf „Ja“ zu klicken. Naja, in letzter Konsequenz zwingt man sie total, entweder Makros aktivieren oder du kriegst von der Tabelle nix zu sehen 
In Word müßte ich mal schauen ob und wie das da geht. Soll ich?
Zumindest schonmal schön daß der Code an sich funktioniert.
Gruß
Reinhard
Hallo Reinhard,
das größere Problem ist heute die Virenangst und restriktive IT.
Ich hab mal einen Empfäger zum Test angemeilt und er kam zurecht, deshalb denke ich, wir können das abschliessen.
Mit Adobe kann man, habe ich gesehen, ebenfalls einen Mailsende-Knopf einbauen, dort ohne Skripting aber halt nur nachträglich per Hand.
Vielen Dank nochmal!
Gruß
Smilie 