Live-Forum - Die aktuellen Beiträge
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

Eintrag Termin Kalender Outlook

Eintrag Termin Kalender Outlook
27.08.2014 14:32:31
Mulsch0r
Hallo,
ich möchte aus meiner do do Liste wenn ich die Zelle M1:M100 anklicke das zum einem eine email versendet und zum anderen ein Termin angelegt wird.
Beides Funktioniert. Nun möchte ich aber auch das die beteiligeten Kollegen auch einen Termin bekommen bzw mit eingeladen werden.
'Öffnet mit Linksklick auf Zellen der Spalten H,I,J einen Kalender.
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
'Öffnet mit Linksklick auf Zellen der Spalten M Outlook.
If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
Call sendEmail(zeile:=Target.Row)
End If
 'Eintrag Termin in Outlook, sowie der mitwirkenden Mitarbeiter
If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
Call Outlook
End If
End Sub

Sub Outlook()
Dim OutApp
Dim apptOutApp
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1)
With apptOutApp
.Start = "28.08.2014" & " 18:00"
.Subject = "Test"
.Body = "Text"
.Location = "Testort"
.Duration = "19"
.Recipients.Add Tabelle2.Range("N" & zeile)
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
Set apptOutApp = Nothing
Set OutApp = Nothing
MsgBox "E-Mail wurde verschickt und Termin angelegt"
End Sub Ich dachte ich könnte die Range, für die Adressen genau so anwenden wie bei deim
versenden der E-Mail. sendto = Tabelle2.Range("N" & zeile) aber das funktioniert nicht.
Noch mal kurz: Der befehl .Recipients.Add Tabelle2.Range("N" & zeile) funktioniert bei mir nicht. Was kann ich tun?
Gruß
Mulsch0r
Hier nochmal der gesamte Code falls es sonst zu Missverständissen kommt.
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
Call sendEmail(zeile:=Target.Row)
End If
    If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
Call Outlook
End If
End Sub

Public Function sendEmail(zeile As Long)
On Error GoTo ende
esubject = "Bitte folgende Aufgabe(n) erledigen"
sendto = Tabelle2.Range("N" & zeile)
ebody = "Hallo," & vbCrLf & vbCrLf & _
"Projekt: " & Tabelle2.Range("C" & zeile) & vbCrLf & _
"Auftrag: " & Tabelle2.Range("D" & zeile) & vbCrLf & _
"Verantwortlicher: " & Tabelle2.Range("E" & zeile) & vbCrLf & _
"Mitarbeiter: " & Tabelle2.Range("F" & zeile) & vbCrLf & vbCrLf & _
"Aufgabe: " & Tabelle2.Range("G" & zeile) & vbCrLf & _
"Start Aufgabe:    " & Tabelle2.Range("H" & zeile) & vbCrLf & _
"Kontrolltermin:  " & Tabelle2.Range("I" & zeile) & vbCrLf & _
"Abgabetermin:   " & Tabelle2.Range("J" & zeile) & vbCrLf & _
"Bemerkung: " & Tabelle2.Range("K" & zeile) & vbCrLf & _
"Projetpfad: " & Tabelle2.Range("O" & zeile) & vbCrLf
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

Sub Outlook()
Dim OutApp
Dim apptOutApp
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1)
With apptOutApp
.Start = "28.08.2014" & " 18:00"
.Subject = "Test"
.Body = "Text"
.Location = "Testort"
.Duration = "19"
'.Recipients.Add Tabelle2.Range("N" & zeile)
.ReminderMinutesBeforeStart = 10
.ReminderPlaySound = True
.ReminderSet = True
.Save
End With
Set apptOutApp = Nothing
Set OutApp = Nothing
MsgBox "E-Mail wurde verschickt und Termin angelegt"
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag Termin Kalender Outlook
27.08.2014 19:06:09
Frank
Hallo,
ich weiss zwar nicht, ob ich die Lösung des Problems kenne, aber allen anderen würde es sicher auch helfen, wenn Du Der befehl .Recipients.Add Tabelle2.Range("N" & zeile) funktioniert bei mir nicht. etwas näher definieren würdest.
Kommt eine Fehlermeldung? Passiert nichts, wo etwas passieren sollte? Hängt sich XL auf und reissst Dein BS mit in den Abgrund?
Das könnten alles Hinweise sein, woran es liegt
Grüsse,
Frank

AW: Eintrag Termin Kalender Outlook
28.08.2014 09:07:25
Mulsch0r
Hallo Frank,
guten Morgen an alle,
ich drück normalerweise auf eine Zelle in der Spalte N und ich verschicke automatisch eine E-Mail mit allesn relavanten Daten für ein Projekt. Jetzt wollte ich auch noch Termine setzten für mich und für die Kollegen die es betrifft. Drücke ich jetzt die Zelle geht die E-Mail raus an mich und den Kollegen, aber nur bei mir wird der Termin eingetragen. Es kommt jetzt der Fehler laufzeitfehler 449 Argument ist nicht optional.
Ich bin leider noch nicht so fitt. Ich versuche aber immer alles nachzuvollziehen. Für mich war jetzt Logisch das ich es genau so machen könnte wie bei der E-Mail also so....
Auszüge des Codes ich werde die Tabell mal mit hochladen.
If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
Call sendEmail(zeile:=Target.Row)
If Not Intersect(Target, Tabelle2.Range("M4:M100")) Is Nothing Then
Call Outlook(Test:=Target.Row)

Public Function sendEmail(zeile As Long)
Sub Outlook(Test As Long)
sendto = Tabelle2.Range("N" & zeile)
.Recipients.Add = Tabelle2.Range("N" & Test)

Hier der Link zu meiner todoList
https://www.herber.de/bbs/user/92338.xlsm
Scheinbar geht es aber nicht so einfach wie ich dachte. Wie schon erwähnt ich verstehe noch nicht alles, aber ich bin bemüht dazu zu lernen und erwarte auch keinen fertigen Code.
Gruß
Mulsch0r

Anzeige
Methode prüfen
28.08.2014 10:51:20
Frank
Guten Morgen,
die von Dir verwendete Form .Recipients.Add = Tabelle2.Range("N" & Test) finde ich so in meiner Online-Hilfe nicht. Das kann aber daran liegen, dass ich nicht die aktuellste Software verwende :-)
Gemäss dieser Info wird das so erwartet
ActiveWorkbook.SendMail recipients:="Jean Selva"
zum Verschicken an einen Empfänger, oder so

.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")
bei mehreren Empfängern.
Das gilt aber für die SendMail-Methode von XL und nicht für die Outlook-Application. Da müsste man eventuell dort in der Online-Hilfe für VBA nachsehen.
Was auf jedenFall zu empfehlen ist, hänge ein .value an Deine Zellbezüge dran.
Grüsse,
Frank

Anzeige
AW: Methode prüfen
28.08.2014 11:31:22
Mulsch0r
Hi das ist leider nicht was ich benötige. Ich glaube aber auch das es nicht wichtig ist das andere auch einen termin bekommen es reicht eigentlich völlig aus das ich einen bekomme und das funktioniert ja. Trozdem vielen dank für die Mühe

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige