Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1376to1380
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
Inhaltsverzeichnis

schon wieder ein Fehler! Bitte Hilfe!!!!

schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 09:51:00
Alexa
Hallo zusammen,
ich möchte, dass sobald im Excel im Eingabeformular1 der Übernehmenbutton gedrückt wird, soll eine Mail geschickt werden, dass ein neuer Kunde angelegt wurde.
Aber ich verstehe den Code nicht ganz, und kann auch deshalb den Fehler nicht finden...
Bitte helft mir..
Sub lotus()
' Die Variablen für Empfänger und Anhang sind richtig zu belegen
Dim sText As String, sEmpfang As String, sBetrifft As String
Dim session As Object, db As Object, doc As Object, rtobject As Object
Dim rtitem As Object, sKopie As String
Dim AttachMe As Object, DerAnhang As Object
Dim user As String, server As String
Dim mailfile As String, sBlindKopie As String
Dim vAn As Variant, vCopy As Variant
Dim vBlind As Variant, sAnhang As String
On Error GoTo Fehler
sText = "Test " & vbCrLf & "Zweite Zeile" ' Testtext
sText = Replace(sText, vbCrLf, Chr(10)) ' Zeilenumbrüche ändern
sEmpfang = "alexa@googlemail.de
sBetrifft = "neues Rohr" ' die Betreffzeile
' sKopie = "Email1 ; Email2 " ' Einträge durch " ; " getrennt
' sBlindKopie = "Email1 ; Email2 " ' Einträge durch " ; " getrennt
' vAn = Split(sEmpfang, " ; ") ' Empfänger Array
sAnhang = Sheets("Messauftrag") ' Muss natürlich richtig gesetzt werden
If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
user = session.UserName
server = session.GetEnvironmentString("MailServer", True)
mailfile = session.GetEnvironmentString("MailFile", True)
Set db = session.getdatabase(server, mailfile)
Set doc = db.createdocument()
doc.Form = "Memo"
doc.SendTo = vAn  ' an array
If Len(sKopie) > 0 Then doc.copyto = vCopy 'cc Array
If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind 'bcc Array
doc.Subject = sBetrifft ' die Betreffzeile
Set rtitem = doc.CREATERICHTEXTITEM("body")
Call rtitem.APPENDTEXT(sText)
doc.SAVEMESSAGEONSEND = True
doc.PostedDate = Now
If sAnhang  "" Then
Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
End If
Call doc.Send(False)
Aufraeumen:
On Error Resume Next
Set rtitem = Nothing
Set AttachMe = Nothing
Set DerAnhang = Nothing
Set db = Nothing
Set doc = Nothing
Set session = Nothing
Exit Sub
Fehler:
Resume Aufraeumen
End Sub
Danke und Gruß
Alexa

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 10:12:15
Rudi
Hallo,
da ist auf jeden Fall schon mal einer:
 sAnhang = Sheets("Messauftrag") ' Muss natürlich richtig gesetzt werden

Du kannst einer Stringvariablen kein Blatt zuweisen.
Gruß
Rudi

AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 11:16:23
Alexa
Danke, und wie kann ich des dann machen? Der Messauftrag ist mein 2.Reiter

AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 11:52:10
Rudi
Hallo,
was hast du denn vor?
willst du das Blatt als Anhang versenden?
Dann musst du es erst in eine neue Mappe kopieren und speichern.
Motto:
  sAnhang = "c:\temp\messauftrag_" & Format(Date, "yyyymmdd") & ".xlsx"
Sheets("Messauftrag").Copy
With ActiveWorkbook
.SaveAs sAnhang
.Close
End With

Gruß
Rudi

Anzeige
AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 12:32:31
Alexa
Hey,
ich möchte erst mal, dass dieses Blatt automatisch in irgendeinem Ordner gespeichert wird, und dann soll in der Mail nicht das ganze Dokument angehängt sein, sondern nur eine Benachrichtigung, dass etwas neues eingegeben wurde.
Danke;-)

AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 13:14:23
Rudi
Hallo,
erst mal, dass dieses Blatt automatisch in irgendeinem Ordner gespeichert wird
siehe mein Code
und dann soll in der Mail nicht das ganze Dokument angehängt sein
dann lass das
     If sAnhang  "" Then
Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
End If

weg.
sondern nur eine Benachrichtigung, dass etwas neues eingegeben wurde
passe sBetrifft und sText entsprechend an.
Gruß
Rudi

Anzeige
AW: schon wieder ein Fehler! Bitte Hilfe!!!!
03.09.2014 13:21:45
Alexa
Ich habe jetzt folgenden Code (im UserForm hinterlegt):
Sub lotus()
Dim sText As String, sEmpfang As String, sBetrifft As String
Dim session As Object, db As Object, doc As Object, rtobject As Object
Dim rtitem As Object, sKopie As String
Dim AttachMe As Object, DerAnhang As Object
Dim user As String, server As String
Dim mailfile As String, sBlindKopie As String
Dim vAn As Variant, vCopy As Variant
Dim vBlind As Variant, sAnhang As String
On Error GoTo Fehler
sText = "Test " & vbCrLf & "Zweite Zeile" ' Testtext
sText = "Info:Es wurde ein neues Rohr angelegt" ' Zeilenumbrüche ändern
sEmpfang = "alexa.paukstat@wieland.de ; achim.gotterbarm@wieland.de " ' Einträge durch " ; "  _
getrennt
sBetrifft = "Info:neues Rohr" ' die Betreffzeile
' sKopie = "Email1 ; Email2 " ' Einträge durch " ; " getrennt
' sBlindKopie = "Email1 ; Email2 " ' Einträge durch " ; " getrennt
' vAn = Split(sEmpfang, " ; ") ' Empfänger Array
sAnhang = Sheets("Messauftrag") ' Muss natürlich richtig gesetzt werden
If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
user = session.UserName
server = session.GetEnvironmentString("MailServer", True)
mailfile = session.GetEnvironmentString("MailFile", True)
Set db = session.getdatabase(server, mailfile)
Set doc = db.createdocument()
doc.Form = "Memo"
doc.SendTo = vAn  ' an array
If Len(sKopie) > 0 Then doc.copyto = vCopy 'cc Array
If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind 'bcc Array
doc.Subject = sBetrifft ' die Betreffzeile
Set rtitem = doc.CREATERICHTEXTITEM("body")
Call rtitem.APPENDTEXT(sText)
doc.SAVEMESSAGEONSEND = True
doc.PostedDate = Now
Call doc.Send(False)
Aufraeumen:
On Error Resume Next
Set rtitem = Nothing
Set AttachMe = Nothing
Set DerAnhang = Nothing
Set db = Nothing
Set doc = Nothing
Set session = Nothing
Exit Sub
Fehler:
Resume Aufraeumen
End Sub

Aber ich verstehe immer noch nicht, warum es nicht geht?
Danke;-)
Liebe Grüße
Alexa

Anzeige
du hast ja noch immer ...
03.09.2014 13:32:42
Rudi

sAnhang = Sheets("Messauftrag") 

drin stehen.
Gruß
Rudi

AW: du hast ja noch immer ...
03.09.2014 13:34:54
Alexa
Das habe ich jetzt raus, aber es geht immer noch nicht...
Oder was soll ich da hinschreiben?
Sorry, aber ich kenn mich mit VBA ned aus :-(
Danke für deine Hilfe

AW: du hast ja noch immer ...
03.09.2014 13:36:40
Alexa
Woher weiß der Code denn, dass die Mail gesendet werden soll, wenn "Übernehmen" im UserForm gedrückt wird? Fehlt des vll irgendwo?

AW: du hast ja noch immer ...
03.09.2014 13:42:21
Rudi
Hallo,
1. ist die Zeile vAn = Split(....) auskommentiert. Du brauchst aber einen Empfänger.
2. du musst den Code im Click-Ereignis des Buttons aufrufen.
Gruß
Rudi

Anzeige
AW: du hast ja noch immer ...
03.09.2014 14:20:23
Alexa

Private Sub lotus()
Dim sText As String, sEmpfang As String, sBetrifft As String
Dim session As Object, db As Object, doc As Object, rtobject As Object
Dim rtitem As Object, sKopie As String
Dim AttachMe As Object, DerAnhang As Object
Dim user As String, server As String
Dim mailfile As String, sBlindKopie As String
Dim vAn As Variant, vCopy As Variant
Dim vBlind As Variant, sAnhang As String
On Error GoTo Fehler
sText = "Test " & vbCrLf & "Zweite Zeile" ' Testtext
sText = "Info:Es wurde ein neuer Kunde angelegt" ' Zeilenumbrüche ändern
sEmpfang = "alexa@googlemail.com" ' Einträge durch " ; " getrennt
sBetrifft = "Info:neuer Kunde" ' die Betreffzeile
If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
user = session.UserName
server = session.GetEnvironmentString("MailServer", True)
mailfile = session.GetEnvironmentString("MailFile", True)
Set db = session.getdatabase(server, mailfile)
Set doc = db.createdocument()
doc.Form = "Memo"
doc.SendTo = vAn  ' an array
If Len(sKopie) > 0 Then doc.copyto = vCopy 'cc Array
If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind 'bcc Array
doc.Subject = sBetrifft ' die Betreffzeile
Set rtitem = doc.CREATERICHTEXTITEM("body")
Call rtitem.APPENDTEXT(sText)
doc.SAVEMESSAGEONSEND = True
doc.PostedDate = Now
Call doc.Send(False)
Aufraeumen:
On Error Resume Next
Set rtitem = Nothing
Set AttachMe = Nothing
Set DerAnhang = Nothing
Set db = Nothing
Set doc = Nothing
Set session = Nothing
Exit Sub
Fehler:
Resume Aufraeumen
End Sub
Das ist jetzt mein Code, er meldet mir keinen Fehler, aber trotzdem bekomme ich noch keine Mailbenachrichtigung... was stimmt denn da nicht?
Danke

Anzeige
AW: du hast ja noch immer ...
03.09.2014 14:40:20
Alexa
Ich habe es als neues Thema eröffnet

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige