Donc si c'est non valide c'est un numéro a ne pas prendre en compte car c'est potentiellement un numéro faux à 100% (La longueur en France c'est uniquement une chaîne de 9 Nombres) est point.L'exemple discuté était 1673227883 : "1" + 9 chiffres, donc non valide
J'ai appliqué ton test Patrick ni plus ni moins ! et oui tu as raison car msgbox [A1].Value te renvois le Numéro sans les 00 devant bien vu PatrickLaurent
fait un msgbox [A1].text avec le format appliqué comme tu le décrit
moi aussi je ne vois qu'une table de correspondance
que l'on pourrait mettre dans une gallery cachée ou simplement une feuille mais pour le xlam je sais pas si une feuille est exploitable il me semble que oui je ne m'en souviens plus
pour l'instant, si ce n'est pas reconnu je laisse inchangé (on pourrait prévoir un paramètre optionnel pour les mettre à vide, la même fonction pourra faire office de validation selon le choix).Donc si c'est non valide c'est un numéro a ne pas prendre en compte
Pour ma part, il ne faut pas mettre la cellule à Vide, mais effectivement pourquoi pas informé des erreurs et proposer de la corrigerles mettre à vide, la même fonction pourra faire office de validation selon le choix).
Function numTel(ByVal num As String, Optional valide As Boolean = False) As String
' valide = False : n° non reconnu inchangé
' valide = True : n° non reconnu mis à ""
'
' Plans de num pays Mayotte,Andorre,Monaco
Const codeInt As String = "262,376,377"
Const lNumInt As String = "6,6,8" ' nombre de chiffres plan de num du pays
'
Dim datas, lig As Long, b_fr As Boolean, b_int As Boolean
Dim ci, planNum, i As Long
num = Replace(Replace(Replace(Replace(num, " ", ""), ".", ""), "-", ""), ",", "")
If Left(num, 1) = "+" Then num = "00" & Mid(num, 2)
If Left(num, 4) = "0033" Then
num = Right(num, 9): b_fr = True
ElseIf Left(num, 2) = "00" Then
num = Mid(num, 3): b_int = True
End If
i = 1
Do While Mid(num, i, 1) = "0": i = i + 1: Loop ' compter zéros du début
' normaliser n° national
If Not b_int Then If Len(num) - i + 1 = 9 Or (Len(num) = 11 And Left(num, 2) = "33") Then num = Right(num, 9): b_fr = True
If b_fr Then ' national
Select Case Left(num, 1)
Case "6", "7" ' mobiles
num = "0033-" & num
Case Else ' régionaux
num = Format(Val(num), """0033-""#-########")
End Select
Else
' n° international reconnu ?
ci = Split(codeInt, ",")
planNum = Split(lNumInt, ",")
For i = 0 To UBound(ci) ' recherche code pays
If Left(num, Len(ci(i))) = ci(i) Then
If Len(num) = Len(ci(i)) + Val(planNum(i)) Then
num = "00" & ci(i) & "-" & Mid(num, Len(ci(i)) + 1)
Exit For
ElseIf valide Then
num = vbNullString: Exit For
End If
End If
Next i
If i > UBound(ci) And valide Then num = vbNullString
End If
numTel = num
End Function
Par défaut la fonction ne met pas à vide et laisse le n° tel que.Pour ma part, il ne faut pas mettre la cellule à Vide, mais effectivement pourquoi pas informé des erreurs et proposer de la corriger
Heuuu, quoi ça ? Où ça ?J'y ai intégré une Lib récupéré du GitHub (json file)
J'avais aussi mis le lien, en JavaScript si on est membre de GitHub, on peut même lire le JAR en tant réel pour fabriquer des APP Google, mais là j'ai juste "pompé" la lib, pour la mettre dans Excel, elle est plus rationnelle que tes "drapeaux"J'y ai intégré une Lib récupéré du GitHub (json file)
Heuuu, quoi ça ? Où ça ?
Re Eric, j'ai synchronisé avec ta function
Oui on peut avoir une feuille dans une xlam, j'ai répondu ceci à Patrick il y a queqlues posts (Attention aux manips par contre)
Bon avec ta version, on a encore des tout petits "hics" qui sont gérés dans la parties "Eric-Thierry'
Je pense que le rapport en Colonne C de la Source approrte aussi quelque chose...
Bien à toi
@+Thierry
PS pour :
J'avais aussi mis le lien, en JavaScript si on est membre de GitHib, on peut même lire le JAR en tant réel pour fabriquer des APP Google, mais là j'ai juste "pompé" la lib, pour la mettre dans Excel, elle est plus rationnelle que tes "drapeaux"
+31 (0) 6X XXX XX XX |
46?? je ne vois pas quel code tu a pus essayer je n'en ai pas fait
Pour ta remarque à propos d'une fin heureuse pour Virginie, oui ca sent le gaz de plus en plus... et en plus du gaz bourré à la corona ! (Dans les deux sens du terme, quoique du gaz ivre à la bière, c'est qu'on est tombé dans la citerne de fermentation dans la brasserie !)
Si Malheureusement, c'est un doc Excel vierge qu'il remplisse, mais honnetement je pense que vous avez soulever la majorité des cas (99%), on s'en fou si le reste est faux, je serais l'intégré et ils corrigerons à la 1ère connexion sur la plateforme. (Les clients c'est comme les enfants ils sont parfois épuisant)Hi Virginie,
Je ne me fâche jamais moi, comme j'ai dit, ça me fait rigoler...
Dis-moi tes clients ils n'envoient pas leur coordonnés sur "Papier Libre" quand même je suppose qu'ils doivent passer par un portail web de votre entreprise, je pense que c'est par là que tu dois attaquer le "Web-Master" pour qu’il ne laisse pas un champ "Free Text" pour renseigner les Tels... Parce que là c'est définitivement sans fin à l'infini... En plus il y a tous pleins d'Open Source pour intégrer ce genre de Téléphone TextBox Structurée, même avec des petits drapeaux par pays et tout et tout...
Je n'intègre pas ces données dans Amadeus, mais dans des SBTs (Self Booking Tools) et ensuite c'est l'outil de réservation en ligne qui contient un custom mapping afin de synchronisés les données dans Amadeus.Car là tu demandes à Excel de "réparer" les "co....ries" de l'outil de récupération des données client qui s'inscrivent... Si c'est parce que vous avez différents logiciels sources (Amadeus, Sabre & co...), c'est Idem il faut une standardisation ISO en amont, pas quand ça arrive dans Excel...