Microsoft Excel

Herbers Excel/VBA-Archiv

Fragen zu meiner ToDoListe

Betrifft: Fragen zu meiner ToDoListe von: mulsch0r
Geschrieben am: 26.08.2014 17:31:27

Guten Abend

ich habe mir folgenden code gebastelt und habe speziell zum Fett markierten Teil eine frage.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim TRow As Integer
TRow = Target.Row


If Target.Column = 12 Then
    If Target = "Erledigt" Then
        Sheets("Aufgaben").Rows(TRow).Copy
        Sheets("Erledigt").Cells(Sheets("Erledigt").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0). _
 _
Row, 1).PasteSpecial
        Sheets("Aufgaben").Rows(TRow).Delete Shift:=xlUp
    End If
End If

End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("H4:H100")) Is Nothing Then Call OpenCalender
    If Not Intersect(Target, Range("I4:I100")) Is Nothing Then Call OpenCalender
    If Not Intersect(Target, Range("J4:J100")) Is Nothing Then Call OpenCalender
    
    If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
        sendEmail
    End If
    
    
    
End Sub


Public Function sendEmail()
On Error GoTo ende

esubject = "Bitte folgende Aufgabe(n) erledigen"
'esubject = Tabelle2.Range("M4")
sendto = Tabelle2.Range("N4")
'ccto = Tabelle2.Range("L1")
ebody = Tabelle2.Range("G4") & vbCrLf & Starttermin & vbCrLf & Tabelle2.Range("H4") & 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


Momentan funktioniert das ganze wie folgt. Ich drück mit links auf die Zelle M4 (Email senden) und es öffnet sich eine E-Mail (outlook) mit den Aufgaben für meine Kollegen. leider funktioniert das jetzt nur in zeile 4. Wie kann ich den Code um schreiben das er immer die Zeile nimmt in der ich auf E-mail senden drücke?

Beispiel

.......A..........B.............C..........M(Email senden)
1....Betreff....Aufgabe....E-mail....leere Zelle
2....Betreff....Aufgabe....E-mail....leere Zelle
3....Betreff....Aufgabe....E-mail....leere Zelle
4....Betreff....Aufgabe....E-mail....leere Zelle

Drücke ich jetzt M1 sollen alle daten aus der ersten Zeile in der Email erscheinen
Drücke ich jetzt M2 sollen alle daten aus der zweiten Zeile in der Email erscheinen
usw....

Vielen Dank

  

Betrifft: AW: Fragen zu meiner ToDoListe von: Luschi
Geschrieben am: 26.08.2014 18:41:13

Hallo mulsch0r,

eigentlich ist es in den Foren üblich, erstmal die gestellten Fragen abzuarbeiten
und Feedback zu geben, statt immer neu Anfragen zu stellen!
siehe: https://www.herber.de/forum/messages/1378255.html

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Fragen zu meiner ToDoListe von: mulsch0r
Geschrieben am: 26.08.2014 19:34:52

Hallo von Luschi

Ich habe keine Funktion gefunden die erste Frage
wieder raus zu nehmen. Ich habe selbst gemerkt das die
erste Lösung viel zu Komplex für mich ist. Ich möchte es auch verstehen und hier keine
fertigen Lösungen ab greifen.

Hiermit Entschuldige ich mich dafür bei Ihnen und hoffe
nicht für zu viel Arbeit gesorgt zu haben.

Wenn Sie wissen wie ich den ersten Beitrag löschen kann würde ich mich
über diese Information freuen

Gruß
mulsch0r


  

Betrifft: AW: Fragen zu meiner ToDoListe von: Michael
Geschrieben am: 26.08.2014 22:31:08

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


 

Beiträge aus den Excel-Beispielen zum Thema "Fragen zu meiner ToDoListe"