Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 27297 Skopiuj do schowka 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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
OShon 
Excel Expert



Zaproszone osoby: 41
Pomógł: 620 razy
Posty: 2037
Wysłany: 2012-01-16, 09:44   

Co rozumiesz przez etykiety - czy nie masz na myśli kategorie?

Kod:
.Categories = "BlaBla"
_________________
MVP Office System, moderator Outlook.pl|WSS.pl|CodeGuru.pl, praca: Business Developer, blog: VBATools
ID posta: 144630 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
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 Skopiuj do schowka
 
 

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 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum