PDA

Vollständige Version anzeigen : Mail mit Zelleninhalt per Knopfdruck


Eystorvag
07.07.2014, 10:03
Hallo zusammen

Ich bin bezüglich vba ein ziemlicher Neuling. Nach kleinen Anlaufschwierigkeiten läuft das programmieren von Knöpfe mit diversen Funktionen schon recht gut. Im folgenden Fall beisse ich mir jedoch die Zähne aus.

Mein Anliegen:
- Per Knopfdruck soll eine Email versandt werden.
- Den Empfänger (Mailadresse) soll aus der Excel-Tabelle ausgelesen und eingefügt werden.
- Im Betreff soll sich nur die Kalenderwoche ändern, diese kann ebenfalls aus der Tabelle ausgelesen werden.
- Nach einer kurzen Einleitung (Ebenfalls mit Kalenderwoche) soll eine Tabelle (U75:V87) wiedergegeben werden. Speziell ist jedoch dass die erste Zeile (U75:V75) immer abgebildet werden soll und die restlichen Zeilen nur wenn der Wert in Spalte V grösser ist als 0.

Ich habe mich durch diverse Foren gekämpft und den unten stehenden Code zusammengestellt, leider funktioniert er nicht.

Private Sub CommandButton13_Click()
Dim strMail As String
Dim strBetreff As String
Dim strMailBody As String
Dim SigString As String
Dim i As Integer

strMail = "Range(F65)"
strBetreff = "Protime-Buchung KW Range(F69)"
strMailBody = "Protime-Buchung der Kalenderwoche Range(F69)" & vbCrLf & vbCrLf & _
"Folgende PSP-Nummern müssen verbucht werden:" & vbCrLf & vbCrLf
With Sheets("Tabelle1")
For i = 75 To 87
If i <> 76 And .Cells(i, "V") > 0 Then strMailBody = strMailBody & .Cells(i, "U").Text & " " & .Cells(i, "V").Text & vbCrLf
Next i
End With
strMailBody = strMailBody & vbCrLf & vbCrLf & "Bitte umgehend eintragen und Mail ablegen." & vbCrLf & vbCrLf & _
"Gruss und einen schönen Tag."
Call SendeMail(strMail, strBetreff, strMailBody)



Kann mir da jemand weiterhelfen?

LG Marco

Beverly
07.07.2014, 10:26
Hi Marco,

da du den Code bereits getestet hast - WAS funktioniert denn nicht?

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Eystorvag
07.07.2014, 10:54
Hallo Karin

Vielen Dank für die schnelle Antwort.

Also nach der Aktivierung des Knopfes erschein eine Fehlermeldung.
Diese lautet " Fehler beim Kompilieren: Sub oder Function nicht definiert" danach markiert er mir die Zeile "Private Sub CommandButton13_Click()" gelb.

Ich habe ein Bild der Meldung/Code im Anhang angefügt.

Beverly
07.07.2014, 11:17
Hi,

ich nehme an, dass es in deiner Mappe keine Sub oder Function mit Namen "SendeMail" gibt.

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

Eystorvag
07.07.2014, 12:28
Aaah :) jetzt klappt das schon besser. Du hattest recht, die Sub hat gefehlt.

Jetzt nur noch eins... Zur zeit wird die Email zuerst angezeigt und ich muss sie manuel versenden. Ich möchte aber dass diese sofort nach dem Klick versandt wird.

Hier noch der Code der Sub:

Public Function SendeMail(strMail As String, _
strBetreff As String, strText As String, _
Optional StrBody As String, Optional strAttach2 As String, _
Optional strAttach3 As String)

Dim oApp As Object

Set oApp = CreateObject("Outlook.Application")

On Error Resume Next

With oApp.CreateItem(0)
.To = strMail
.CC = strCC
.Subject = strBetreff
.Body = strText
.display
End With

On Error GoTo 0
Set oApp = Nothing

End Function

Mc Santa
07.07.2014, 12:32
Hallo,

ändere folgenden Code.
.display
zu
.Send

Aber du musst dir jetzt sicher sein, dass die Email richtig erstellt wird und bei einem falschen Klick, wirds auch sofort geschickt ;)

VG

Eystorvag
07.07.2014, 12:40
Der Knopf wird noch umfunktioniert in Doppelklick und die Mails werden nur intern versendet (halb so schlimm wens mal nicht stimmt).

Vielen Dank euch beiden für die superschnelle Hilfe!!

Alles funktioniert jetzt wie es soll :D