Format N° tél

bonjour tout e monde .je viens vers vous si quelqu'un pourra m'aider à résoudre mon problème de mettre les numéros au bon format sous vba. j'ai sur mon fichier excel des client avec des numéro de téléphones qui commences par +33 et d'autres avec des doubles numéros dans la même cellule exemple "+336********" et "04********/06********" je souhaite bien prendre seulement les numéros commençant par 06 et 07 et les afficher sur une nouvelle feuille. ci dessous le code que j'ai fait, il marche bien mais je ne sais pas comment faire pour remplacer les +33 par des 0 et choisir que les numéros téléphones mobiles. merci d'avance

Private Sub CommandButton1_Click()

End Sub

Bonjour et bienvenue,

Tu dois préciser si tes cellules sont formatées en texte ou en numérique.

Joins un petit fichier à ta demande pour lever les doutes !...

Cdlt.

c'est en format spéciale

ci joint le fichier pour que vous puissiez comprendre mieux .

merci pour votre réponse

14prog-envoi-sms.xlsm (133.55 Ko)

Bonsoir

A voir

Private Sub CommandButton1_Click()
Dim Cel As Range
Application.ScreenUpdating = False
    For Each Cel In Range("K1:K63")                         'plage ? r?gler
        Cel = Trim(Cel)                                     'supprime les espaces d?but et fin
        Cel = Application.Substitute(Cel, "+33", "0")        'supprime les "+33"
        Cel = Application.Substitute(Cel, "33", "0")
        Cel = Application.Substitute(Cel, "O", "0")
        Cel = Application.Substitute(Cel, ".", "")          'supprime les "." (points)
        Cel = Application.Substitute(Cel, " ", "")          'supprime les espaces
        Cel.NumberFormat = "0#"" ""##"" ""##"" ""##"" ""##" 'formate en N? Tel
        'If Cel < 10 Then Cel.EntireRow.Delete
        Next Cel
End Sub

A+

Maurice

bonjour.

merci mon problème a été résolu grâce à vous .juste une petite question ,comment je peux régler la plage des numéros de tél pour que ça soit automatisé pas la peine de y aller modifier a chaque fois dans le code lorsque on rajoute des données ?

merci avance.

Bonjour tout le monde,

Dans le code d'archer, il y a 2 points qui me semblent à revoir :

1. Ces 2 lignes ont le même effet :

Cel = Trim(Cel) 
Cel = Application.Substitute(Cel, " ", "")  

2. Cette instruction supprimera tout les 33, pas seulement ceux en début de numéro (exemple : 01 23 33 45 67 devient 01 23 0 45 67) :

Cel = Application.Substitute(Cel, "33", "0")

Je propose donc de corriger par :

Private Sub CommandButton1_Click()

Dim Cel As Range, DerLig As Long, Lig As Long

Application.ScreenUpdating = False
DerLig = Range("K" & Rows.Count).End(xlUp).Row
For Lig = DerLig To 1 Step -1
    Set Cel = Range("K" & Lig)
    Cel = Replace(Cel, "O", "0")
    Cel = Replace(Cel, ".", "") 'supprime les "." (points)
    Cel = Replace(Cel, " ", "") 'supprime les espaces
    Cel = CLng(Right(Cel, 9)) 'Ne garde que les 9 derniers caractères (pas de +33, 33 ni 0)
    Cel.NumberFormat = "0# ## ## ## ##" 'formate en N° Tel
    If Cel < 10 Then Cel.EntireRow.Delete
Next Lig

End Sub

PS : ce code gère aussi le changement de dimension de ta plage (voir instruction "DerLig = ...")

Merci beaucoup pour votre aide .le problème est réglé.

Merci beaucoup pour votre aide .le problème est réglé.

Au plaisir d'avoir apporté notre aide !

Rechercher des sujets similaires à "format tel"