Excel --> Outlook

Pomoč pri izdelavi makrov
Odgovori
sdfpo
Prispevkov: 31
Pridružen: To Feb 02, 2010 9:06 pm

Excel --> Outlook

Odgovor Napisal/-a sdfpo »

Pozdravljeni!

Rad bi iz excelove tabele vnesel podatke v Outlook.
in sicer bi rad modificiral začetek in konec obstoječega sestanka v MS Outlooku. Vse skup bi najraje (najlažje) upravljal s pomočjo makroja v excelu.
imam tabelo:
http://shrani.si/f/1Y/B8/4A3e8wNJ/zajeta-slika.jpg
torej bi naredil naslednje: Za vsako vrstico v excelu poišči sestanek na ta dan in spremeni uro zacetka in konca sestanka

Koda: Izberi vse

Sub Makro1()
    
    
    N = Cells(1, 1).End(xlDown).Row
    For i = 1 To N

    dan = Cells(i, 1).Value
    zacetek = Cells(i, 2).Value
    konec = Cells(i, 3).Value

   [[[ PREHOD NA OUTLOOK]]]

  Dim Appt As Object
 
  Set Items = Session.GetDefaultFolder(olFolderCalendar).Items
   For Each Appt In Items
    On Error Resume Next
 
If Appt.Start = dan Then
    With Appt
       .start = zacetek
       .end = konec
    End With
End If
  
Next
  
Set Appt = Nothing

[[[PREHOD NA EXCEL]]]

Next
 
End Sub
Na neki točki moram preiti iz excela v Outlook. Kako to naredim (koda) in gdaj naj to naredim (glej kodo), za vsako zanko posebej?
Obstaja kaksen drugacen nacin kako ''najdem'' sestanek na določen dan?
Obstaja drugačen način kako spremenin začetek in kenec sestanka?
ker namreč tale makro se izvede ampak dejansko se začetek sestanka ne spremeni..... npr. koda:

Koda: Izberi vse

Dim Appt As Object
 
  Set Items = Session.GetDefaultFolder(olFolderCalendar).Items
   For Each Appt In Items
    On Error Resume Next
 
If Appt.Start > "23.7.2014 0:00:00" And Appt.Start < "23.7.2014 9:00:00" Then
    With Appt
       .Start = "23.7.2014 8:23:00"
    End With
    MsgBox Appt.Subject & " " & Appt.Start
End If
  
Next
  
Set Appt = Nothing
mi deluje OK, tudi obvestilo se prikaže pravilno,http://shrani.si/f/Q/YZ/4bkzpD4l/zajeta-slika2.jpg ampak dejansko se pa zečetek sestanka ne spremeni.http://shrani.si/f/1V/X8/3YX1BSgl/zajeta-slika1.jpg
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Excel --> Outlook

Odgovor Napisal/-a admin »

Pozdravljeni,

Vi ste zdaj nametali vprašanj cel koš tako, da se je kar malce težko znajti. A začeti je potrebno od spodaj (glede na vaša vprašanja).

Osnovno vprašanje je torej, kako shraniti spremembo v koledarju? In če tako zastavite vprašanje imate tudi odgovor. Spremembo je potrebno shraniti! Izvesti je torej potrebno metodo Save().

Koda: Izberi vse

  Dim Appt As Object
  
  Dim items: Set items = Session.GetDefaultFolder(olFolderCalendar).items
  For Each Appt In items
    On Error Resume Next
 
    If Appt.Start > "23.7.2014 0:00:00" And Appt.Start < "23.7.2014 9:00:00" Then
        With Appt
          .Start = "23.7.2014 8:23:00"
          .Save     ' <- shraniti morate sprememebe!
        End With
    End If
  Next
Naslednje vprašanje, ki ste ga postavili je kako najti nek sestanek v Outlooku. Specifični sestanek pač morate najti glede na neko njegovo lastnost. V vašem primeru vidim, da je to pravzaprav datum zato pač morate najti sestanek za določen datum oz. za določeno časovno obdobje:

Koda: Izberi vse

Sub test()
  Dim prvaMeja As String: prvaMeja = "19.05.2014 6:00"
  Dim drugaMeja As String: drugaMeja = "03.06.2014 18:00"
  
  Dim oItems: Set oItems = Session.GetDefaultFolder(olFolderCalendar).items
  Dim omejitve As String: omejitve = "[Start] >= '" & prvaMeja & "' AND [End] <= '" & drugaMeja & "'"
  Debug.Print omejitve
  Dim oIzbor: Set oIzbor = oItems.Restrict(omejitve)
  oIzbor.Sort "[Start]"
  
  Dim oAppt
  For Each oAppt In oIzbor
    Debug.Print oAppt.Start, oAppt.Subject
  Next
End Sub
Preostane pa še vprašanje o agoritmu... Tukaj je pa stvar spet dokaj preprosta:
1. Preberite vrstico v Excelu
2. najdite sestanek v tem obdobju in ga popravite
3. preberite naslednjo vrstico v Excelu
4. če je vrstica prazna končajte
5. sicer se vrnite na točko 1
lp,
Matjaž Prtenjak
Administrator
sdfpo
Prispevkov: 31
Pridružen: To Feb 02, 2010 9:06 pm

Re: Excel --> Outlook

Odgovor Napisal/-a sdfpo »

Aha... super
na ''.save'' sam sem očitno pazabil

zanima me še (je že bilo v prevem):
ker iz makroja v excelu upravljam Outlook moram narediti nek prehod(verjetno?), da on ve da se koda od zdaj naprej navezuje na Outlook in ne na excel.
Kako to narediti?

hvala lepa
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Excel --> Outlook

Odgovor Napisal/-a admin »

Pozdravljeni,

Nikjer ni nikakršnega prehoda preprosto programirate in če uporabite Excelov objekt, pomeni da delate z Excelom, če uporabite Outlookov opjekt pa z Outlookom...
lp,
Matjaž Prtenjak
Administrator
Odgovori