/ Forside / Teknologi / Administrative / MS-Office / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Brugernavne på netværk (Excel/Outlook)
Fra : Lars Thomsen Nielsen


Dato : 16-11-05 13:02

Office2003. Jeg arbejder i et firma, hvor de ansatte alle
registreres vha. initialer, typisk på 3 karakterer. Jeg har nu en
kolonne i Excel2003 med en masse af disse initialer, men jeg
kunne godt tænke mig at få vist deres fulde navne i kolonnen ved
siden af.

Kan den klares?

Hvis man i en ny mail i Outlook2003 i "til-feltet" skriver
initialerne , fx "LTN" (eller "=LTN") og herefter trykker på
knappen for kontroller navne, så vil initialerne blive "godkendt"
og lavet om til personens navn, her "Lars Thomsen Nielsen".

Kan man på en eller anden måde få overført denne funktion til
Excel eller har denne allerede muligheden indbygget?

Jeg har forsøgt mig med lidt med koden vist nedenfor, men kan kun
finde oplysninger om medarbejdernes initialer.

Declare Function GetUserName Lib "advapi32.dll" Alias
"GetUserNameA" _
(ByVal lpBuffer As String, nSize As Long) As Long

Sub ShowUserName()
UserName = String(255, 0)
GetUserName UserName, Len(UserName)
UserNameStor = Application.WorksheetFunction.Clean(UserName)
End Sub


mvh

Lars Thomsen Nielsen



 
 
Jan Kronsell (16-11-2005)
Kommentar
Fra : Jan Kronsell


Dato : 16-11-05 17:05


"Lars Thomsen Nielsen" <lars@EraseThisflexcom.dk> skrev i en meddelelse
news:437b1fb3$0$41142$14726298@news.sunsite.dk...
> Office2003. Jeg arbejder i et firma, hvor de ansatte alle
> registreres vha. initialer, typisk på 3 karakterer. Jeg har nu en
> kolonne i Excel2003 med en masse af disse initialer, men jeg
> kunne godt tænke mig at få vist deres fulde navne i kolonnen ved
> siden af.
>
> Kan den klares?
>
> Hvis man i en ny mail i Outlook2003 i "til-feltet" skriver
> initialerne , fx "LTN" (eller "=LTN") og herefter trykker på
> knappen for kontroller navne, så vil initialerne blive "godkendt"
> og lavet om til personens navn, her "Lars Thomsen Nielsen".
>
> Kan man på en eller anden måde få overført denne funktion til
> Excel eller har denne allerede muligheden indbygget?
>
> Jeg har forsøgt mig med lidt med koden vist nedenfor, men kan kun
> finde oplysninger om medarbejdernes initialer.
>
Måske kan du arbejder videre med denne kode:

Function HentOutlookNavn(ce)
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myContacts = myNamespace.GetDefaultFolder(olFolderContacts).Items
Set myItems = myContacts.Restrict("[LastModificationTime] >
'01/1/2003'")
For Each myItem In myItems
If (myItem.Class = olContact) Then
If UCase(Left(myItem.Email1Address, 3)) = UCase(ce) Then
HentOutlookNavn = myItem.FullName
End If
End If
Next
End Function

Den fourdsætter at initialerne altid er på tre tegn, og at de altid indgår
som de første tre bogstaver i e-mail adressen. Funktuionen leder i Contacts,
men du kan muligvis selv ændre den, så den leder i den globale adressebog i
Outlook. Findes der ingen person med de tre initialer, returnerer funktionen
0.

Jan




Lars Thomsen Nielsen (17-11-2005)
Kommentar
Fra : Lars Thomsen Nielsen


Dato : 17-11-05 09:43

> Måske kan du arbejder videre med denne kode:
>
> Function HentOutlookNavn(ce)
> kode
> End Function
>
> Den fourdsætter at initialerne altid er på tre tegn, og at de
altid
> indgår som de første tre bogstaver i e-mail adressen.
Funktuionen
> leder i Contacts, men du kan muligvis selv ændre den, så den
leder i
> den globale adressebog i Outlook. Findes der ingen person med
de tre
> initialer, returnerer funktionen 0.

Hej Jan,

Din kode kan jeg desværre ikke bruge idet den forudsætter at
emailadressen er af typen initialer@domæne.dk. Det er ikke
tilfældet hos os, idet vi bruger typen fuldenavn@domæne.dk, men
med "Alias" for initialerne.

Jeg er dog kommet videre i sagen og har faktisk løst mit problem.
Jeg benytter mig af noget CDO kode (Collaboration Data Objects)
fundet på http://www.cdolive.com/, som jeg har tilpasset, så det
passer til mit behov.

For at det skal virke er det vigtigt at man husker at sætte VBE
referencen: Microsoft CDO 1.21 Library. Iøvrigt skulle man også
huske VBE referencen: Microsoft Outlook 11.0 Object Library for
at få din kode til at virke.

I mit eksempel har jeg initialerne i området B1:B18. Jeg ønsker
herefter navnene i området C1:C18. Min kode er som følger, hvis
nogen skulle være interesseret.

Sub FindLangtNavnUdfraInitialer()
' code from http://www.cdolive.com
' Sæt VBE referencen: Microsoft CDO 1.21 Library

Dim NavnInitialer As String
Dim NavnPerson As String

Set objSession = New MAPI.Session
objSession.Logon "", "", False, False, 0
Set objNewMessage = objSession.Outbox.Messages.Add

For i = 1 To 18
NavnInitialer = Range("B" & i)
Set objRecipient = objNewMessage.Recipients.Add
objRecipient.Name = "=" & NavnInitialer
objRecipient.Resolve = True
NavnPerson = objRecipient.Name
Range("C" & i) = NavnPerson
objNewMessage.Recipients.Delete
Next

objSession.Logoff
Set objRecipient = Nothing
Set objSession = Nothing

Beep
End Sub

mvh

Lars Thomsen Nielsen



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste