Uniformiser les numero de tel dans une colonne

commercialsandy

XLDnaute Nouveau
Bonjour,

J'ai un fichier qui comporte une colonne fax, celle-ci n'est pas du tout uniforme.
J'ai différent format : 05*67*04*03*** / *5*67*04 03*** / 5670403** / 05670403**
je souhaiterai le même format :0000000000
J'ai essayer par le biais du format de cellule : en sélectionnant personnaliser, texte ou spécial mais je suis obliger de double clique ds la cellule pour qu'il prenne le format que je souhaite !!!! J'ai plus de 9000 lignes &(
Quelqu'un pourrait m'aider ????
Merci de votre aide
 

Pièces jointes

  • fax.xls
    186.5 KB · Affichages: 349
  • fax.xls
    186.5 KB · Affichages: 242
  • fax.xls
    186.5 KB · Affichages: 266

tototiti2008

XLDnaute Barbatruc
Re : Uniformiser les numero de tel dans une colonne

Bonjour Sandy,

Peut-être, en D2

Code:
=SUBSTITUE(SUBSTITUE(SUBSTITUE(C2;" ";"");CAR(160);"");",";"")*1

à recopier vers le bas puis à coller en valeurs en colonne C

Edit : bonjour Gelinotte :), très bonne remarque
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : Uniformiser les numero de tel dans une colonne

Bonsoir
Déjà à savoir , lorsque l'on se prépare une espèce de BDD on tente de prévoir le format des données dans les lignes ou colonnes !
Format N° de Tel : au départ ca existe !!! là il est ujn peu tard !!!
Sol : ecrire un petit bout de VBA pour remettre toutr cela dans l'ordre
 

job75

XLDnaute Barbatruc
Re : Uniformiser les numero de tel dans une colonne

Bonjour à tous,

Voir cette macro dans le fichier joint (Alt+F11) :

Code:
Sub Epurer()
Dim tablo, i As Long, t As String, j As Integer
tablo = Range("C2", [C65536].End(xlUp))
For i = 1 To UBound(tablo)
  t = tablo(i, 1)
  For j = Len(t) To 1 Step -1
    If Not IsNumeric(Mid(t, j, 1)) _
      Then t = Application.Replace(t, j, 1, "")
  Next
  If t <> "" Then tablo(i, 1) = Val(t)
Next
[C:C].NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##"
[C2].Resize(UBound(tablo)) = tablo
End Sub
L'exécution est rapide car on utilise un tableau VBA.

Testé sur 10440 lignes avec Win XP/Excel 2003 => 0,5 seconde.

A+
 

Pièces jointes

  • Epurer(1).xls
    207 KB · Affichages: 136

laurent950

XLDnaute Accro
Re : Uniformiser les numero de tel dans une colonne

Bonsoir le Fil le forum,

Un solution :

en cas de doute sur la saisie d'un numéro de fax comme exemple :

37797771188 = La macro detecte est place se message "Vérifier L'entrée"

Il y a peu d'erreur

VB:
Sub test()

Dim Tabl()
Tabl = Range("C2:C523")
ReDim Preserve Tabl(1 To UBound(Tabl), 1 To 2)

' Suppression des espaces

For i = 1 To UBound(Tabl)
If Tabl(i, 1) Like "*,*" Then
T = Replace(CStr(Tabl(i, 1)), ",", "")
Tabl(i, 2) = T
Else
T = Replace(CDbl(Tabl(i, 1)), " ", "")
Tabl(i, 2) = T
End If
T = Empty
Next i

' Zéro devant le numéro
For i = 1 To UBound(Tabl)
If Len(Tabl(i, 2)) = 9 Then
Tabl(i, 2) = CStr("'0" & Tabl(i, 2))
ElseIf Len(Tabl(i, 2)) = 10 Then
Tabl(i, 2) = CStr("'" & Tabl(i, 2))
Else
Tabl(i, 2) = "Vérifier L'entrée"
End If
T = Empty
Next i

Range("D2").Resize(UBound(Tabl, 1)) = Application.Index(Tabl, , 2)

End Sub

En espérent répondre à votre demande, au plaisir de vous lire.

Laurent
 

Pièces jointes

  • fax.xls
    183.5 KB · Affichages: 102
  • fax.xls
    183.5 KB · Affichages: 127
  • fax.xls
    183.5 KB · Affichages: 115
Dernière édition:

Discussions similaires