• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Windows10: macro werkt niet meer (Outlook leegtrekken)

Status
Niet open voor verdere reacties.

Conseclusie

Gebruiker
Lid geworden
14 feb 2012
Berichten
358
Hallo,

Ik heb onderstaande macro eens van het web geplukt.
Deze trekt de hele Outlook-database van mijn organisatie leeg, zodat ik een tabel heb met daarin verschillende outlook-items (Naam, Email etc...)
Het werkte altijd als een zonnetje, totdat we over zijn gegaan op windows 10.
Nu verschijnt bij de regel
Code:
For Each olAE In olAL.AddressEntries
de (wat vage) foutmelding "Fout 287 tijdens uitvoering: Door de toepassing of door object gedefinieerde fout"
Het lijkt dus fout te gaan bij de eigenschap AddressEntries; maar mijn VBA-kennis reikt niet ver genoeg om de precieze oorzaak te kunnen achterhalen.

De volledige macro (met daarin ook het adres van de bron):
Code:
Sub Network_Users()
'http://itknowledgeexchange.techtarget.com/beyond-excel/getting-names-from-outlook-into-excel/
 
Dim olA     As Object       'Outlook.Application    Start Outlook (OL)
Dim olNS    As Object       'Namespace              OL identifiers context
Dim olAL    As Object       'AddressList            An OL address list
Dim olAE    As Object       'AddressEntry           An Address List entry
Dim lo      As ListObject   'An Excel Table
 
On Err GoTo ErrHandler

'Create a ListObject/Table in the spreadsheet
With ActiveSheet
    .Cells.ClearContents                    'Clear worksheet completely
    .Cells.ClearFormats                     'Clear formats as well
    [A1:H1] = Array("Names", "Email", "AAnr", "Afdeling", "JobTitle", "Straat", "Voornaam", "Achternaam")       'Add a column headings
    Set lo = .ListObjects.Add(1, [A1].CurrentRegion, , xlYes)
    lo.Name = "Names"""
End With
 
'Open Outlook, set context, open "All Users" address list
Set olA = CreateObject("Outlook.Application")
Set olNS = olA.GetNamespace("MAPI")
Set olAL = olNS.AddressLists("All Users")

'Add each address entry name to the Excel Table
Application.ScreenUpdating = False

For Each olAE In olAL.AddressEntries
    With lo.ListRows.Add
        .Range(1) = olAE.Name
        .Range(2) = olAE.GetExchangeUser.PrimarySmtpAddress
        .Range(3) = olAE.GetExchangeUser.Alias
        .Range(4) = olAE.GetExchangeUser.Department
        .Range(5) = olAE.GetExchangeUser.JobTitle
        .Range(6) = olAE.GetExchangeUser.StreetAddress
        .Range(7) = olAE.GetExchangeUser.FirstName
        .Range(8) = olAE.GetExchangeUser.LastName
    End With
Next
Application.StatusBar = False
Application.ScreenUpdating = True
 
ErrHandler:     If Err.Number <> 0 Then MsgBox _
         "Network_Users - Error#" & Err.Number & vbCrLf & _
         Err.Description, vbCritical, "Error", Err.HelpFile, Err.HelpContext
     On Error GoTo 0
End Sub
 
Je kunt je adressenlijst toch vrij simpel exporteren naar CSV vanuit Outlook zelf? Of anders kan je wellicht importeren in Excel via Gegevens, Gegevens ophalen, Uit andere bronnen, Microsoft Exchange?

Bestaat het adresboek "All Users" wel in je Outlook?
 
Laatst bewerkt:
"All Users" is een bestaand adresboek; heb het voor de zekerheid nog even gecontroleerd.
En ja,...er zijn altijd meer wegen die naar Rome leiden, maar ik gebruik onderdelen uit deze macro ook in andere tools om automatisch (obv de username) alle overige eigenschappen van de gebruiker op te halen.
En sowieso wil ik gewoon weten wat hier het probleem is, om ervan te kunnen leren.
 
Thx Jan Karel! Daar kan ik zeker wat mee...tenminste; het bevestigt mijn vermoeden dat ik de oorzaak moet zoeken in de strengere beveiligingsprotocollen van m'n matties bij IT.:(
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan