"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

OUTLOOK/VBA: 2. journal ansprechen

Master99 11.08.2003 - 15:59 1901 12
Posts

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
EDIT:

die erste fragestellung wurde schon gelöst, die zweite steht im posting von mir weiter unten...

EDIT

Hi Leute!

mal wieder ein Problem:

im Outlook werden Kontakte zuerst gefiltert und dann händisch weiter ausgewählt. jetzt muss ich ein makro schreiben, dass die ausgewählten Kontakte findet und später dann in einen neuen Journaleintrag kopiert.

könnt also wer meine Nase auf ein paar Befehle stoßen, die mir hier weiterhelfen?

DANKE!
Bearbeitet von Master99 am 13.08.2003, 08:33

irreversible

oberspammer
Avatar
Registered: Mar 2001
Location: 2524
Posts: 1058
hab kein outlook in der firma installt, aber gibts da kein makro aufzeichnen? wenn schon klicks an und zeichne das makro auf, dann hast die befehle

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
leider nein :-( hab die möglichkeit eh schon in betracht gezogen... makro machen und dann code kopieren -> aber nix da!

wieso können ACCESS, EXCEL, WORD und OUTLOOK nicht einfach die selben funktionen benutzen?!? bah, i werd no deppert mit der blöden VBA-Programmierung. gebts mir decht bitte wieder C zu schreiben.

trotzdem danke!

EDIT: ne alternative wäre, alle contacs öffnen, filter drüber und dann halt alle nehmen. ist zwar dann nur ein kompromiss, aber besser als nix.
Bearbeitet von Master99 am 12.08.2003, 11:36

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
gibts net sowas wie selected_item() ?

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
wenns so heißen würde, hätts ich's wohl schnell gehabt... aber nein, die nenen des Inspector -> WTF. da kann i lange danach suchen wenn i keine ahnung habe, wie es heißt. bin dann durch zufall nach ein paar STUNDEN Internetsucharbeit drauf gestoßen!

also ich habs jetzt eh schon fast geschafft zum glück. ich poste morgen mal den quellcode -> vielleicht kann es irgendeine arme seele mal brauchen und der ersparrt das dann viele, viele nerven!

hab allerdings noch ein problem:

standardmässig wird alles ins eigene Journal gespeichert. das muss aber ins öffentliche -> und wie ich das auswähle weiß ich eben noch nicht. (so eine funktion, wo man auswählen kann in welches journal des kommt hab i nit amoi im outlook gefunden...)

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
soda, auch des 2. problem hab i mit hilfe vom chefe lösen können...

Sub new_journal()

Dim objApp As Application
Dim objSel As Selection
Dim objItem As Object
Dim i As Integer


On Error GoTo Schleifenende

Set objApp = CreateObject("Outlook.Application")

Set myNamespace = objApp.GetNamespace("MAPI")

Set oJourFolder1 = myNamespace.Folders("Öffentliche Ordner")
Set oJourFolder2 = oJourFolder1.Folders("Alle Öffentlichen Ordner")
Set myFolder = oJourFolder2.Folders("oeJournal")

Set myJournal = myFolder.Items.Add(olJournalItem)

Select Case objApp.ActiveWindow.Class
Case olExplorer
Set objSel = objApp.ActiveExplorer.Selection

If objSel.Count > 0 Then

Set colLinks = myJournal.Links

i = 1

Do

Set objItem = objSel.Item(i)
myJournal.Companies = myJournal.Companies + objItem.CompanyName + "/"
colLinks.Add objItem

i = i + 1

Loop While i <= objSel.Count

End If
Case olInspector
Set objItem = objApp.ActiveInspector.CurrentItem
Case Else
' can't handle any other kind of window
End Select

Schleifenende:

myJournal.Display

End Sub
Bearbeitet von Master99 am 13.08.2003, 10:28

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
ich frag mich wozu du ins forum postest wenn du eh alles selber löst :p

murcielago

Dr. Doom
Avatar
Registered: Oct 2002
Location: *
Posts: 2689
damits wir auch wissn wies geht ;)

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
Zitat von watchout
ich frag mich wozu du ins forum postest wenn du eh alles selber löst :p

wenn ich es poste, da weiß ich ja noch nicht wie es geht und hoffe, dass mir hier jemand nen tipp geben kann.

dann meldet sich hier nie jemand, und ich tüftle stundenlang an ner lösung (mit internet&büchern) und poste dann das ergebnis, falls es mal wer braucht...

des is so frustrierend, wenn man halbwegs C kann, das Grundproblem innerhalb ein paar Minuten löst, und dann ewig lange braucht, um des umzusetzen, nur weil des depperte VBA so sinnlos is. z.b. kannst den befehl vom access zum formular schließen nicht im outlook verwenden. i wer no deppat damit wenn i mitn praktikum fertig bin *lol*

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
master, jetzt darfst mal raten warum ich nimmer vba progge :D
die objektstruktur kann kaum unübersichtlicher dokumentiert sein... das wär ja noch nicht das problem, wenn nicht die objektstruktur das wichtigste beim vba wär :bash:

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
mhm, also die funktion fliegt raus, wenn sich ne verteilerliste in den contacts befindet.... wie kann ich den object-typ erkennen? dann könnt ich den ja einfach überspringen...

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
<modertate>
bitte kein VB-geflame! man kann es sich ja leider nicht immer aussuchen.

weiters: wird ein gepostetes problem in der zwischenzeit selbst gelöst (brav: es gibt genügend andere leute, die lehnen sich nach dem post zurück und warten dass der rest von selber passiert), dann gehört es zum guten ton auch die lösung hier zu posten.

insgesamt geht die zeitspanne zwischen frage und endgültiger lösung über zwei tage, man kann also auch nicht vorwerfen, daß ein post nicht gerechtfertigt wäre weil das problem so leicht selbst zu lösen wäre.
</modertate>

Master99

verträumter realist
Avatar
Registered: Jul 2001
Location: vie/grz
Posts: 12684
ja ok, wegen flamerei hast du recht, aber es ist eben ziemlich frustrierend damit zu arbeiten... den rest fass ich mal als kompliment auf :-)

hier hab ich schon wieder das nächste problem:


ich habe hier eine aufwändigere Funktion die einige Zeit in Anspruch nimmt. damit man nicht denkt, dass sich der pc aufgehängt hat, würde ich gerne eine Nachricht (z.b.:"xxx werden bearbeitet, bitte haben sie geduld...) am bildschirm anzeigen, die am ende der funktion wieder automatisch ausgeblendet wird.

MsgBox fällt ja ganz weg, als nächstes hätte ich probiert eine form zu machen, welche ich mit from_name.show aufrufe.

das problem -> auch durch diesen befehl wird meine eigentliche funktion unterbrochen.

Was kann ich jetzt machen? (bitte keine Statuszeilenlösung, das übersieht man zu leicht!)

Danke schonmal, Tom!

EDIT:

die antwort lautet NICHT-MODALER DIALOG...

also die entsprechende form einfach mit dem zusatz vbModeless aufrufen. das sieht dann so aus:

form_wait.Show vbModeless
Bearbeitet von Master99 am 14.08.2003, 15:38
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz