ich habe jetzt verzweifelt gesucht wo ich in meinem alten Thread
auf eine Hilfestellung antworten kann. Ich habe leider nichts gefunden.
Hi,
die Zeile, auf die geklickt wurde, findest Du in target.row. Laß Dir die mal in einer msgbox _
ausgeben, damit Du siehst, was zurückgegeben wird.
Anschließend definierst Du in sendmail eine Variable, die Du beim Aufruf
sendmail(target.row+korrekturwert)
übergibst:
Public Function sendEmail(zeile as long)
dort kannst du die Nr. weiterverarbeiten und auf die betreffende Zeile zugreifen, also etwa so:
sendto = Tabelle2.Range("N" & zeile)
Happy Exceling,
Michael
Hallo Michael ich wollte erst mal Danke sagen für die Antwort.Ich komme aber irgendwie nicht weiter. Es wärte nett wenn du oder auch gerne jemand anderes sich das noch mal anschauen könnte.
Wie du gesagt hast habe ich eine msgbox eingefügt was dem Verständnis gut tat.
Auch die variablen habe ich so gut ich kann eingefügt. Es wird jetzt aber keine E-mail mehr versendet. Jetzt kommt beim Kompilieren die Meldung " Argument ist nicht optional".
Änderungen von mir habe ich Fett gemacht
Private Sub Worksheet_SelectionChange(ByVal target As Range)
If Not Intersect(target, Tabelle1.Range("M1:M100")) Is Nothing Then
sendEmail 'hier kommt die Fehlermeldung beim Kompilieren
MsgBox target.Row
End If
End Sub
Public Function sendEmail(zeile As Long)
On Error GoTo ende
Dim zeile As Long
zeile = target.Row
esubject = Tabelle1.Range("M1")
sendto = Tabelle1.Range("K" & zeile)
ccto = Tabelle1.Range("L1")
ebody = Tabelle1.Range("M1") & vbCrLf & Tabelle1.Range("M2") & vbCrLf & "Best regards" & vbCrLf & "Björn"
newfilename = "U:\Test.pdf"
Set app = CreateObject("outlook.Application")
Set itm = app.createitem(0)
With itm
.Subject = esubject
.to = sendto
.cc = ccto
.body = ebody
.attachments.Add (newfilename)
.display
.send
End With
Set app = Nothing
Set itm = Nothing
ende:
End Function