Automatyczne UDW dla każdej wiadomości

Pytania, uwagi, problemy związane z Microsoft Office Outlook, wersje 2007, 2010, 2013 i 2016.

Moderator: Moderatorzy

Re: Automatyczne UDW dla każdej wiadomości

Postprzez piotriam » N 31.01.2016 20:18

Działa Dzięki!
piotriam
 
Posty: 3
Dołączył(a): So 30.01.2016 17:48

Re: Re: Automatyczne UDW dla każdej wiadomości

Postprzez George » N 27.03.2016 00:07

OShon napisał(a):
gomez.pl napisał(a):chiałbym mieć wyjątek/filtr, który: jeśli adres na który wysyłam będzie wp.pl (lub firmowa domena) to UDW nie będzie wysyłanie, bo to będzie pewnie korespondencja wew.
i druga kwestia: Jeśli w tytule będzie oferta lub ofer* (z maską) też będzie wysyłać UDW

No to trzeba dodać wyjątki na początek wyjścia z procedury przed dodaniem UDW:
Kod: Zaznacz cały
If Item.To Like "@wp.pl" Or _
   Item.To Like "@firma.pl" Then Exit Sub

Drugi warunek chyba nie ma sensu bo nie wyklucza dodawania dodatkowego adresu.


witam
no właśnie mnie się akurat by to przydało. mianowicie chcę wysłać do siebie w UDW email który sam tworzę i wysyłąm ALE tylko ten email który ma w tytule INVOICE WEEK.
stworzyłem na podstawie tego wątku coś takiego ale nie działa bo ukrywa mnie w kopii każdy email który wysyłam.

Option Explicit

Public Sub process_email(itm As Outlook.MailItem)
If InStr(itm.Subject, "invoice") > 0 Then
End If
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim oRecip As Recipient
Set oRecip = Item.Recipients.Add("jn@xxxxxxx.xxx.pl")
oRecip.Type = olBCC
oRecip.Resolve
Set oRecip = Nothing
George
 
Posty: 5
Dołączył(a): So 26.03.2016 23:57

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » N 27.03.2016 11:36

Oczywiście. Twój warunek kompletnie nic nie robi. Sprawdza czy ciąg zawiera szklane słowo i nic dalej. Po drugie, obok procedury użytej w regule jest procedura działająca zawsze, bez związku z tą regułą.
Idź tym tropem.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez George » N 27.03.2016 19:04

OShon napisał(a):Oczywiście. Twój warunek kompletnie nic nie robi. Sprawdza czy ciąg zawiera szklane słowo i nic dalej. Po drugie, obok procedury użytej w regule jest procedura działająca zawsze, bez związku z tą regułą.
Idź tym tropem.

czy możesz użyć więcej szczegółów? naprawdę jestem "zielony" więc jeśli to nie problem to bardzo proszę ....
George
 
Posty: 5
Dołączył(a): So 26.03.2016 23:57

Re: Automatyczne UDW dla każdej wiadomości

Postprzez George » N 27.03.2016 21:00

juz mam, wygląda to tak:
Kod: Zaznacz cały
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

If InStr(Item.Subject, "INVOICE") > 0 Then

    strBCC = "jx@xxxxxxx.xxx.pl"

    Set objRecip = Item.Recipients.Add(strBCC)
    objRecip.Type = olBCC
    If Not objRecip.Resolve Then
        End If
    End If

End Sub
Ostatnio edytowano Wt 29.03.2016 17:55 przez George, łącznie edytowano 1 raz
George
 
Posty: 5
Dołączył(a): So 26.03.2016 23:57

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » Pn 28.03.2016 09:21

No prawie dobrze. Nie wiem tylko po co ten drugi warunek, który podobnie jak w poprzednim przypadku nic nie robi.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez George » Wt 29.03.2016 15:57

ale jeśli usunę:
Kod: Zaznacz cały
If Not objRecip.Resolve Then
End If"

wtedy outlook wyrzuca błąd nieoczekiwany
George
 
Posty: 5
Dołączył(a): So 26.03.2016 23:57

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » Wt 29.03.2016 16:09

Ale zastanów się po co ten warunek?
To jest polecenie/parametr obiektu i nie musisz sprawdzać jego stanu w warunku, który co niczego nie prowadzi.

Wystarczy:
Kod: Zaznacz cały
objRecip.ResolveAll


p.s.
Używaj znaczników [ code ] z menu, wpisując posta gdy zamieszczasz kod VBA.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez George » Wt 29.03.2016 17:54

OShon napisał(a):Ale zastanów się po co ten warunek?
To jest polecenie/parametr obiektu i nie musisz sprawdzać jego stanu w warunku, który co niczego nie prowadzi.

Wystarczy:
Kod: Zaznacz cały
objRecip.ResolveAll


p.s.
Używaj znaczników [ code ] z menu, wpisując posta gdy zamieszczasz kod VBA.


dziękuję działa ale po usunięciu All
George
 
Posty: 5
Dołączył(a): So 26.03.2016 23:57

Re: Automatyczne UDW dla każdej wiadomości

Postprzez piotriam » Pn 23.05.2016 18:48

Witam,

Jak powinno wyglądać polecenie żeby tę samą wiadomość wysyłał na dwa maile jako UDW?
piotriam
 
Posty: 3
Dołączył(a): So 30.01.2016 17:48

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » Pn 23.05.2016 20:43

Wystarczy powielić jedną linijkę i zadeklarować jej przynależność.
Zostało to napisane w tym poście: http://www.outlook.pl/forum/posting.php?mode=reply&f=8&t=1727#pr32758
Jeśli nie zbyt jasno to oto przykład:
Kod: Zaznacz cały
Sub przyklad()
Dim Item As MailItem: Set Item = Application.CreateItem(olMailItem)
Dim oRecip As Recipient
Set oRecip = Item.Recipients.Add("a@mail.pl"): oRecip.Type = olBCC
Set oRecip = Item.Recipients.Add("b@mail.pl"): oRecip.Type = olBCC
oRecip.Resolve: Set oRecip = Nothing
Item.Display
End Sub

Ale może też być prościej:
Kod: Zaznacz cały
Sub przyklad2()
Dim Item As MailItem: Set Item = Application.CreateItem(olMailItem)
    Item.BCC = "a@mail.pl;b@mail.pl"
    Item.Recipients.ResolveAll
    Item.Display
End Sub

Teraz to wystarczy użyć w procedurze z parametrem.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez rm143 » Śr 25.10.2017 13:42

Witam.

Przyzwyczaiłem się, że czasami klikam na jakiś plik który chcę wysłać e-mailem prawym klawiszem myszy, następnie "wyślij do" i "adresat poczty".
Makro w w/w przypadku nie działa (Outlook 2007 + Windows 10). W każdym innym przypadku automatyczne UDW działa i jest bardzo przydatne.
Jeśli ktoś wie jak mi pomóc to proszę o podpowiedź.
rm143
 
Posty: 1
Dołączył(a): Śr 25.10.2017 13:17

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » Śr 25.10.2017 15:29

Tak zostało to zablokowane.
Odpowiedzią jest dodatek do Outlooka jaki napisałem w .NET którego opis możesz znaleźć na tej stronie: Auto DW lub UDW
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re:

Postprzez loknok » Wt 15.05.2018 11:50

michu napisał(a):Możesz użyć makra:

Kod: Zaznacz cały
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim oRecip As Recipient
    Set oRecip = Item.Recipients.Add("adres@domena.pl")
    oRecip.Type = olBCC
    oRecip.Resolve
    Set oRecip = Nothing
End Sub


Skopiuje je do modułu ThisOutlookSession i ponownie uruchom Outlook'a.


Witam. Użyłem tego makra w outlook 2016 i działa. Potrzebowałbym je rozbudować, tak żeby działało tylko dla jednego konta - mam w outlooku skonfigurowane dwa konta i chcialbym, żeby to makro działało tylko dla jednego z nich. Jeżeli mejle wysyłane są z konta nr 1, to pole udw zostaje puste, a jeżeli z konta nr 2 to automatycznie sie uzupełnia. Pomoże ktoś? Z góry dzięki.
loknok
 
Posty: 1
Dołączył(a): Wt 15.05.2018 11:40

Re: Automatyczne UDW dla każdej wiadomości

Postprzez broeq » Śr 13.06.2018 14:33

Panowie, trochę odgrzebuje temat:

Czy jest jakaś szansa na dodanie warunku dot. nadawcy? Nigdzie nie mogę znaleźć działającego rozwiązania

W outlook'u mam aktywne 3 konta, Automat UDW ma działać tylko jeżeli wysyłam z jednego z nich. Czy jest jakieś polecenie odwołujące się do pola nadawcy, abym na podstawie niego mógł zrobić warunek?
broeq
 
Posty: 1
Dołączył(a): Śr 13.06.2018 14:26

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » Śr 13.06.2018 15:09

No to sprawdź kto jest w kolekcji Item.Recipients najlepiej w pętli
No i jeśli spełnia warunek to doklej dodanie dodatkowego adresu dla UDW, a jeśli nie to wyjdź z procedury. Mail pójdzie bez modyfikacji.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez Szyna11 » So 07.07.2018 18:00

Panowie,
Mam dwa konta. Potrzebuję wysyłać automatyczne UDW z jednego (konkretnego).
Makro:

Kod: Zaznacz cały
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
 Dim olNS As Outlook.NameSpace
 Set olNS = Application.GetNamespace("MAPI")

 Dim x&
 For x = 1 To olNS.Accounts.Count
 konto = olNS.Accounts.Item(x).DisplayName
 Next x
 
 If konto = 1 Then   
    Dim oRecip As Recipient
    Set oRecip = Item.Recipients.Add("outlook@xy.pl ")
    oRecip.Type = olBCC
    oRecip.Resolve
    Set oRecip = Nothing
End If
End Sub


Jakieś rady co robię nie tak?
Ostatnio edytowano So 07.07.2018 18:03 przez Szyna11, łącznie edytowano 2 razy
Szyna11
 
Posty: 7
Dołączył(a): So 07.07.2018 17:55

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » So 07.07.2018 18:02

Twój kod
Kod: Zaznacz cały
 konto = olNS.Accounts.Item(x).DisplayName
...
 If konto = 1 Then 

Nazwa konta DisplayName to 1 ?
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Re: Automatyczne UDW dla każdej wiadomości

Postprzez Szyna11 » So 07.07.2018 18:05

To jest numer konta. Wpisuję nazwę konta która wyskakuje mi po:
Kod: Zaznacz cały
Sub lista_kont()
 Dim olNS As Outlook.NameSpace
 Set olNS = Application.GetNamespace("MAPI")

 Dim x&
 For x = 1 To olNS.Accounts.Count
 Debug.Print x & " - " & olNS.Accounts.Item(x).DisplayName
 Next x
End Sub


I jest błąd składni. A wyskakuje mi cały mail.
Szyna11
 
Posty: 7
Dołączył(a): So 07.07.2018 17:55

Re: Automatyczne UDW dla każdej wiadomości

Postprzez OShon » So 07.07.2018 19:07

Robisz pętlę po kontach.
W tej pętli zamienna typu (brak typu) przypisujesz nazwę konta.
Potem robisz warunek na tej nazwie i sprawdzasz czy ta nazwa nazywa się jeden.

Proponuje zamiast 2ch odrębnych pętli wykonać w jednej i albo sprawdzić warunkiem nr albo nazwę, a nie pobierać nazwę (zresztą w tym przypadku zawsze to będzie ostatnia nazwa wszystkich kont), a potem sprawdzać numer.
Obrazek
Oskar Shon - MVP Office System/Development 11/19, 3x MCC
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 9487
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Veracomp SA, VBATools.pl

Poprzednia stronaNastępna strona

Powrót do Microsoft Outlook 2007 / 2010 / 2013 / 2016

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 4 gości

cron