Hallo,
Vanuit een Excelbestand wil ik in Outlook contacten aanmaken en daarbij bepaalde items exporteren naar Outlook. Ik heb via internet de navolgende code hiervoor gevonden hetgeen op zich prima werkt. Het probleem is alleen dat steeds als de macro wordt gedraaid alle namen opnieuw worden toegevoegd. Met als gevolg dat reeds bestaande contacten dubbel in Outlook komen te staan. Nu wil ik graag dat als de lijst in Excel wordt uitgebreid met nieuwe namen (en bijbehorende gegevens) alleen van de nieuwe namen een contact wordt aangemaakt als de macro wordt gedraaid. Hoe zou ik de code kunnen aanpassen dat alleen nieuwe namen worden toegevoegd? Ik denk zelf aan het selecteren van de rijen die moeten worden toegevoegd, maar kom er niet uit. Wie kan me helpen?
Alvast bedankt,
Ocirne
Vanuit een Excelbestand wil ik in Outlook contacten aanmaken en daarbij bepaalde items exporteren naar Outlook. Ik heb via internet de navolgende code hiervoor gevonden hetgeen op zich prima werkt. Het probleem is alleen dat steeds als de macro wordt gedraaid alle namen opnieuw worden toegevoegd. Met als gevolg dat reeds bestaande contacten dubbel in Outlook komen te staan. Nu wil ik graag dat als de lijst in Excel wordt uitgebreid met nieuwe namen (en bijbehorende gegevens) alleen van de nieuwe namen een contact wordt aangemaakt als de macro wordt gedraaid. Hoe zou ik de code kunnen aanpassen dat alleen nieuwe namen worden toegevoegd? Ik denk zelf aan het selecteren van de rijen die moeten worden toegevoegd, maar kom er niet uit. Wie kan me helpen?
Code:
Sub ExcelWorksheetDataAddToOutlookContacts1()
Dim applOutlook As Outlook.Application
Dim nsOutlook As Outlook.Namespace
Dim ciOutlook As Outlook.ContactItem
Dim delFolder As Outlook.folder
Dim delItems As Outlook.Items
Dim lLastRow As Long, i As Long, n As Long, c As Long
lLastRow = Sheets("Clientgegevens").Cells(Rows.Count, "A").End(xlUp).Row
Set applOutlook = New Outlook.Application
Set nsOutlook = applOutlook.GetNamespace("MAPI")
Set delFolder = nsOutlook.GetDefaultFolder(olFolderDeletedItems)
Set delItems = delFolder.Items
c = delItems.Count
For n = c To 1 Step -1
delItems(n).Delete
Next n
For i = 2 To lLastRow
Set ciOutlook = applOutlook.CreateItem(olContactItem)
ciOutlook.Display
With ciOutlook
.FirstName = Sheets("Clientgegevens").Cells(i, 1)
.LastName = Sheets("Clientgegevens").Cells(i, 2)
.Email1Address = Sheets("Clientgegevens").Cells(i, 3)
.Email1DisplayName = Sheets("Clientgegevens").Cells(i, 4)
.MobileTelephoneNumber = Sheets("Clientgegevens").Cells(i, 5)
.homeaddressstreet = Sheets("Clientgegevens").Cells(i, 6)
.homeaddresspostalcode = Sheets("Clientgegevens").Cells(i, 7)
.homeaddresscity = Sheets("Clientgegevens").Cells(i, 8)
.birthday = Sheets("Clientgegevens").Cells(i, 9)
End With
ciOutlook.Close olSave
Next i
applOutlook.Quit
Set applOutlook = Nothing
Set nsOutlook = Nothing
Set ciOutlook = Nothing
Set delFolder = Nothing
Set delItems = Nothing
End Sub
Alvast bedankt,
Ocirne
