07. maj 2004 - 11:32 Der er 15 kommentarer og
1 løsning

Angiv "Kategori" på mail vha. VBA (Outlook)

Hej,

Jeg ønsker at give nogle brugere mulighed for at gemme en mail som .msg-fil. Det skal være således at hvis brugeren er ved at sende en mail til en kunde, kan han vælge at gemme mailen i vores generelle dokumentstyringssystem. Dvs at filen gemmes i en en bestem mappe på nettet som har navn efter kundens ID. (f.eks. X:\dokumenter\12345\Brev.doc)

Dvs at brugeren skal på en eller anden måde fortælle Outlook, at den aktuelle mail skal gemmes på KundeID 12345.

Jeg kan få det til at virke hvis brugeren går i Vis->Indstillinger->Kategorier og indtaster 12345. Så har jeg lavet en event på Item_Send, som sørger for resten.

Problemet er nu, at jeg gerne vil gøre det lidt nemmere for brugeren. Jeg har derfor lavet en knap, som de kan klikke på (inde i den åbne mail), hvorefter en inputbox spørger efter KundeID.

Og her går jeg så i stå!

Hvordan gemmer jeg den indtastede værdi (kundeID) i kategorien på AKTUELLE mail. Jeg har både problemer med at referere til den aktuelle mail og problemer med at skrive i kategorien.

Problemet kunne helt løses, hvis man bare kunne få Kategori-feltet placeret på mailen, ligesom man kan med aftaler/møder. Men det har jeg ikke kunnet finde blandt tilgængelige tools til værktøjslinierne.

Er der nogen, som har et forslag?

pfh tak
Thomas Jepsen
Avatar billede kedde65 Praktikant
07. maj 2004 - 12:37 #1
Hvis du lægger følgende kode i Outlook, og kalder koden fra en kanp på en værktøjslinie i en ny mail så spørger den brugeren om kundenummer og putter kundenummeret ned som en kategori.

Sub MailKategories()
    Dim itm As MailItem
   
    Set itm = Application.ActiveInspector.CurrentItem
    itm.Categories = InputBox("Indtast kundenummer!", "Kundenummer")
End Sub

VH CK
07. maj 2004 - 12:47 #2
Sejt!

Det er anden gang på få dage, hvor du giver mig et par liniers kode, som bare redder hele verden!

Tusinde tak for hjælpen :o)
07. maj 2004 - 12:48 #3
At du ikke har fået masser af "good karma", det er mig et mysterium!!!
07. maj 2004 - 12:54 #4
Jeg har lige et tillægsspm, som du selvfølgelig også nok skal få point for (100)!

Hvordan distribuere jeg bedst denne makro (inkl knap og hændelsen Item_Sent) til alle 50-60 brugere? Kan man lave et script, som kan lægges i brugernes logon-script?
Avatar billede kedde65 Praktikant
07. maj 2004 - 13:16 #5
Hej. Jeg er da meget glad for at kunne hjælpe dig og mange andre herinde, med små kode stumper der kan redde verden :-) Hvad angår Karma, så har det også tit undret mig, men jeg går ikke så meget op idet at det gør mig noget.

Hvad angår distribution, så skal du nok benytte den fil der hedder VbaProject.OTM det er der alt dit kode snask det gemmer sig når du laver det i Outlook. Denne fil kan du sikker vha. logon scripts eller lign. (GPO) distribuere ud til brugerne. Problemet ved denne løsning, er blot at hvis der er externe referencer til andre programmer (word, excel) så kommer de ikke med.
Alternativt så kan du jo lave et setup program vha. Microsoft Visual Studio Installer og her udrulle den msi fil vha. GPO.

Håber det hjalp, ellers så spørger du bare igen.

VH CK
07. maj 2004 - 13:23 #6
Well, jeg har gjort mit hvad angår karma. Men du har ret I, at det skal tages med forbehold.

VbaProject.OTM er måske nok idet jeg kan undlade referencer. Jeg har godt en en til ADO for at kunne gemme oplysningerne i en Access db, men den kan skrives om, så den ikke behøver referencer.

Men hvad med knappen? Den kommer vel ikke med?
Avatar billede kedde65 Praktikant
07. maj 2004 - 13:26 #7
Nope - knappen kommer ikke med, men vent lige 3 sek. så giver jeg dig et eksempel der opretter det, når der startes en ny mail (det mener jeg at have liggende et eller andet sted.)
Avatar billede kedde65 Praktikant
07. maj 2004 - 13:52 #8
Tag dette kode og smid ind i ThisOutlookSession kode modulet.

Dim WithEvents insps As Inspectors

Private Sub Application_Startup()
    Set insps = Application.Inspectors
End Sub

Private Sub insps_NewInspector(ByVal Inspector As Inspector)
    Dim item As CommandBarControl
    Dim cmdBar As CommandBar
    Dim cmdBtn As CommandBarButton
    Set cmdBar = Inspector.CommandBars("Standard")
   
    For Each item In cmdBar.Controls
        If item.Tag = "MailBtn" Then
            item.Delete
        End If
    Next
   
    Set cmdBtn = cmdBar.Controls.Add(msoControlButton, , , , True)
    cmdBtn.Tag = "MailBtn"
    cmdBtn.Caption = "Set CustomerID"
    cmdBtn.OnAction = "MailKategories"
    cmdBtn.Visible = True
End Sub

og smid så følgende kode ind i et modul for sig selv.

Public Sub MailKategories()
    Dim itm As MailItem
   
    Set itm = Application.ActiveInspector.CurrentItem
    itm.Categories = InputBox("Indtast kundenummer!", "Kundenummer")
End Sub


Så har du en knap der bliver oprettet dynamisk.

VH CK
07. maj 2004 - 13:58 #9
I am fu.king impressed :o)

Jeg opretter et spm til dig: http://www.eksperten.dk/spm/496938
Avatar billede razor Nybegynder
07. maj 2004 - 14:42 #10
Dejligt at se at du er glad for hjælpen - det ændrer dog ikke på at det kun er tilladt at uddele 200 points pr. spørgsmål. Det andet spørgsmål er lukket, og pointsne bliver snarligt ført tilbage.

Hav en god weekend :-)
07. maj 2004 - 14:53 #11
Hvad sker der? Prøv lige at læse spørgsmålet igennem inden du begynder at lukke spm!

Det, som de 150 point er givet for, er for det tillægsspm, som jeg stiller 07/05-2004 12:54:38 og som jeg under alle omstændigheder ville have oprettet som nyt spm. Men da jeg havde indtryk af at Kedde65 havde styr på tingene, så kunne jeg lige så godt spørge ham direkte, nu hvor jeg havde hans opmærksomhed.
Hele den sidste del af dette spm, har intet med det oprindelige spm at gøre. Det oprindelige spm går på events i Outlook. Det andet går på at distribuere løsningen til 50 brugere.

Der er tydeligvis tale om en misforståelse, så jeg opretter da gerne et nyt spm, hvor jeg spørger om det samme som i 07/05-2004 12:54:38. Så kan Kedde65 jo bare svare og få sine point.
Skal jeg gøre dette? Eller kan du åbne det andet spm igen?
Avatar billede kedde65 Praktikant
07. maj 2004 - 15:09 #12
Nej nu må I altså tage jer sammen som administratorer. Jeg har ikke noget problem med at undvære de sølle 150 point, men tag lige og læse det hele igennem inden du begynder ukritisk at lukke spørgsmål.

Kunne være det var tiden til at smutte herfra Ekspertens ellers hyggelige svære... Razor lev opp til dit ansvar, og tænk/læs før du handler!

Thomas>> Jeg vil da enbefale dig at spørge om det samme en gang til i et nyt spørgemål, det er vel tilladt?

VH CK
07. maj 2004 - 15:15 #13
det gør jeg også, men jeg vil lige give Razor en chance for at forsvare sin forhastede beslutning eller genåbne det andet spm - det ville klæde ham, men han kan jo være gået offline, så han ikke har set vores kommentarer. Så jeg lader tvivlen komme ham tilgode og giver ham til i morgen.
Du skal i hvert fald have dine point - om ikke andet, så af principielle grunde.
Avatar billede razor Nybegynder
15. maj 2004 - 21:03 #14
Hej.

Jeg har vist været lidt for hurtigt ude her. Det der ved en
hurtig gennemgang lignede noget der ikke måtte finde sted ifht.
reglerne, er ved nærmere eftersyn ganske lovligt. Det er jeg
ked af, og håber i har fundet ud af det.

Hvis I mener I har points i klemme skal i være velkommen til
at kontakte mig på min private email (mail@razor.dk), så vil
jeg sørge for at hive fat i admin, så vi kan få det klaret.

Undskyld,

Christian
Avatar billede razor Nybegynder
15. maj 2004 - 21:05 #15
(grunden til, at jeg først reagerer nu, er at jeg har haft umenneskeligt travlt med en opgave på universitetet, samt lancering af et produkt i min firma)
15. maj 2004 - 21:22 #16
undskyldning modtaget - det er rart at se, at en CoAdmin kan erkende, at de har været for hurtigt ude :o)

Jeg har revideret den 'sure' karma, som havde givet dig (måske lidt for hurtigt, haha)

Så vidt jeg kan se, er der ikke nogle point i klemme nogle steder.

Case closed og fortsat god weekend til Jer begge.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester