Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news: uKakK%23YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news: uKakK%23YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley;
..Cells(NumLigne, 2) = ObjFolder.Items(A).ManagerName
MP
"twinley" a écrit dans le message de news:
uKakK#Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour Twinley;
..Cells(NumLigne, 2) = ObjFolder.Items(A).ManagerName
MP
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news:
uKakK#YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour Twinley;
..Cells(NumLigne, 2) = ObjFolder.Items(A).ManagerName
MP
"twinley" a écrit dans le message de news:
uKakK#Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news: uKakK%23YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
Je ne connais pas OL et je n'ai jamais utilisé ce bout de code. Si j'ai du temps... je testerai en fin de journée !
Salutations!
"twinley" a écrit dans le message de news:
Pour ne pas faire bondir les puristes, il est entendu que un simple
copié dans OL sur une présentation Liste téléphonique puis un collé dans
XL donne la liste complète avec les champs standards OL et les champs
perso OL.
Mais je souhaite mettre cette applique dans plusieurs mains qui vont
remplir une petite partie de la base chacun. Il faut une partie
automatisée.
Et je n'ai pas encore la certitude que le tranfert des champs perso dans
le sens XL vers OL va marcher à merveille...
Chaque jour suffit à sa peine.
à+twinleyBonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
Je ne connais pas OL et je n'ai jamais utilisé ce bout de code. Si j'ai du temps... je testerai en fin de journée !
Salutations!
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news: OYTUUSbRFHA.356@TK2MSFTNGP14.phx.gbl...
Pour ne pas faire bondir les puristes, il est entendu que un simple
copié dans OL sur une présentation Liste téléphonique puis un collé dans
XL donne la liste complète avec les champs standards OL et les champs
perso OL.
Mais je souhaite mettre cette applique dans plusieurs mains qui vont
remplir une petite partie de la base chacun. Il faut une partie
automatisée.
Et je n'ai pas encore la certitude que le tranfert des champs perso dans
le sens XL vers OL va marcher à merveille...
Chaque jour suffit à sa peine.
à+twinley
Bonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news: uKakK%23YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour Twinley,
Je ne connais pas OL et je n'ai jamais utilisé ce bout de code. Si j'ai du temps... je testerai en fin de journée !
Salutations!
"twinley" a écrit dans le message de news:
Pour ne pas faire bondir les puristes, il est entendu que un simple
copié dans OL sur une présentation Liste téléphonique puis un collé dans
XL donne la liste complète avec les champs standards OL et les champs
perso OL.
Mais je souhaite mettre cette applique dans plusieurs mains qui vont
remplir une petite partie de la base chacun. Il faut une partie
automatisée.
Et je n'ai pas encore la certitude que le tranfert des champs perso dans
le sens XL vers OL va marcher à merveille...
Chaque jour suffit à sa peine.
à+twinleyBonjour Twinley,
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
FirstName = Nom de la propriété de l'item (c'est à dire l'entrée du carnet de contacts). Tu ne peux pas la modifier comme cela :
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
Mais tu devrais pouvoir adapter comme ceci :
..Cells(NumLigne, 2) = ObjFolder.Items("Nom Dirigeant").FirstName
Et comme il y a un espace de l'appellation de l'item, la syntaxe peut être celle-ci :
..Cells(NumLigne, 2) = ObjFolder.Items("'Nom Dirigeant'").FirstName
(Nom Dirigeant est entouré de guillemets simples suivis de guillements doubles.
exemple dans le modèle objet Excel :
Tu ne peux pas modifier : Sheets(1).Name par Sheets(1).Nom MaFeuille
Mais Sheets(1).name ou Sheets("'Nom MaFeuille'").name , c'est la même chose.
Salutations!
"twinley" a écrit dans le message de news: uKakK%
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
..Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
..Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Re twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton champ")
MP
"twinley" a écrit dans le message de news:
uKakK#Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Re twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton champ")
MP
"twinley" <twinleymax@hotmail.com> a écrit dans le message de news:
uKakK#YRFHA.2680@TK2MSFTNGP09.phx.gbl...
Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
Re twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton champ")
MP
"twinley" a écrit dans le message de news:
uKakK#Bonjour à tous,
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
oui sous les formes suivantes
= ObjFolder.Items(A).UserProperties("Nom Dirigeant")
= ObjFolder.Items(A).UserProperties("'Nom Dirigeant'")
= ObjFolder.Items(A).UserProperties("user1")
après avoir ajouté un champ user1
mais j'ai une erreur automation ou bien 1004
J'ai nommé la zone dans XL.
Les champs ont des données.
J'ai utilisé le mappage côté OL, un truc pas clair, pour utiliser la
méthode import/export...
Et puis par manque de chance je n'arrive pas à lancer les macro dans
outlook, j'ai une case grisée dans sécurité, faire confiance au projet
visual basic. J'ai posé la question sur mpfol. J'aurais aimé validé la
macro qui transfert les champs perso vers OL.
Je suis un peu à cours d'idée, pourtant c'est pas loin. Userproperties est
pour VBA OL et l'aide dit :
Dim objProperty As Outlook.UserProperty
Set objProperty = objContact.UserProperties.Find("LastDateContacted")
Il faut que je place bien tout ces trucs, en simplifiant les noms des
champs sans espace.
Merci pour le coup de main
à+twinleyRe twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton
champ")
MP
"twinley",
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
oui sous les formes suivantes
= ObjFolder.Items(A).UserProperties("Nom Dirigeant")
= ObjFolder.Items(A).UserProperties("'Nom Dirigeant'")
= ObjFolder.Items(A).UserProperties("user1")
après avoir ajouté un champ user1
mais j'ai une erreur automation ou bien 1004
J'ai nommé la zone dans XL.
Les champs ont des données.
J'ai utilisé le mappage côté OL, un truc pas clair, pour utiliser la
méthode import/export...
Et puis par manque de chance je n'arrive pas à lancer les macro dans
outlook, j'ai une case grisée dans sécurité, faire confiance au projet
visual basic. J'ai posé la question sur mpfol. J'aurais aimé validé la
macro qui transfert les champs perso vers OL.
Je suis un peu à cours d'idée, pourtant c'est pas loin. Userproperties est
pour VBA OL et l'aide dit :
Dim objProperty As Outlook.UserProperty
Set objProperty = objContact.UserProperties.Find("LastDateContacted")
Il faut que je place bien tout ces trucs, en simplifiant les noms des
champs sans espace.
Merci pour le coup de main
à+twinley
Re twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton
champ")
MP
"twinley",
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley
oui sous les formes suivantes
= ObjFolder.Items(A).UserProperties("Nom Dirigeant")
= ObjFolder.Items(A).UserProperties("'Nom Dirigeant'")
= ObjFolder.Items(A).UserProperties("user1")
après avoir ajouté un champ user1
mais j'ai une erreur automation ou bien 1004
J'ai nommé la zone dans XL.
Les champs ont des données.
J'ai utilisé le mappage côté OL, un truc pas clair, pour utiliser la
méthode import/export...
Et puis par manque de chance je n'arrive pas à lancer les macro dans
outlook, j'ai une case grisée dans sécurité, faire confiance au projet
visual basic. J'ai posé la question sur mpfol. J'aurais aimé validé la
macro qui transfert les champs perso vers OL.
Je suis un peu à cours d'idée, pourtant c'est pas loin. Userproperties est
pour VBA OL et l'aide dit :
Dim objProperty As Outlook.UserProperty
Set objProperty = objContact.UserProperties.Find("LastDateContacted")
Il faut que je place bien tout ces trucs, en simplifiant les noms des
champs sans espace.
Merci pour le coup de main
à+twinleyRe twinley;
As tu essayé:
..Cells(NumLigne, 2) = ObjFolder.Items(A).UserProperties("Nom de ton
champ")
MP
"twinley",
Je prépare le transfert de contacts Outlook avec champs personnalisés,
depuis OL vers XL. Puis une fois la feuille XL complétée à la mimine,
faire le transfert dans l'autre sens, XL vers OL.
J'ai trouvé une sub donnée par Michdenis mais attribuée à un inconnu.
Elle fonctionne pour le sens OL vers XL.
Je ne comprend pas bien les lignes telle la suivante car je ne récupère
pas le nom du champ, mais enfin bref, ça marche. Il suffit de mettre les
entêtes de champs perso dans XL à la main. C'est pas le diable.
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
Si le titre de mon champ comprend un espace, par exemple : Nom Dirigeant
et que je remplace FirstName par Nom Dirigeant, alors j'ai une erreur de
compile.
Ma question : Comment écrire la ligne
.Cells(NumLigne, 2) = ObjFolder.Items(A).Nom Dirigeant
qui plante sous cette forme à cause de l'espace entre nom et dirigeant ?
OL snobe les champs personnalisés et comme j'ai une procédure OL qui va
faire le chemin inverse, je dois aussi modifier la même syntaxe. Là je
suppose que cela doit être vital d'avoir le bon nom de champ :
objItem.Nom Dirigeant à la place de objItem.User1
objItem.UserProperties("Custom1") = objItem.User1
le code :
la sub Michdenis c'est dans le sens OL vers XL
'-------------------------------------
Sub ImporterContacts()
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim ObjFolder As MAPIFolder
Dim NumLigne As Integer
Dim NbContacts As Integer
Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")
Set ObjFolder = objNS.GetDefaultFolder(olFolderContacts)
NumLigne = 1
NbContacts = ObjFolder.Items.Count
For A = 1 To NbContacts
NumLigne = NumLigne + 1
With Worksheets("Feuil1")
.Cells(NumLigne, 1) = ObjFolder.Items(A)
.Cells(NumLigne, 2) = ObjFolder.Items(A).FirstName
.Cells(NumLigne, 3) = ObjFolder.Items(A).LastName
.Cells(NumLigne, 4) = ObjFolder.Items(A).Email1Address
End With
Next
Set objApp = Nothing: Set objNS = Nothing: Set ObjFolder = Nothing
End Sub
'-------------------------------------
et celle là (http://www.outlookcode.com/d/code/convertfields.htm)
que je n'ai pas encore testé, c'est dans le sens XL vers OL
Sub ConvertFields()
Dim objApp As Application
Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Dim objItems As Items
Dim objItem As Object
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If Not objFolder Is Nothing Then
Set objItems = objFolder.Items
For Each objItem In objItems
' make sure you have a Contact item
If objItem.Class = olContact Then
' convert to your published custom form
objItem.MessageClass = "IPM.Contact.Custom"
' copy data to your custom fields
objItem.UserProperties("Custom1") = objItem.User1
objItem.UserProperties("Custom2") = objItem.User2
objItem.UserProperties("Custom3") = objItem.User3
objItem.UserProperties("Custom4") = objItem.User4
objItem.User1 = ""
objItem.User2 = ""
objItem.User3 = ""
objItem.User4 = ""
objItem.Save
End If
Next
End If
Set objItems = Nothing
Set objItem = Nothing
Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
End Sub
Merci pour votre aide
--
à+twinley