none
¿Como modificar la propiedad Email1DisplayName al crear un contacto nuevo mediante una macro en Outlook? RRS feed

  • Pregunta

  •  Hola a todos:

    Estoy programando una macro para importar contactos desde una hoja excell a outlook 2010.

    El caso es que la macro funciona bien y me importa todos los contactos, pero hay algunos campos que cambian cuando el contacto se guarda.

    Por ejemplo:

    1. Cuando la propiedad Contacto.FileAs <> Contacto.FullName, el valor de Contacto.FileAs se queda guardado correctamente. Sin embargo, si Contacto.FileAs = Contacto.FullName, el valor que se guarda de Contacto.Fileas me lo cambia automáticamente al formanto, "Apellidos, Nombre". Yo quiero que el valor de Contacto.FileAs se guarde tal cual yo lo he asignado a con Set Contacto.FileAs = "Lo que sea".

     

    2. Cuando asigno a la propiedad Contacto.Email1DisplayName un valor, por ejemplo, "Nombre a mostrar - (email@dominio.com)", algunas veces ese valor se queda tal cual y el contacto se guarda (Contacto.Save) bien, pero otras veces el valor que se guarda de la propiedad Contacto.Email1DisplayName se cambia automaticamente " (email@dominio.com)" 

    Cuando digo "se cambia automáticamente", quiero decir que tras utilizar el comando Contacto.Save los datos que se han guardado del contacto son diferentes a los valores que cada propiedad tenía asignados antes de que el esa instrucción se ejecutase.

    ¿Alguien podría decirme porqué ocurre esto y como puedo evitarlo?

     

    Gracias por la colaboración.


    miércoles, 19 de octubre de 2011 13:04

Todas las respuestas

  • Hola Walter, y gracias por la respuesta.

    Creo que no es el caso; el código que uso es el siguiente (como estoy haciendo pruebas está sin optimizar y tiene cosas que hay que quitar en la versión definitiva, pero creo que se entiende bastante bien). Recorre una hoja de excel cogiendo valores de cada columna para rellenar los valores de las diferentes propiedades del contacto. Después del código he puesto dos ejemplos de lo que me hace con los datos de dos contactos diferentes:

    -----------------------------

            While HojaExcel.Cells(Fila, 1).Value <> ""
               
                Set NuevoContacto = CreateItem(olContactItem)
                NuevoContacto.MessageClass = "IPM.Contact"
               
                HojaExcel.Cells(Fila, 1).Select
                Columna = 2
                NuevoContacto.FirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.MiddleName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.LastName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Suffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.FullName = HojaExcel.Cells(Fila, Columna).Value (no se ejecuta para no machacar los valores anteriores)
                Columna = Columna + 1
                NuevoContacto.FileAs = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Categories = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.MobileTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Account = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Actions=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Anniversary = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Application=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.AssistantName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.AssistantTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Attachments=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.AutoResolvedWinner = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BillingInformation = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Birthday = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Body = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Business2TelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = 26 'Columna + 1
                'NuevoContacto.BusinessAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = 33 'Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                If HojaExcel.Cells(Fila, Columna).Value <> "" Then
                    NuevoContacto.BusinessCardLayoutXml = HojaExcel.Cells(Fila, Columna).Value
                End If
                Columna = Columna + 1
                'Read-Only NuevoContacto.BusinessCardType=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessHomePage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CallbackTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CarTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Children = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Class=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Companies = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyAndFullName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyLastFirstNoSpace = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyLastFirstSpaceOnly = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CompanyMainTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CompanyName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ComputerNetworkName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Conflicts=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ConversationIndex = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ConversationTopic = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CreationTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CustomerID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Department = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.DownloadState = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1DisplayName = HojaExcel.Cells(Fila, Columna).Value
                TextoPrueba = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email1EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2DisplayName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email2EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3DisplayName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email3EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.FormDescription = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.FTPSite = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.FullNameAndCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Gender = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.GetInspector = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.GovernmentIDNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.HasPicture = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Hobby = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Home2TelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.HomeAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.IMAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.Importance = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Initials = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.InternetFreeBusyAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.IsConflict = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ISDNNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.IsMarkedAsTask = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ItemProperties = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.JobTitle = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.Journal = 0
                Else
                    NuevoContacto.Journal = 1
                End If
                Columna = Columna + 1
                NuevoContacto.Language = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstAndSuffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpace = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpaceAndSuffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpaceCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstSpaceOnly = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstSpaceOnlyCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastModificationTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastNameAndFirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Links = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ManagerName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.MarkForDownload = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.MessageClass = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Mileage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NetMeetingAlias = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NetMeetingServer = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NickName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.NoAging = 0
                Else
                    NuevoContacto.NoAging = 1
                End If
                Columna = Columna + 1
                NuevoContacto.OfficeLocation = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OrganizationalIDNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.OtherAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.OutlookInternalVersion = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.OutlookVersion = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PagerNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Parent = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PersonalHomePage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PrimaryTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Profession = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.PropertyAccessor = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.RadioTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ReferredBy = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderOverrideDefault = 0
                Else
                    NuevoContacto.ReminderOverrideDefault = 1
                End If
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderPlaySound = 0
                Else
                    NuevoContacto.ReminderPlaySound = 1
                End If
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderSet = 0
                Else
                    NuevoContacto.ReminderSet = 1
                End If
                Columna = Columna + 1
                NuevoContacto.ReminderSoundFile = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.ReminderTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Saved = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.SelectedMailingAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Sensitivity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Session = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Size = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Spouse = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Subject = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskCompletedDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskDueDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskStartDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TaskSubject = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TelexNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Title = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.ToDoTaskOrdinal = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TTYTDDTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.UnRead = 0
                Else
                    NuevoContacto.UnRead = 1
                End If
                Columna = Columna + 1
                NuevoContacto.User1 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User2 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User3 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User4 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.UserProperties = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.WebPage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiCompanyName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiFirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiLastName = HojaExcel.Cells(Fila, Columna).Value
             
                ' Save the contact.
                If NuevoContacto.Email1DisplayName <> TextoPrueba Then
                    TextoPrueba = TextoPrueba 'Usado para poner un breakpoint y comprobar el valor de Email1DisplayName antes de .save
                End If
                NuevoContacto.Save
                CuentaContactos = CuentaContactos + 1
                If NuevoContacto.Email1DisplayName <> TextoPrueba Then
                    TextoPrueba = TextoPrueba 'Usado para poner un breakpoint y comprobar el valor de Email1DisplayName después de .save. Aunque parezca increible, la ejecución para en este breakpoint muchas veces en una importanción grande de contactos.
                End If
                Fila = Fila + 1
            Wend

    --------------------------------

    Como vés todas las propiedades, salvo las que son "read only" o las que se actualizan con el valor de otras, están "inicializadas", en el mismo orden en el que otra macro me las exporta a excel.

    Como ejemplo, este código me ha creado los siguientes contactos:

    Valores en en excel báse:

      FirstName= Xavier

      LastName= Vilanova

      FileAs= Xavier Vilanova

      Email1Address= xavier.vilanova@dominio.com

      Email1DisplayName=Xavier Vilanova (xavier.vilanova@dominio.com)

    Valores en el contacto creado:

      FirstName= Xavier

      LastName= Vilanova

      FullName=Xavier Vilanova '(esto se rellena automáticamente)

      FileAs= Vilanova, Xavier '(esto lo ha cambiado automáticamente)

      Email1Address= xavier.vilanova@dominio.com

      Email1DisplayName=Xavier Vilanova (xavier.vilanova@dominio.com) '(esto, en este caso, lo deja bien)

     

    Y otro ejemplo donde ha cambiado el Email1DisplayName:

    Valores en en excel báse:

      FirstName= Abraham

      LastName= Pérez García

      FileAs= Abraham (Compañero de Clase)

      Email1Address= aperez@dominio.com

      Email1DisplayName=Abraham Perez García (aperez@dominio.com)

    Valores en el contacto creado:

      FirstName= Abraham

      LastName= Perez García

      FullName=Abraham Pérez García '(esto lo rellena automáticamente)

      FileAs= Abraham (Compañero de Clase) '(esto lo ha dejado bien. He deducido que lo deja así porque es distinto de FullName, pero quiero saber como tengo que hacer para que no lo midifique cuando sea = a FullName)

      Email1Address= aperez@dominio.com

      Email1DisplayName= (aperez@dominio.com) '(esto lo ha cambiado solo. El valor de la propiedad antes de .save era "Abraham Perez García (aperez@dominio.com)" y despues de .save ha quedado como " (aperez@dominio.com)".

     

    A ver si con esto puedes reproducir la situación y saber de donde biene el problema. Mi SO es Windows 7 y tengo instalado office 2010.

     

    Gracias otra vez por el interés y por la respuesta.


     

     

     

     

    miércoles, 19 de octubre de 2011 20:48
  • Hola [Walter]; voy a preparar un archivo excel con el que reproducir el error ¿cómo puedo subirlo o enviártelo?.

     

    De todas formas, es cierto que en la documentación de programación para office 2003 la propiedad Email1DisplayName dice que es "read-only", pero en versiones posteriores (ver enlace http://msdn.microsoft.com/es-es/library/ff866426.aspx) esta propiedad se modificó para que fuera "read-write".

    En cualquier caso, si desde el formulario de contactos del propio Outlook este campo se puede modificar, a la fuerza tiene que ser "read-write" de algún modo.

    No he entendido bien en lo que comentas si te ha guardado la propiedad Email1DisplayName del segundo contacto como "Abraham Perez García (aperez@dominio.com)" sin acento o te ha cambiado a "Abraham Pérez García (aperez@dominio.com)" con acento. Si ha sido este último el caso, en cierto modo el error ya lo has reproducido porque automáticamente te ha modificado el valor.

    En el enlace que te he puesto, dice sobre Email1DisplayName "This property is set to the value of the FullName property by default". Entiendo que esto indicaría que el valor de esta propiedad se iguala al valor de FullName si Email1DisplayName no ha sido inicializado, o incluso se sobreescribiría su valor si despues de inicializarlo se modifican las propiedades FullName, FirsName, LastName, etc. cuya modificación actua sobre la propiedad FullName, pero en el código que estamos viendo Email1DisplayName es la última que se modifica.


    Si es posible, te agradecería una evaluación de esas suposiciones por si tienen algo que ver y eso nos lleva a la raiz del problema.

    Si vale de algo, decir que al principio también tenía el mismo problema con los números de teléfono. Cuando guardaba un telefono que empezaba por el símbolo +, por ejemplo "+ 34 902 999 999", automáticamente me lo cambiaba a "34 902 999 999". No conseguí arreglarlo mediante programación pero me di cuenta que el problema estaba en que no tenía asignada la "ubicación". A partir de, en el propio outlook, introducir la ubicación "España" en un teléfono de un contacto, los campos de teléfonos me los guarda con el + delante.

    De ahí deduje que cuando se utiliza el método .save, el mismo no se limita a guardar el contacto tal cual, sino que hace comprobaciones y modificaciones sobre diferentes propiedades (hay poca documentación sobre esto, o por lo menos yo no la he encontrado).

     

    Gracias y próximamente subiré la tabla con los valores que reproduzcan el problema.


    jueves, 20 de octubre de 2011 19:58
  • OK; con un número pequeño de registros yo tampoco puedo reproducir el error (mi excel de contactos tiene cerca de 3.500 registros); me costará algo más de tiempo preparar el archivo para reproducirlo. En cualquier caso, podemos ver en la imagen adjunta que, a pesar de que la propiedad es read-write y que se inicializa en último lugar (estoy usando tu código), el valor que se guarda es cambiado a "FullName + (email)". Creo que si encontramos la forma de arreglar esto, la misma solución nos llevará a encontrar el porqué, en algunas ocasiones, me lo está cambiando a " (email)".

    Gracias por tu interés y respuestas.

     

     

    jueves, 20 de octubre de 2011 20:54
  • Hola [Walter]:

     

    Ya tengo un fichero excel para reproducir el caso que nos ocupa.

     

    Desde una macro de Outlook 2010 ejecuto el siguiente código:

     

    =========================================================================

    Sub mac1()
        Dim app As Object
        Dim HojaExcel As Object
        Dim Fila As Integer
       
        Set app = CreateObject("Excel.Application")

        app.Workbooks.Open ("M:\0500 - Carpeta de usuario\Desktop\Copia AA - DatosOutlook.xlsm")
        Set HojaExcel = app.Sheets("Contactos")
        Fila = 2
       
      
        CuentaElementos = 0
        CuentaContactos = 0
        Fila = 2
        app.Application.Visible = True

        While HojaExcel.Cells(Fila, 1).Value <> ""
                
          
                Set NuevoContacto = CreateItem(olContactItem)
                NuevoContacto.MessageClass = "IPM.Contact"
               
                HojaExcel.Cells(Fila, 1).Select
                Columna = 2
                NuevoContacto.FirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.MiddleName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.LastName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Suffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.FullName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.FileAs = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Categories = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.MobileTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Account = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Actions=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Anniversary = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Application=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.AssistantName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.AssistantTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Attachments=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.AutoResolvedWinner = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BillingInformation = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Birthday = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Body = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Business2TelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = 26 'Columna + 1
                'NuevoContacto.BusinessAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = 33 'Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                If HojaExcel.Cells(Fila, Columna).Value <> "" Then
                    NuevoContacto.BusinessCardLayoutXml = HojaExcel.Cells(Fila, Columna).Value
                End If
                Columna = Columna + 1
                'Read-Only NuevoContacto.BusinessCardType=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessFaxNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessHomePage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.BusinessTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CallbackTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CarTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Children = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Class=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Companies = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyAndFullName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyLastFirstNoSpace = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CompanyLastFirstSpaceOnly = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CompanyMainTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CompanyName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ComputerNetworkName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Conflicts=HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ConversationIndex = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ConversationTopic = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.CreationTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.CustomerID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Department = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.DownloadState = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email1DisplayName = HojaExcel.Cells(Fila, Columna).Value
                TextoPrueba = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email1EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email2DisplayName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email2EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3Address = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3AddressType = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Email3DisplayName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Email3EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.EntryID = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.FormDescription = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.FTPSite = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.FullNameAndCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Gender = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.GetInspector = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.GovernmentIDNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.HasPicture = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Hobby = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Home2TelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.HomeAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.HomeAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.IMAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.Importance = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.Initials = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.InternetFreeBusyAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.IsConflict = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ISDNNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.IsMarkedAsTask = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.ItemProperties = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.JobTitle = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.Journal = 0
                Else
                    NuevoContacto.Journal = 1
                End If
                Columna = Columna + 1
                NuevoContacto.Language = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstAndSuffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpace = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpaceAndSuffix = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstNoSpaceCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstSpaceOnly = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastFirstSpaceOnlyCompany = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastModificationTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.LastNameAndFirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Links = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.MailingAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ManagerName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.MarkForDownload = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'No Importado NuevoContacto.MessageClass = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Mileage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NetMeetingAlias = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NetMeetingServer = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.NickName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.NoAging = 0
                Else
                    NuevoContacto.NoAging = 1
                End If
                Columna = Columna + 1
                NuevoContacto.OfficeLocation = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OrganizationalIDNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'NuevoContacto.OtherAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressCity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressCountry = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressPostalCode = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressPostOfficeBox = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressState = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.OtherAddressStreet = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.OutlookInternalVersion = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.OutlookVersion = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PagerNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Parent = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PersonalHomePage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.PrimaryTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Profession = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.PropertyAccessor = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.RadioTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.ReferredBy = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderOverrideDefault = 0
                Else
                    NuevoContacto.ReminderOverrideDefault = 1
                End If
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderPlaySound = 0
                Else
                    NuevoContacto.ReminderPlaySound = 1
                End If
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.ReminderSet = 0
                Else
                    NuevoContacto.ReminderSet = 1
                End If
                Columna = Columna + 1
                NuevoContacto.ReminderSoundFile = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.ReminderTime = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Saved = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.SelectedMailingAddress = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Sensitivity = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Session = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.Size = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Spouse = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Subject = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskCompletedDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskDueDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.TaskStartDate = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TaskSubject = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TelexNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.Title = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'HojaExcel.Cells(Fila, Columna).Select
                NuevoContacto.ToDoTaskOrdinal = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.TTYTDDTelephoneNumber = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                If HojaExcel.Cells(Fila, Columna).Value = "Falso" Or HojaExcel.Cells(Fila, Columna).Value = 0 Then
                    NuevoContacto.UnRead = 0
                Else
                    NuevoContacto.UnRead = 1
                End If
                Columna = Columna + 1
                NuevoContacto.User1 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User2 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User3 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.User4 = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                'Read-Only NuevoContacto.UserProperties = HojaExcel.Cells(Fila,Columna).Value
                Columna = Columna + 1
                NuevoContacto.WebPage = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiCompanyName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiFirstName = HojaExcel.Cells(Fila, Columna).Value
                Columna = Columna + 1
                NuevoContacto.YomiLastName = HojaExcel.Cells(Fila, Columna).Value
                  
                ' Create the first user property (UserField1).
                ' Set Prop = c.UserProperties.Add("UserField1", olText)
               
                ' Set its value.
                ' If ![CustomerID] <> "" Then Prop = ![CustomerID]
               
                ' Create the second user property (UserField2).
                ' Set Prop = c.UserProperties.Add("UserField2", olText)
               
                ' Set its value and so on....
                ' If ![Region] <> "" Then Prop = ![Region]
               
                ' Save the contact.
                If NuevoContacto.Email1DisplayName <> TextoPrueba Then
                    TextoPrueba = TextoPrueba
                End If
                NuevoContacto.Save
                CuentaContactos = CuentaContactos + 1
                If NuevoContacto.Email1DisplayName <> TextoPrueba Then
                    TextoPrueba = TextoPrueba
                End If
                Fila = Fila + 1

         Wend
      
        '
        app.ActiveWorkbook.Close
        app.Quit


    End Sub
    =========================================================================

    Y me crea los contactos nuevos que se ven en la imagen siguiente:

    Lo he ejecutado varias veces y siempre me los crea igual, cambiando el campo Email1DisplayName a como se ve en la imagen, cuando el valor en el excel que importo es "Jorge Leirana SegundoApellido (j.leirana@NombreEmpresa1.com)" y "José Casado SegundoApellido (jcasado@nombreempresa2.es)" respectivamente.

    No sé como adjuntar un archivo excel a este mensaje, por lo que lo he subido a megaupload. Se puede descargar desde el siguiente enlace:

    http://www.megaupload.com/?d=0Z2E20T0

    (lo he subido sin estar registrado, por lo que el enlace no estará disponible por mucho tiempo...)

     

    Gracias anticipadas por tu tiempo, por tu interés y tu colaboración.



    • Editado M. Sola sábado, 5 de noviembre de 2011 19:59
    sábado, 5 de noviembre de 2011 19:51
  • ¿Hola?...

    Parece que el tema ha quedado sin respuesta despues de mi último aporte para reproducir el problema que comentaba en el primer post.

    ¿Alguien sabría indicarme como modificar la propiedad "Email1DisplayName" para poder asignarle un valor arbitrario y que no se modifique al utilizar el evento NuevoContacto.Save?

     

    Gracias anticipadas por la posibles respuestas...

     

    Saludos,

     

    M. Sola

    martes, 15 de noviembre de 2011 21:31