URL: https://www.overclockers.at/coding-stuff/outlook_vba_2_journal_ansprechen_88918/page_1 - zur Vollversion wechseln!
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!
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
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.
gibts net sowas wie selected_item() ?
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...)
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
ich frag mich wozu du ins forum postest wenn du eh alles selber löst 
damits wir auch wissn wies geht 
Zitat von watchoutich frag mich wozu du ins forum postest wenn du eh alles selber löst
master, jetzt darfst mal raten warum ich nimmer vba progge 
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 
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...
<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>
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
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026