ID tematu: 27297
 |
Wysyłanie terminów do Outlook 2003 |
| Autor |
Wiadomość |
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-15, 23:16 Wysyłanie terminów do Outlook 2003
|
|
|
Witajcie,
Szczególnie OShon, uszanowanie :)
Muszę niestety dopytać.
| Kod: |
Sub outllok_przypomnienie()
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set przypomnienie = OutApp.CreateItem(1)
On Error Resume Next
With przypomnienie
.Start = "2008-10-20 22:00" '<- początek zdarzenia - możesz podać odwołanie do komorki w tórej znajduje się data i godzina np. range("A1")
.End = Range("A2") 'tak jak wyżej tylko że zakończenie zdarzenia
.AllDayEvent = False '<- czy wydarzenie całodzienne true/fales
.Subject = "przykładowe przypomnienie" '<- temat
.Body = "jakaś treść" '<-treść
.ReminderMinutesBeforeStart = 15 '<- przypomnienie 15 min. (podawane w minutach)
.ReminderSet = True '<-potwierdzenie ustawienia przypomnienia
.Save '<- zapis
End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub |
Chciałbym wskazać inną skrzynkę niż domyślną. Zgodnie z sugestią OShona sprawdziłem ścieżkę. Tylko nie wiem w którym, miejscu ją umieścić :(
Nieporadnie próbowałem tak:
| Kod: | | Set przypomnienie = OutApp.GetNamespace("MAPI").Folders("Skrzynka pocztowa - Sprzet").Folders("Kalendarz").CreateItem(1)) |
ale tak oczywiście nie ;/
Stąd moje pytanie w którym miejscu umieścić tą ścieżkę ? Podejrzewam: | Kod: | | OutApp.Session.Logon | ale nie wiem jak.
Pozdrawiam serdecznie i znowu proszę o pomoc
golly |
_________________ Excel 2003 |
|
 | ID posta:
144601
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
OShon
Excel Expert


Zaproszone osoby: 41
Pomógł: 620 razy Posty: 2037
|
Wysłany: 2012-01-16, 08:15
|
|
|
A deklaracja zmiennych gdzie?
co to jest przypomnienie
| Kod: | Sub outllok_przypomnienie()
Dim OutApp As Outlook.Application
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Dim oContactFolder As Object 'MAPIFolder
Set oContactFolder = OutApp.GetNamespace("MAPI").Folders("Skrzynka pocztowa - Sprzet"). _
Folders("Kalendarz")
Dim Przypomnienie As Outlook.AppointmentItem
Set Przypomnienie = oContactFolder.Items.Add
With Przypomnienie
.Start = "2008-10-20 22:00" '<- początek zdarzenia - możesz podać odwołanie do komorki w tórej znajduje się data i godzina np. range("A1")
.End = Range("A2") 'tak jak wyżej tylko że zakończenie zdarzenia
.AllDayEvent = False '<- czy wydarzenie całodzienne true/fales
.Subject = "przykładowe przypomnienie" '<- temat
.Body = "jakaś treść" '<-treść
.ReminderMinutesBeforeStart = 15 '<- przypomnienie 15 min. (podawane w minutach)
.ReminderSet = True '<-potwierdzenie ustawienia przypomnienia
.Save '<- zapis
End With
On Error GoTo 0
Set Przypomnienie = Nothing
Set oContactFolder = Nothing
Set OutApp = Nothing
End Sub |
|
_________________ MVP Office System, moderator Outlook.pl|WSS.pl|CodeGuru.pl, praca: Business Developer, blog: VBATools |
|
 | ID posta:
144615
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-16, 09:35
|
|
|
Dziękuję OShon.
Działa super!
czad
Bardzo dziękuję.
Skopiowałem ten program nie zastanawiając się nad nazwami zmiennych:).
Jeśli można to bym jeszcze dopytał o kwestie związane z tym tematem, przynajmniej z mojego punktu widzenia.
1. Czy w Outlook 2003 można tworzyć własne etykiety ? Jeśli tak to jak ?
2. Jak nadać etykietę terminowi stworzonemu powyższym programem ?
Jeszcze raz dziękuję za pomoc
pozdrawiam
golly |
_________________ Excel 2003 |
|
 | ID posta:
144628
|
|
|
 |
OShon
Excel Expert


Zaproszone osoby: 41
Pomógł: 620 razy Posty: 2037
|
|
 | ID posta:
144630
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-16, 10:10
|
|
|
Dziękuję Ci za pomoc.
Ja używam Outlook 2003 i Excel 2003.
Chodzi mi o etykiety jak na załączonym screenie (zgodnie z tym artykułem co mi wysłałeś to w 2007 zostały przekształcone na kategorie, w 2003 kategorie i etykiety są rozdzielone)
Dziękuję za pomoc
pozdrawiam
golly
etykiety.jpg
|
 |
| Plik ściągnięto 16 raz(y) 92.69 KB |
|
_________________ Excel 2003 |
|
 | ID posta:
144634
|
|
|
 |
OShon
Excel Expert


Zaproszone osoby: 41
Pomógł: 620 razy Posty: 2037
|
Wysłany: 2012-01-16, 10:40
|
|
|
W obiektach kalendarza powinieneś mieć parametr .label
Nie mam juz 2003 - nie mam jak sprawdzić, ale .categories też powinna działać.
Tutaj możesz obrać kolorek dla labela, przypisany do parametru procedury.
O cho cho - widzę że kolega mojego massmaila ma podpiętego ;]
Sprawdza się pod 2003?
Nazwę i ikonkę sobie zmień - aby ładnie się prezentowało. |
_________________ MVP Office System, moderator Outlook.pl|WSS.pl|CodeGuru.pl, praca: Business Developer, blog: VBATools |
|
 | ID posta:
144638
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-16, 11:13
|
|
|
Dziękuję OShon,
Korzystam z wielu twoich rozwiązań. Nie po to Cię tak męczę żeby później nic z tym nie robić :) Jestem Ci bardzo wdzięczny za to.
Szczerze powiem, że podziwiam Twoją i nie tylko Twoją cierpliwość na tym forum (i Outlook.pl) ... Ale to co Tobie przychodzi łatwo mi niestety dość często dość trudno...
Niestety nie wiem jak użyć tego programu który mi zaproponowałeś ;/
Jakie wartości mogę nadawać parametrowi .label (pewnie ten program powyżej to umożliwia)?
Chodzi mi o tekst i kolor.
pozdrawiam
golly |
_________________ Excel 2003 |
|
 | ID posta:
144644
|
|
|
 |
OShon
Excel Expert


Zaproszone osoby: 41
Pomógł: 620 razy Posty: 2037
|
Wysłany: 2012-01-16, 11:31
|
|
|
Po tym jak zapisujesz obiekt w pow procedurze (bo musi ju być utworzony i osadzony).
Dołączyć referencje Microsoft CDO 1.21 !!! Menu/tools/references
| Kod: | 'cokolwiek tam bylo...
with Przypomnienie
'...
.Save
end with
Call SetApptColorLabel(Przypomnienie, 2) 'numer to odpowiednik elementu labela
'...reszta |
no i dodatkowo procedura:
| Kod: | Private Sub SetApptColorLabel(objAppt As Outlook.AppointmentItem, intColor As Integer)
On Error Resume Next
' Dołączyć referencje Microsoft CDO 1.21
' intColor to 1=Ważne, 2=Praca, 3=Osobiste etc..
Const CdoPropSetID1 = "0220060000000000C000000000000046"
Const CdoAppt_Colors = "0x8214"
Dim objCDO As MAPI.Session
Dim objMsg As MAPI.Message
Dim colFields As MAPI.fields
Dim objField As MAPI.Field
On Error Resume Next
Set objCDO = CreateObject("MAPI.Session")
objCDO.Logon "", "", False, False
Set objMsg = objCDO.GetMessage(objAppt.EntryID, objAppt.Parent.StoreID)
Set colFields = objMsg.fields
Set objField = colFields.Item(CdoAppt_Colors, CdoPropSetID1)
If objField Is Nothing Then
Err.Clear
Set objField = colFields.Add(CdoAppt_Colors, vbLong, intColor, CdoPropSetID1)
Else
objField.value = intColor
End If
objMsg.Update True, True
Set objMsg = Nothing
Set colFields = Nothing
Set objField = Nothing
objCDO.Logoff
Set objCDO = Nothing
End Sub |
|
_________________ MVP Office System, moderator Outlook.pl|WSS.pl|CodeGuru.pl, praca: Business Developer, blog: VBATools |
|
 | ID posta:
144646
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-16, 12:15
|
|
|
Dziękuję OShon, gra i buczy! :)
... a jak sprawdzić czy termin o identycznym .Start i .Subiect już istnieje w kalendarzu ...? Żeby nie robić dubli (wrzuciłem sobie tą procedurę do arkusza do procedury zdarzeniowej Private Sub Worksheet_Change(ByVal Target As Range) więc chciałbym ograniczyć duble).
Wiem że przeginam, szukam granic twojej cierpliwości
Wielkie dzięki za pomoc!!
pozdrawiam
golly |
_________________ Excel 2003 |
|
 | ID posta:
144654
|
|
|
 |
OShon
Excel Expert


Zaproszone osoby: 41
Pomógł: 620 razy Posty: 2037
|
Wysłany: 2012-01-16, 13:10
|
|
|
hehe jak widzisz trochę wazeliny ogranicza moją empatie ;]
Aby sprawdzić czy już jest taki element należy wykonać pętelkę po strategicznych parametrach obiektu (temat, data,etc..) , w folderze jego osadzenia.
Jeśli warunek wykaże zgodność to .Delete i po kłopocie.
Niestety, taka operacja może być realizowana > niż sekundę co "trochę" odbije się na wydajności. |
_________________ MVP Office System, moderator Outlook.pl|WSS.pl|CodeGuru.pl, praca: Business Developer, blog: VBATools |
|
 | ID posta:
144666
|
|
|
 |
|
EXCELFORUM.pl POLECA - Bezplatne triki prosto na skrzynke email
|
golly
Exceloholic

Posty: 360
|
Wysłany: 2012-01-29, 21:39
|
|
|
Dziękuję za pomoc OShon
Pozdrawiam
golly |
_________________ Excel 2003 |
|
 | ID posta:
146653
|
|
|
 |
|
|