1.3k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Zusammen!
Ich habe ein Problem. Ich habe ein Formular in Excel und Word erstellt. Dieses Soll nun automatisch als Anhang per Mail versendet werden bei Aktivierung eines Buttons. Hierfür habe ich diesen Code gefunden:
Sub AktivesDokumentAlsAnhang()
Dim aws As String
Dim olapp As Object
ActiveDocument.Save
aws = ActiveDocument.FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
.To = "empfänger@server.de"
.Subject = "Text" ' Betreff optional
.HtmlBody ="Text" ' Body optional
.Attachments.Add aws
.Display
'SendKeys "%s", True ' optional Mail sofort senden
End With
Set olapp = Nothing
End Sub

Das eigentliche Problem ist jedoch, dass ich etwas programmieren muss, damit dieser Button erst funktioniert, wenn bestimmte Felder (in word) und bestimmte Zellen (in Excel) ausgefüllt sind. Mein Gedanke ist, dass der Button erst geklickt werden, kann wenn bestimmte Felder ausgefüllt sind, oder dass wenn der Button geklickt wird und Felder nicht ausgefüllt sind, diese Felder rot markiert werden und eine Box erscheint in der steht " Bitte zuerst alle Pflichtfelder ausfüllen".
Wer kann mir helfen? Ist es leichter in Word oder in Excel zu realisieren?
Vielen Dank!

1 Antwort

0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo,
ein kleiner Versuch zum Testen.

Button E-Mail senden, leere Zellen ausfüllen.

Gruß
fedjo


Sub Tabelle_senden()
If Sheets("Tabelle1").Range("A1") = "" Then
MsgBox "Bitte A1 ausfüllen!"
Sheets("Tabelle1").Range("A1").Select
Exit Sub
End If
If Sheets("Tabelle1").Range("B1") = "" Then
MsgBox "Bitte B1 ausfüllen!"
Sheets("Tabelle1").Range("B1").Select
Exit Sub
End If
If Sheets("Tabelle1").Range("C1") = "" Then
MsgBox "Bitte C1 ausfüllen!"
Sheets("Tabelle1").Range("C1").Select
Exit Sub
End If
If MsgBox("Soll das aktuelle Tabellenblatt als E-Mail versendet werden?", vbOKCancel) = vbOK Then
Application.DisplayAlerts = False
Dim aws As String
Dim olapp As Object
ActiveWorkbook.ActiveSheet.Copy
ActiveWorkbook.Save
aws = ActiveWorkbook.FullName
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
.to = "" 'E-Mail einfügen
.htmlbody = "Hallo "
.Subject = "Formular"
.Attachments.Add aws
.display
'.send
End With
Set olapp = Nothing
Application.DisplayAlerts = True
ActiveWorkbook.Close SaveChanges = False
Kill aws
End If
End Sub
...