XL 2016 35 Variantes d'écriture dans un numéro de téléphone portable à harmoniser en 1 seul

Philippe Château

XLDnaute Occasionnel
Bonjour à toutes et tous,

J'ai récupéré un fichier d'une quarantaine de milliers de lignes, avec 35 variantes d'écriture du numéro de téléphone portable (et OUI pas de cadre pour obliger les gens à formaliser leur numéro de portable) ! et mon but serait pour le croiser avec un autre fichier de le rendre à 9 chiffres "699999999" (et à le rendre en format téléphone "06 99 99 99 99" pour qu'il soit lisible)

La fonction SUBSTITUE rend service mais pas totalement, lorsque l'on a un début qui commence par 0 - 33 - 330, on risque de supprimer les infos dans un numéro complet, d'où en colonne adjacente de la fonction GAUCHE + REMPLACER

N'y aurait-il pas plus simple ? de l'avis d'expert(e)s ?

J'ai été obligé de changer quelques numéros par A, question de confidentialité, car la cellule qui commence par + croit voir une valeur numérique à calculer si on change par la valeur 9 comme pour les autres cellules

Merci à toutes et tous
 

Pièces jointes

  • Classeur2.xlsx
    11.6 KB · Affichages: 25

R@chid

XLDnaute Barbatruc
Supporter XLD
Bonjour,
en B2 :
VB:
=--DROITE(SUBSTITUE(A2;" ";);9)
@ tirer vers le bas


Format spécial : Numéro de téléphone
2021-01-13_13-50-28.png



Cordialement
 

Philippe Château

XLDnaute Occasionnel
Bonjour à vous deux

Merci de votre super réactivité, les deux fonctionnent sauf une pour R@chid (d'autant que la formule est hyper condensée, ouahh c'est époustouflant...)

+33 (0)7.99.99.99.99 (je l'ai indiquée dans mon fichier sous la forme)
+33 (0)6.AA.AA.AA.AA

et pour vous deux la cellule
+33 0(6) 99 99 99 99

Si il n'y a pas moyen, ce n'est pas grave, une grosse partie est bien résolue, et vous en remercie.
 

patricktoulon

XLDnaute Barbatruc
bonsoir @job75
oui les réductions par omission d'argument ça me séduit
mais je préfère donner la version intégrale pour une meilleure compréhension
sinon oui onpeut réduire a ça
Code:
=SIERREUR(CNUM(DROITE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(SUBSTITUE(A2;" ";);",";);"-";);"_";);"+";);".";);")";);9));"no number")
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir,

Avec une fonction personnalisée dont le code est dans module1. On renvoie #REF! si ce n'est pas un numéro de téléphone. Recopier la cellule B1 vers le bas.

VB:
Function TailleTel9(ByVal x)
Dim i&, n, c
   For i = Len(x) To 1 Step -1
      c = Mid(x, i, 1)
      If c >= "0" And c <= "9" Then n = c & n
   Next i
   TailleTel9 = CLng(Right(n, 9))
   If Len(TailleTel9) <> 9 Then TailleTel9 = CVErr(xlErrRef)
End Function
 

Pièces jointes

  • Philippe Château- Num Tél- v1.xlsm
    17.3 KB · Affichages: 9

Discussions similaires

Statistiques des forums

Discussions
315 089
Messages
2 116 098
Membres
112 661
dernier inscrit
ceucri