Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis
quand même parce que c'est ici que je trouve les bonnes réponses, le
plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de
téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait
transformé en + 33 45 67 89 78)
.
J'ai trois questions / problèmes
- caractères inutiles à supprimer dans le n° de tel d'origine
j'utilise une variable "strNoValid" à laquelle je voudrais faire
correspondre différentes valeurs lors de l'utilisation de la fonction
replace. Quelquechose du type
strNoValid = );(;; " ";
Y a t il une syntaxe permettant donc d'associer des valeurs différentes
à une seule variable? Sinon, comment faire?
- dans les contacts figurent de nombreux champs pour saisir des n° de
téléphone.
Dans le code ci-dessous, la fonction ne s'applique qu'au n° de
téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait
"balayer" tous les autres champs pouvant contenir des n° de téléphone.
Comment faire (collection?)
- un pb basique mais c'est la première fois que j'y suis confronté ("un
enfant de 3 ans pourrait le résoudre" - " qu'on m'amène un enfant de
trois ans " répondit Groucho Marx).
Voulant grouper les chiffres par groupe de deux avec un espace entre
chaque groupe, je dois calculer le nombre d'itération à effectuer sur
le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des
groupes de 2 chiffres + espace. Jusque là, pas de pb.
Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas
le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et
les concaténer en fin de traitement.
J'y ai passé du temps mais sans succès. Comment faire??
Sub numeroPropre()
Dim olItem As ContactItem
Dim objContact As MAPIFolder
Dim oSelection ' dossier sélectionné - contacts
Dim phoneNbr As String 'numero de téléphone du bureau
Dim nbrCharact 'nombre de chiffres dans le numeo après
suppression des espaces
Dim nbrIteration As Integer ' nbre d'itération à réaliser pour
traiter tous les caractères
Dim cstIntervalle As Integer ' intervalle entre 2 séries de 2
chiffres
Dim partPhoneNumber() As String ' partie de phonenumber en cours
de traitement
Dim newPhoneNbr As String
Dim strNoValid As String 'caractères à supprimer si dans n°
tel
Dim I As Integer ' compteur item
Dim Y As Integer ' compteur itérations
' On Error Resume Next
strNoValid = " "
cstIntervalle = 2
Set objNS = Application.GetNamespace("MAPI")
Set objContact = objNS.GetDefaultFolder(olFolderContacts)
Set oSelection = objContact.Items
For I = 1 To oSelection.Count
Set olItem = oSelection.Item(I)
xxx = olItem.FirstName ' pour repérage durant dvpt
phoneNbr = olItem.BusinessTelephoneNumber ' numero de
téléphone "bureau"
If phoneNbr <> "" Then ' si n° de tel présent
phoneNbr = Replace(phoneNbr, " ", "") 'supprime les
espaces
nbrCharact = Len(phoneNbr) 'longueur du n° de tel
nbrIteration = Round(((Len(phoneNbr)) / 2), 0)
'détermine le nombre d'iterations à faire
If nbrCharact <> 0 Then 's il y a un numero de
téléphone
cstIntervalle = 0 'initialiation de la
valeur
For Y = 1 To nbrIteration
cstIntervalle = cstIntervalle + 2
partPhoneNumber(Y) = Mid(phoneNbr,
(nbrCharact + 1 - cstIntervalle), 2)
newPhoneNbr = partPhoneNumber(Y) &
" " & newPhoneNbr
Next Y
' phoneNbr = newPhoneNbr
' save
newPhoneNbr = "" 'pour dvpt
uniquement
' Y = 0
End If
End If '/si n° de tel présent
Next '/I = 1 To oSelection.Count
End Sub
Merci pour vos conttributions éclairées et à bientôt.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bill2
Spectre wrote:
Bonjour à tous,
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis quand même parce que c'est ici que je trouve les bonnes réponses, le plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ... Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises, c'est très puissant. Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les numéros sont enregistrés sans espaces ...
Philosophie : Pire qu'une pierre dans la chaussure est un grain de sable dans la capote. (Coluche)
Spectre wrote:
Bonjour à tous,
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis
quand même parce que c'est ici que je trouve les bonnes réponses, le
plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n°
de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait
transformé en + 33 45 67 89 78)
.
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ...
Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises,
c'est très puissant.
Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les
numéros sont enregistrés sans espaces ...
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis quand même parce que c'est ici que je trouve les bonnes réponses, le plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ... Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises, c'est très puissant. Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les numéros sont enregistrés sans espaces ...
Philosophie : Pire qu'une pierre dans la chaussure est un grain de sable dans la capote. (Coluche)
Spectre
merci pour la réponse mais... - je souhaiterai d'abord réaliser le code en vba et en apprendre un peu plus à l'occasion (notamment sur les tableaux dynamiques) - j'avais déjà regardé RegExp pour autre chose mais cela est pour le moment hors de mon champs d'intérêt et m'y investir (ce que je ne manquerai pas de faire) prendra du temps
Bye
Le 23/02/2006, Bill2 a supposé :
Spectre wrote:
Bonjour à tous,
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis quand même parce que c'est ici que je trouve les bonnes réponses, le plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ... Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises, c'est très puissant. Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les numéros sont enregistrés sans espaces ...
merci pour la réponse mais...
- je souhaiterai d'abord réaliser le code en vba et en apprendre un peu
plus à l'occasion (notamment sur les tableaux dynamiques)
- j'avais déjà regardé RegExp pour autre chose mais cela est pour le
moment hors de mon champs d'intérêt et m'y investir (ce que je ne
manquerai pas de faire) prendra du temps
Bye
Le 23/02/2006, Bill2 a supposé :
Spectre wrote:
Bonjour à tous,
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis
quand même parce que c'est ici que je trouve les bonnes réponses, le
plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n°
de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait
transformé en + 33 45 67 89 78)
.
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ...
Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises,
c'est très puissant.
Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les
numéros sont enregistrés sans espaces ...
merci pour la réponse mais... - je souhaiterai d'abord réaliser le code en vba et en apprendre un peu plus à l'occasion (notamment sur les tableaux dynamiques) - j'avais déjà regardé RegExp pour autre chose mais cela est pour le moment hors de mon champs d'intérêt et m'y investir (ce que je ne manquerai pas de faire) prendra du temps
Bye
Le 23/02/2006, Bill2 a supposé :
Spectre wrote:
Bonjour à tous,
Bon, vous allez me dire que je suis pas sur le bon forum mais j'y suis quand même parce que c'est ici que je trouve les bonnes réponses, le plus vite (que de pommade passée dans le dos!) :-)
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
Merci pour vos conttributions éclairées et à bientôt.
le plus simple pour ça est d'utiliser les expressions régulières ... Bon, c'est pas évident à prendre en main, mais une fois que tu maitrises, c'est très puissant. Tu trouveras infos sur le site de microsoft (cherche RegExp par exemple)
Sinon, je dois avoir un truc "tout fait", mais ça part du principe que les numéros sont enregistrés sans espaces ...
3stone
Salut,
"Spectre" | | Bon, j'ai développé une petite moulinette pour mettre en forme le n° de | téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait | transformé en + 33 45 67 89 78) | . | | J'ai trois questions / problèmes | - caractères inutiles à supprimer dans le n° de tel d'origine | j'utilise une variable "strNoValid" à laquelle je voudrais faire | correspondre différentes valeurs lors de l'utilisation de la fonction | replace. Quelquechose du type | strNoValid = );(;; " "; | Y a t il une syntaxe permettant donc d'associer des valeurs différentes | à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String Dim i As Integer Dim s As String, sTemp As String If IsNull(s) Then Exit Function For i = 1 To Len(v) s = Mid(v, i, 1) If (Asc(s) >= 48 And Asc(s) <= 57) _ Or s = " " Or s = "+" Then sTemp = sTemp & s End If Next i GetPhone = sTemp End Function
| | - dans les contacts figurent de nombreux champs pour saisir des n° de | téléphone. | Dans le code ci-dessous, la fonction ne s'applique qu'au n° de | téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait | "balayer" tous les autres champs pouvant contenir des n° de téléphone. | Comment faire (collection?)
beuh...
| | Voulant grouper les chiffres par groupe de deux avec un espace entre | chaque groupe, je dois calculer le nombre d'itération à effectuer sur | le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des | groupes de 2 chiffres + espace. Jusque là, pas de pb. | Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas | le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et | les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?
"Spectre"
|
| Bon, j'ai développé une petite moulinette pour mettre en forme le n° de
| téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait
| transformé en + 33 45 67 89 78)
| .
|
| J'ai trois questions / problèmes
| - caractères inutiles à supprimer dans le n° de tel d'origine
| j'utilise une variable "strNoValid" à laquelle je voudrais faire
| correspondre différentes valeurs lors de l'utilisation de la fonction
| replace. Quelquechose du type
| strNoValid = );(;; " ";
| Y a t il une syntaxe permettant donc d'associer des valeurs différentes
| à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String
Dim i As Integer
Dim s As String, sTemp As String
If IsNull(s) Then Exit Function
For i = 1 To Len(v)
s = Mid(v, i, 1)
If (Asc(s) >= 48 And Asc(s) <= 57) _
Or s = " " Or s = "+" Then
sTemp = sTemp & s
End If
Next i
GetPhone = sTemp
End Function
|
| - dans les contacts figurent de nombreux champs pour saisir des n° de
| téléphone.
| Dans le code ci-dessous, la fonction ne s'applique qu'au n° de
| téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait
| "balayer" tous les autres champs pouvant contenir des n° de téléphone.
| Comment faire (collection?)
beuh...
|
| Voulant grouper les chiffres par groupe de deux avec un espace entre
| chaque groupe, je dois calculer le nombre d'itération à effectuer sur
| le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des
| groupes de 2 chiffres + espace. Jusque là, pas de pb.
| Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas
| le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et
| les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?
"Spectre" | | Bon, j'ai développé une petite moulinette pour mettre en forme le n° de | téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait | transformé en + 33 45 67 89 78) | . | | J'ai trois questions / problèmes | - caractères inutiles à supprimer dans le n° de tel d'origine | j'utilise une variable "strNoValid" à laquelle je voudrais faire | correspondre différentes valeurs lors de l'utilisation de la fonction | replace. Quelquechose du type | strNoValid = );(;; " "; | Y a t il une syntaxe permettant donc d'associer des valeurs différentes | à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String Dim i As Integer Dim s As String, sTemp As String If IsNull(s) Then Exit Function For i = 1 To Len(v) s = Mid(v, i, 1) If (Asc(s) >= 48 And Asc(s) <= 57) _ Or s = " " Or s = "+" Then sTemp = sTemp & s End If Next i GetPhone = sTemp End Function
| | - dans les contacts figurent de nombreux champs pour saisir des n° de | téléphone. | Dans le code ci-dessous, la fonction ne s'applique qu'au n° de | téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait | "balayer" tous les autres champs pouvant contenir des n° de téléphone. | Comment faire (collection?)
beuh...
| | Voulant grouper les chiffres par groupe de deux avec un espace entre | chaque groupe, je dois calculer le nombre d'itération à effectuer sur | le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des | groupes de 2 chiffres + espace. Jusque là, pas de pb. | Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas | le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et | les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
J'ai trois questions / problèmes - caractères inutiles à supprimer dans le n° de tel d'origine j'utilise une variable "strNoValid" à laquelle je voudrais faire correspondre différentes valeurs lors de l'utilisation de la fonction replace. Quelquechose du type strNoValid = );(;; " "; Y a t il une syntaxe permettant donc d'associer des valeurs différentes à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String Dim i As Integer Dim s As String, sTemp As String If IsNull(s) Then Exit Function For i = 1 To Len(v) s = Mid(v, i, 1) If (Asc(s) >= 48 And Asc(s) <= 57) _ Or s = " " Or s = "+" Then sTemp = sTemp & s End If Next i GetPhone = sTemp End Function
- dans les contacts figurent de nombreux champs pour saisir des n° de téléphone. Dans le code ci-dessous, la fonction ne s'applique qu'au n° de téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait "balayer" tous les autres champs pouvant contenir des n° de téléphone. Comment faire (collection?)
beuh...
Voulant grouper les chiffres par groupe de deux avec un espace entre chaque groupe, je dois calculer le nombre d'itération à effectuer sur le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des groupes de 2 chiffres + espace. Jusque là, pas de pb. Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?
Merci, 3Pierre(s).
Bye
3stone a exprimé avec précision :
Salut,
"Spectre"
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de
téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait
transformé en + 33 45 67 89 78)
.
J'ai trois questions / problèmes
- caractères inutiles à supprimer dans le n° de tel d'origine
j'utilise une variable "strNoValid" à laquelle je voudrais faire
correspondre différentes valeurs lors de l'utilisation de la fonction
replace. Quelquechose du type
strNoValid = );(;; " ";
Y a t il une syntaxe permettant donc d'associer des valeurs différentes
à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String
Dim i As Integer
Dim s As String, sTemp As String
If IsNull(s) Then Exit Function
For i = 1 To Len(v)
s = Mid(v, i, 1)
If (Asc(s) >= 48 And Asc(s) <= 57) _
Or s = " " Or s = "+" Then
sTemp = sTemp & s
End If
Next i
GetPhone = sTemp
End Function
- dans les contacts figurent de nombreux champs pour saisir des n° de
téléphone.
Dans le code ci-dessous, la fonction ne s'applique qu'au n° de
téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait
"balayer" tous les autres champs pouvant contenir des n° de téléphone.
Comment faire (collection?)
beuh...
Voulant grouper les chiffres par groupe de deux avec un espace entre
chaque groupe, je dois calculer le nombre d'itération à effectuer sur
le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des
groupes de 2 chiffres + espace. Jusque là, pas de pb.
Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas
le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et
les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?
Bon, j'ai développé une petite moulinette pour mettre en forme le n° de téléphone du carnet de contact outlook (ex : +33 (45) 678978 serait transformé en + 33 45 67 89 78) .
J'ai trois questions / problèmes - caractères inutiles à supprimer dans le n° de tel d'origine j'utilise une variable "strNoValid" à laquelle je voudrais faire correspondre différentes valeurs lors de l'utilisation de la fonction replace. Quelquechose du type strNoValid = );(;; " "; Y a t il une syntaxe permettant donc d'associer des valeurs différentes à une seule variable? Sinon, comment faire?
tu peux utiliser ceci :
Function GetPhone(v) As String Dim i As Integer Dim s As String, sTemp As String If IsNull(s) Then Exit Function For i = 1 To Len(v) s = Mid(v, i, 1) If (Asc(s) >= 48 And Asc(s) <= 57) _ Or s = " " Or s = "+" Then sTemp = sTemp & s End If Next i GetPhone = sTemp End Function
- dans les contacts figurent de nombreux champs pour saisir des n° de téléphone. Dans le code ci-dessous, la fonction ne s'applique qu'au n° de téléphone "entreprise" (BusinessTelephoneNumber)alors qu'il faudrait "balayer" tous les autres champs pouvant contenir des n° de téléphone. Comment faire (collection?)
beuh...
Voulant grouper les chiffres par groupe de deux avec un espace entre chaque groupe, je dois calculer le nombre d'itération à effectuer sur le n° de téléphone d'origine ("nettoyé") pour constituer ensuite des groupes de 2 chiffres + espace. Jusque là, pas de pb. Cependant, je dois créer un tableau (dynamique ? puisque ne connais pas le nombre d'itérations...)pour contenir ces groupes de 2 chiffres et les concaténer en fin de traitement.
tu cherche à grouper par 2 en "partant" de début ou de la fin ?