Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1076to1080
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

Kann mir hier einer Helfen? To-Do Liste -2.Posting

Kann mir hier einer Helfen? To-Do Liste -2.Posting
02.06.2009 09:31:03
Jessi
Hallo zusammen,
kann mir hierzu vielleicht einer helfen? Bezieht sich auf folgendes ursprüngliche Posting:
"Thema: To-Do Liste Code funktioniert nicht mehr? Wieso?"
Hier wären meine Fragen. Ich wäre dankbar, wenn mir zu Punkt 1 und 2 zumindest einer sagen kann wie ich das logisch Verbinde? Die Konstellation kann ich später selbst bearbeiten.
Danke + Grüße
Jessi
Aus altem Posting:
1. Frage: "E-Mail Betreff"
Betrifft meines Erachtens folgenden Codeteil: objMailItm.Subject = .Cells(lRow, ctSpalteVorgang)
Ich würde gerne einen logischen E-Mail Betreff erstellen, der sich aus folgenden Values zusammensetzt:
IMMER Zelle B1 + IMMER Zelle B2 + "Vorgangs-Nr." + ctSpalteVorgang + "ist offen"
2. Frage: "Body Text"
Betrifft meines Erachtens folgenden Codeteil:
objMailItm.Body = .Cells(lRow, ctSpalteBetreff)
Dort würde ich gerne mehrere Informationen reinpacken, z.B. ctSpaltebetreff kombiniert z.B. Zeile untendrunter "DEADLINE:" ctSpalteprüfen
3. Frage:
Nach dem Mailen wird automatische ein "erledigt" in die Spalte J geschrieben, dies bedeutet allerdings nicht, dass die Aktivität auch erledigt ist. Ich würde das dann rausnehmen (habe ich auch schon mit Erfolg hinbekommen). Ob der Vorgang erledigt ist oder nicht sollte ich noch selbst entscheiden und dann eintragen. (so dass dieser Vorgang folglich nicht mehr beim Versenden mit betrachtet wird).
Aber besteht die Möglichkeit ab der Spalte Q die erfolgten Versendetermine einzutragen, sollte Q ausgefüllt sein (also schonmal ein Reminder versendet) soll in Spalte L ein weiteres Datum eingetragen werden. So könnte ich nämlich einen Verlauf der Reminderaktivitäten hinterlegen. Weiß allerdings absolut nicht wie ich das anstelle könnte, dass der immer eine Spalte weiterspringt, sofern gefüllt.
LG + schonmal Danke vorab für Eure Hilfe!
Jessi

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kann mir hier einer Helfen? To-Do Liste -2.Posting
02.06.2009 16:17:54
fcs
Hallo Jessi,
die Texte für Betreff und Body der mail kannst du durch "zusammenbasteln" von Zellinhalten und Text erzeugen.
Gruß
Franz
Meine Lösungsvorschläge:

Sub aatest()
Dim wks As Worksheet, lSpalte As Long
With wks
'1. Frage: "E-Mail Betreff"
objMailItm.Subject = .Range("B1") & .Range("b2") & " Vorgangs-Nr. " _
& .Cells(lrow, ctSpalteVorgang) & " ist offen."
'2. Frage: "Body Text"
objMailItm.Body = .Cells(lrow, ctSpalteBetreff) & Chr(10) _
& "DEADLINE: " & ctSpalteprüfen
'Statt Chr(10) evtl. Chr(13) verwenden.
'3. Frage:
'Aber besteht die Möglichkeit ab der Spalte Q die erfolgten Versendetermine _
einzutragen, sollte Q ausgefüllt sein (also schonmal ein Reminder versendet) _
soll in Spalte L ein weiteres Datum eingetragen werden. So könnte ich nämlich _
einen Verlauf der Reminderaktivitäten hinterlegen. Weiß allerdings absolut _
nicht wie ich das anstelle könnte, dass der immer eine Spalte weiterspringt, _
sofern gefüllt.
'letzte ausgefüllte Spalte in Zeile
iSpalte = .Cells(lrow, .Columns.Count).End(xlToLeft).Column
If lSpalte >= 17 Then 'in SPalte Q oder rechts davon stehen Werte
'wiederholter Versand
lSpalte = lSpalte + 1
'In Spalte L etwas eintragen
.Cells(lrow, 12) = Date + 5
Else
'1. Versand
lSpalte = 17
End If
.Cells(lrow, lSpalte) = Date 'Versanddatum ab Spalte Q eintragen
End With
End Sub


Anzeige
AW: Kann mir hier einer Helfen? To-Do Liste -2.Posting
02.06.2009 22:43:44
Jessi
Hallo Franz,
super, vielen Dank ihr seid einfach spitze hier!!! Mit den Angaben kann ich das Subject & Body-Text so umbauen, wie ich es brauche.
Ich habe das jetzt mal eingebaut, irgendwie läuft der Punkt 3 aber nicht. So sieht der Code jetzt aus:

Sub VerfallPrüfen()
Const ctTabellenName = "Tabelle1"
Const ctSpalteVorgang = "B"
Const ctSpaltePrüfen = "K"
Const ctSpalteErledigt = "J"
Const ctSpalteDate = "Q"
Const ctSpalteBetreff = "H"
Const ctSpalteEmpfänger = "o"
Const ctVorgangNrText = "Vorgangs - Nr. "
Dim lRow As Long
Dim bDoCheck As Boolean
Dim objApp As Object
Dim objMailItm As Object
Set objApp = CreateObject("Outlook.Application")
lRow = 9
bDoCheck = True
Do While bDoCheck
With Sheets(ctTabellenName)
If .Cells(lRow, ctSpaltePrüfen)  "erledigt" Then
Set objMailItm = objApp.CreateItem(0)
objMailItm.To = .Cells(lRow, ctSpalteEmpfänger)
objMailItm.Subject = .Range("B1") & .Range("b2") & " Vorgangs-Nr. " _
& .Cells(lRow, ctSpalteVorgang) & " ist offen."
objMailItm.Body = .Cells(lRow, ctSpalteBetreff) & Chr(10) _
& "DEADLINE: " & ctSpaltePrüfen
objMailItm.Send
Set objMailItm = Nothing
.Cells(lRow, ctSpalteDate) = Date
.Cells(lRow, ctSpalteErledigt) = "erledigt"
'letzte ausgefüllte Spalte in Zeile
iSpalte = .Cells(lRow, .Columns.Count).End(xlToLeft).Column
If lSpalte >= 17 Then 'in SPalte Q oder rechts davon stehen Werte
'wiederholter Versand
lSpalte = lSpalte + 1
'In Spalte L etwas eintragen
.Cells(lRow, 12) = Date + 5
Else
'1. Versand
lSpalte = 17
End If
.Cells(lRow, lSpalte) = Date 'Versanddatum ab Spalte Q eintragen
End If
lRow = lRow + 1
bDoCheck = Not (IsEmpty(.Cells(lRow, ctSpaltePrüfen)))
End With
Loop
Set objApp = Nothing
End Sub


Anzeige
neuer Upload
03.06.2009 10:26:32
Jessi
Hallo zusammen,
erstmal der neue Upload, mit dem Code von FCS "Franz" eingebaut.
hier der Link: https://www.herber.de/bbs/user/62168.xls
irgendwie habe ich im Bereich Spalte Q bis Z Einträge, die ich nicht ganz nachvollziehen kann?
Und in Spalte L wird auch etwas geschrieben? Teilweise auch die Spalte L befüllt.
AW: neuer Upload
03.06.2009 12:00:47
fcs
Hallo Jessi,
ich hab mir deinen Code mal angesehen.
Damit die Überprüfung der Solltermine in Spalte K nach einer Erinnering mit neuem Termin noch gut funktioniert, muss dieser auch immer jeweils in Spalte K eingetragen werden. In den Spalten L bis N werden dann immer die vorherigen Solltermine eingetragen, bei mehr als 3 Erinnerungen wird immer der Wert in Spalte N ersetzt.
Hier die angepasste Prozedur.
Generell sollte man bei Verwendung von "Cells" immer nummerische Werte für Zeilen udn Spalten verwenden, auch wenn Excel hier Alpha-Angaben für die Spalten im Code akzeptiert.
Gruß
Franz

Sub VerfallPrüfen()
Const ctTabellenName = "Tabelle1"
Const ctSpalteVorgang = 2 '"B"
Const ctSpaltePrüfen = 11 '"K"
Const ctSpalteErledigt = 10 '"J"
Const ctSpalteDate = 17 '"Q"
Const ctSpalteBetreff = 8 ' "H"
Const ctSpalteEmpfänger = 15 '"O"
Const ctVorgangNrText As String = "Vorgangs - Nr. "
Const strErledigt As String = "x" 'Wert in Spalte J, der erledigte Aktion kennzeichnet
Dim lRow As Long, lSpalte As Long, lSpalteSoll
Dim bDoCheck As Boolean
Dim objApp As Object
Dim objMailItm As Object
Set objApp = CreateObject("Outlook.Application")
lRow = 9
bDoCheck = True
Do While bDoCheck
With Sheets(ctTabellenName)
If .Cells(lRow, ctSpaltePrüfen)  LCase(strErledigt) Then
Set objMailItm = objApp.CreateItem(0)
objMailItm.To = .Cells(lRow, ctSpalteEmpfänger)
objMailItm.Subject = .Range("B1") & .Range("b2") & " Vorgangs-Nr. " _
& .Cells(lRow, ctSpalteVorgang) & " ist offen."
objMailItm.Body = .Cells(lRow, ctSpalteEmpfänger) _
& ", folgende Aktivität ist zum Abschluss zu bringen:" _
& " " & .Cells(lRow, ctSpalteBetreff) & Chr(10) _
& "DEADLINE: " & .Cells(lRow, ctSpaltePrüfen) & " " & _
"Bitte um Rückantwort per E-Mail, sofern Aktivität erledigt!" _
& "Besten Dank vorab!" _
objMailItm.Send
Set objMailItm = Nothing
'               .Cells(lRow, ctSpalteDate) = Date
'               .Cells(lRow, ctSpalteErledigt) = strErledigt
'letzte ausgefüllte Spalte in Zeile
lSpalte = .Cells(lRow, .Columns.Count).End(xlToLeft).Column
If lSpalte >= ctSpalteDate Then 'in SPalte Q oder rechts davon stehen Werte
'wiederholter Versand
lSpalte = lSpalte + 1
Else
'1. Versand
lSpalte = ctSpalteDate
End If
'In Spalte L bis N aktuellen Soll-Termin in nächste leere Zelle eintragen
If Not IsEmpty(.Cells(lRow, 14)) Then
'Alle 3 Alt-Solltermine schon ausgefüllt
MsgBox "Für lfd.Nr. " & .Cells(lRow, 2) _
& " kann 4. Termin-Soll nicht eingetragen werden!." & vbLf _
& "Termin alt(3) wird überschrieben!"
.Cells(lRow, 14) = .Cells(lRow, 11)
Else
For lSpalteSoll = 12 To 14
If IsEmpty(.Cells(lRow, lSpalteSoll)) Then
.Cells(lRow, lSpalteSoll) = .Cells(lRow, 11)
Exit For
End If
Next
End If
'neuen aktuellen Solltermin (Heute + 5 Tage) in Spalte K eintragen
.Cells(lRow, ctSpaltePrüfen) = Date + 5
'Versanddatum ab Spalte Q eintragen
.Cells(lRow, lSpalte) = Date
End If
lRow = lRow + 1
bDoCheck = Not (IsEmpty(.Cells(lRow, ctSpaltePrüfen)))
End With
Loop
Set objApp = Nothing
End Sub


Anzeige
Danke
03.06.2009 16:58:04
Jessi
Hallo Franz,
danke für die Rückmeldung. Habe den Code jetzt mal so eingebaut und läuft prima!!! :-)
Eine kleine Sache noch, kann ich in den Mail Bodytext auch komplett Leerzeilen einbauen? Damit das Ganze etwas übersichtlicher wird? Wenn ja, wie?
LG
Jessi
AW: Danke
03.06.2009 17:25:39
fcs
Hallo Jessi,
Leerzeilen fügst du ein, indem du 2 oder mehr
& Chr(10) & Chr(10)
oder ggf auch
& Chr(13) & Chr(13)
in den Code für den Text einbaust.
Gruß
Franz
Beispiel

objMailItm.Body = .Cells(lRow, ctSpalteEmpfänger) _
& ", folgende Aktivität ist zum Abschluss zu bringen:" _
& " " & .Cells(lRow, ctSpalteBetreff) & Chr(10) _
& "DEADLINE: " & .Cells(lRow, ctSpaltePrüfen) & " " & Chr(10) & Chr(10) _
"Bitte um Rückantwort per E-Mail, sofern Aktivität erledigt!" _
& Chr(10) & Chr(10) & "Besten Dank vorab!"


Anzeige
SUPER! DANKE!
04.06.2009 10:30:50
Jessi
Hallo Franz,
DANKE für die Rückmeldung. Habe bereits meinen Mailbody - meinem Wunsch - entsprechend formatieren können. :-)
LG
Jessi
Fehlermeldung: Typen unverträglich?
04.06.2009 11:07:33
Jessi
Hallo Franz,
habe jetzt eine Fehlermeldung erhalten, Typen unverträglich in folgendem Bereich:
"

::::::AKTIVITÄTENVERLAUF::::::

" & Chr(10)
'Ausgabe des Datums wann die Aktivität aufgezeichnet / erfasst wurde
Chr (10) & "Erfassung der Aktivität durch die Projektsteuerung: " & .Cells(lRow, ctSpalteErfassung) & _
Chr(10) & "Quelle der Aktivität: " & .Cells(lRow, ctSpalteQuelle) & _
Chr(10) & Chr(10) _
& "Termin SOLL aktuell: " & .Cells(lRow, ctSpaltePrüfen) _
& "Termin SOLL alt 1: " & .Cells(lRow, ctSpaltePrüfenAlt1) _
& "Termin SOLL alt 2: " & .Cells(lRow, ctSpaltePrüfenAlt2) _
& "Termin SOLL alt 3: " & .Cells(lRow, ctSpaltePrüfenAlt3) & _
Chr(10) & Chr(10) & _
"

::::::REMINDER-MAIL-VERLAUF::::::

" & Chr(10) _
'Angabe der Verlaufsdokumentation der Reminder-E-Mails
Chr (10) & "Reminder wurden bereits versendet am: " & Chr(10) & _
"1. - " & .Cells(lRow, ctSpalteDate1) & Chr(10) & _
"2. - " & .Cells(lRow, ctSpalteDate2) & Chr(10) & _
"3. - " & .Cells(lRow, ctSpalteDate3) & Chr(10) & _
"4. - " & .Cells(lRow, ctSpalteDate4) & Chr(10) & _
"5. - " & .Cells(lRow, ctSpalteDate5) & Chr(10) & _
"6. - " & .Cells(lRow, ctSpalteDate6) & Chr(10) & _
"7. - " & .Cells(lRow, ctSpalteDate7) & Chr(10) & _
"8. - " & .Cells(lRow, ctSpalteDate8) & Chr(10) & _
"9. - " & .Cells(lRow, ctSpalteDate9) & Chr(10) & _
"10. - " & .Cells(lRow, ctSpalteDate10) & Chr(10)
Kannst Du Dir das erklären?
Weißt Du zufällig wie ich die Standardsignatur in den Bodytext einarbeiten kann?
LG + Danke vorab!
Jessi
Anzeige
AW: Fehlermeldung: Typen unverträglich?
08.06.2009 12:49:57
fcs
Hallo Jessi,
es fehlen "&" Zeichen und du hast Anmerkungszeilen miten in die Code-Zeilen geschrieben.
Es ist auch meistens übersichtlicher, wenn man sollche langen Texte in einer Variablen speichert und in der entsprechenden Anweisung dann die Variable verwendet.
Bei der Standard-Signatur kann ich dir leider nicht weiter helfen.
Gruß
Franz

'Ausgabe des Datums wann die Aktivität aufgezeichnet / erfasst wurde _
und _
Angabe der Verlaufsdokumentation der Reminder-E-Mails
& _
":::::: AKTIVITÄTENVERLAUF::::::" & Chr(10) & _
Chr(10) & "Erfassung der Aktivität durch die Projektsteuerung: " & .Cells(lRow,  _
ctSpalteErfassung) & _
Chr(10) & "Quelle der Aktivität: " & .Cells(lRow, ctSpalteQuelle) & _
Chr(10) & Chr(10) _
& "Termin SOLL aktuell: " & .Cells(lRow, ctSpaltePrüfen) _
& "Termin SOLL alt 1: " & .Cells(lRow, ctSpaltePrüfenAlt1) _
& "Termin SOLL alt 2: " & .Cells(lRow, ctSpaltePrüfenAlt2) _
& "Termin SOLL alt 3: " & .Cells(lRow, ctSpaltePrüfenAlt3) & _
Chr(10) & Chr(10) & _
":::::: REMINDER -MAIL - VERLAUF::::::" & Chr(10) & _
Chr(10) & "Reminder wurden bereits versendet am: " & Chr(10) & _
"1. - " & .Cells(lRow, ctSpalteDate1) & Chr(10) & _
"2. - " & .Cells(lRow, ctSpalteDate2) & Chr(10) & _
"3. - " & .Cells(lRow, ctSpalteDate3) & Chr(10) & _
"4. - " & .Cells(lRow, ctSpalteDate4) & Chr(10) & _
"5. - " & .Cells(lRow, ctSpalteDate5) & Chr(10) & _
"6. - " & .Cells(lRow, ctSpalteDate6) & Chr(10) & _
"7. - " & .Cells(lRow, ctSpalteDate7) & Chr(10) & _
"8. - " & .Cells(lRow, ctSpalteDate8) & Chr(10) & _
"9. - " & .Cells(lRow, ctSpalteDate9) & Chr(10) & _
"10. - " & .Cells(lRow, ctSpalteDate10) & Chr(10)
'ODER speichern der Textinhalte in einer Variablen
'Ausgabe des Datums wann die Aktivität aufgezeichnet / erfasst wurde
strText = ":::::: AKTIVITÄTENVERLAUF::::::" & Chr(10) & _
Chr(10) & "Erfassung der Aktivität durch die Projektsteuerung: " & .Cells(lRow,  _
ctSpalteErfassung) & _
Chr(10) & "Quelle der Aktivität: " & .Cells(lRow, ctSpalteQuelle) & _
Chr(10) & Chr(10) _
& "Termin SOLL aktuell: " & .Cells(lRow, ctSpaltePrüfen) _
& "Termin SOLL alt 1: " & .Cells(lRow, ctSpaltePrüfenAlt1) _
& "Termin SOLL alt 2: " & .Cells(lRow, ctSpaltePrüfenAlt2) _
& "Termin SOLL alt 3: " & .Cells(lRow, ctSpaltePrüfenAlt3) & _
Chr(10) & Chr(10)
'Angabe der Verlaufsdokumentation der Reminder-E-Mails
strText = strText _
& ":::::: REMINDER -MAIL - VERLAUF::::::" & Chr(10) & _
Chr(10) & "Reminder wurden bereits versendet am: " & Chr(10) & _
"1. - " & .Cells(lRow, ctSpalteDate1) & Chr(10) & _
"2. - " & .Cells(lRow, ctSpalteDate2) & Chr(10) & _
"3. - " & .Cells(lRow, ctSpalteDate3) & Chr(10) & _
"4. - " & .Cells(lRow, ctSpalteDate4) & Chr(10) & _
"5. - " & .Cells(lRow, ctSpalteDate5) & Chr(10) & _
"6. - " & .Cells(lRow, ctSpalteDate6) & Chr(10) & _
"7. - " & .Cells(lRow, ctSpalteDate7) & Chr(10) & _
"8. - " & .Cells(lRow, ctSpalteDate8) & Chr(10) & _
"9. - " & .Cells(lRow, ctSpalteDate9) & Chr(10) & _
"10. - " & .Cells(lRow, ctSpalteDate10) & Chr(10)


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige