I think you're not using the most recent version of this coding. Look at this part (and especially the line in red) :
For nameloop = mydistlist.MemberCount To 1 Step -1
'we put everything in uppercase because we are human and don't
'recall the exact input of a members name
If UCase(mydistlist.GetMember(nameloop).Name) = UCase(thename) Then
'remove the contact, adding text to end message
result = result & mydistlist & vbCrLf
Set myrecipient = mydistlist.GetMember(nameloop)
mydistlist.RemoveMember myrecipient
End If
Next nameloop
'save the distributionlist
mydistlist.Save
and also the declaration part at the start of the coding :
'folder of your contacts
Dim myFolder As Outlook.MAPIFolder
'vloop = loop through contacts, thename = name of contaxct
'nameloop = loop through items in the distributionlist
Dim vloop As Long, thename As String, nameloop As Long
'the distributionlist
Dim mydistlist As DistListItem
'the item in the distributionlist
Dim myrecipient As Outlook.Recipient
'create a message at the end of processing the request
Dim result As String
'watch out, no errorchecking when pressing cancel
'so better leave it empty when you don't want to do something
As an alternative we could run this code when you selected an unsubsribe email by using the e-mail address (so you don't have to type a thing) of the e-mail. Off course you should alter this coding a bit to get the emailaddress in the variable thename. And instead of
mydistlist.GetMember(nameloop).Name
we should use
mydistlist.GetMember(nameloop).Adress
to check on the e-mail address and not on the name.
Charlize