Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Uniformisation des numéros de téléphone

dudule47

XLDnaute Nouveau
Bonjour à tous,
Je viens vous soumettre un petit problème que je rencontre. Je manipule souvent, des fichiers excel avec des colonnes contenant des numéros de téléphone, mon problème est que ces numéros sont parfois avec l'indicatif international parfois sans, il y a des numéros étrangers, exemple, je peux avoir pour un numéro français +33123456789, ou 33123456789, ou 123456789, mais aussi des numéros de certains département d'outre mer, comme +596696123456, ou 696123456.
Je voudrais uniformiser tous les numéros français sous la forme 0000000000, et conserver les numéros étrangers.
Je ne sais pas si j'étais clair.......

actuellement je le fais par un tri, puis convertir pour enlever les indicatifs des numéros français, et concatener pour ajouter le 0, cette opération est fastidieuse et longue.......

J'ai aussi essayé la fonction =droite(), qui permet de mettre tous les numéros à 9 chiffres, puis après je peux rajouter le 0, le problème est que ca s'applique aussi au numéro étranger, et du coup ça fausse le résultat.....

Je regarde ici et là pour trouver une solution automatiser, j'ai bien penser au macro, mais chaque fichier est différent donc ma macro ne s'applique pas correctement.
Je sais qu'il y a VBA et des codes, mais je ne m'y connais pas.......
Y aurait il une âme charitable pour se pencher sur mon problème.
Merci
 
Dernière édition:
Solution
bonjour le fil
tous ces fils amène de la confusion
effectivement la remarque de franch55 est très juste et son classeur du post31 pourrait totalement vous convenir.
pour ce qui me concerne je vous post un classeur qui reprend celui du post33 mais réduit à sa plus simple expression sans la colonne Français
bref
vous devriez avoir deux solutions qui correspondent à votre problématique
cordialement
galougalou

jmfmarques

XLDnaute Accro
voilà ce que je lis :

parfois avec l'indicatif international parfois sans, il y a des numéros étrangers

pour les étrangers je souhaite les laisse tel quel.
 

dudule47

XLDnaute Nouveau
oui en effet c'est ça, après si ce n'est pas possible, je poursuivrai manuellement. Je consulte souvent ce forum en visiteur, c'est la première fois que je poste, afin de bénéficier de l'expérience de chacun, en aucun cas je ne veux poser de problème. Si ce n'est pas possible, je clos le sujet.
 

jmfmarques

XLDnaute Accro
Si ce n'est pas possible, je clos le sujet
la seule chose qui serait possible, sans aucune faille, serait de limiter les "corrections" aux seuls numéros ne laissant absolument aucun doute :
numéros commençant par + -->>
- corriger les +33, +590, +594, +596, etc ... en 0 laisser intacts les autres
- "marquer" comme on l'entend (pour signifier que fait et ne pas y revenir)
intervenir manuellement sur les autres (si l'oeil humain peut en déterminer l'origine)
 

dudule47

XLDnaute Nouveau
c
Ça serait déjà un bon début, si ca me laisse peut de chose à traiter c'est jouable
 

dudule47

XLDnaute Nouveau
donc je comprends bien, seuls les numéros commençant par un caractère spécial en l'occurence ici "+", pourrait entrer dans ton raisonnement, si j'ai un numéro sans le "+" mais avec l'indicatif, c'est plus aléatoire d'après ce que tu dis.
 

GALOUGALOU

XLDnaute Accro
bonjour dudule47 bonjour le fil bonjour le forum
en supposant un travail préparatoire qui identifie les n° français comme dans votre fichier du #15 (après un tri des n° de téléphone par exemple et identifiant en colonne B "Français")
dans le fichier exemple en formatant la colonne E au n° de téléphone
je vous propose cette solution par formule


Enrichi (BBcode):
=SI(B2="Français";DROITE(A2;9);C2)*1
cordialement
galougalou
 

Pièces jointes

  • telephone.xlsx
    9.9 KB · Affichages: 8

dudule47

XLDnaute Nouveau
la colonne pays n'existe pas, je l'ai mise pour illustrer ma demande, en temps normal elle n'est pas présente
 

jmfmarques

XLDnaute Accro
Voir ce que fait (et l'adapter à son gré) ce petit exemple, avec des numéros de téléphone en colonne A
VB:
For k = 1 To 3
  ch = Range("A" & k).Value
  Select Case Left(ch, 1)
    Case Is = "+"
    If ch Like "+33*" Then
      ch = "'0" & Mid(ch, 4)
    Else
      Select Case Left(ch, 4)
        Case "+590", "+594", "+596", "+508", "+681", "+687", "+689"
          ch = "'0" & Mid(ch, 5)
      End Select
    End If
  End Select
  Range("A" & k).Value = ch
Next
 

dudule47

XLDnaute Nouveau
Merci je vais tester cette solution, merci encore
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…